Idris2/tests/idris2/linear007/LCase.idr

16 lines
395 B
Idris
Raw Normal View History

data MyNat : Type where
MyZ : MyNat
MyS : (1 _ : MyNat) -> MyNat
lplus : (1 x : MyNat) -> (1 y : MyNat) -> MyNat
lplus MyZ y = y
lplus (MyS k) y = MyS (lplus k y)
foo : (1 x : MyNat) -> (1 y : MyNat) -> MyNat -> MyNat
foo x y z
= let 1 test = the MyNat $ case z of
MyZ => MyZ
(MyS k) => MyS z
in
lplus test x