Idris2/tests/idris2/total/total005/Total.idr

22 lines
417 B
Idris
Raw Normal View History

data Bad = MkBad (Bad -> Int) Int
| MkBad' Int
foo : Bad -> Int
foo (MkBad f i) = f (MkBad' i)
foo (MkBad' x) = x
foo2 : Bad -> Int
foo2 b = case b of
MkBad f i => f (MkBad' i)
MkBad' x => x
data T : Type -> Type where
MkT : T (T a) -> T a
mutual
data Bad1 = MkBad1 (Bad2 -> Int)
data Bad2 = MkBad2 (Bad1 -> Int)
data T2 : Type -> Type where
MkT2 : T a -> T2 a