22 lines
424 B
Agda
22 lines
424 B
Agda
|
{-# OPTIONS --guardedness #-}
|
||
|
|
||
|
module CEKCoinductive where
|
||
|
|
||
|
open import Agda.Primitive
|
||
|
|
||
|
private
|
||
|
variable
|
||
|
l l1 l2 l3 : Level
|
||
|
|
||
|
E : Set → Set
|
||
|
R : Set
|
||
|
|
||
|
data ITreeF (ITree : Set) : Set where
|
||
|
Ret : (r : R) → ITreeF ITree
|
||
|
Tau : (t : ITree) → ITreeF ITree
|
||
|
Vis : {A : Set l1} → (e : E A) → (k : A → ITreeF E R) → ITreeF E R
|
||
|
|
||
|
record ITree : Set where
|
||
|
coinductive
|
||
|
field
|
||
|
_observe : ITreeF ITree
|