Idris2-boot/tests/idris2/interface004/Do.idr
Edwin Brady 32583d608d More interface tests
and a small fix for the generation of method types which was okay for
Blodwen, but not here
2019-06-24 18:04:43 +01:00

16 lines
305 B
Idris

public export
interface Do (m : Type) where
Next : m -> Type
bind : (x : m) -> Next x
public export
Monad m => Do (m a) where
Next x = {b : Type} -> (a -> m b) -> m b
bind x k = x >>= k
foo : Maybe Int -> Maybe Int -> Maybe Int
foo x y
= bind x (\x' =>
bind y (\y' => Just (x' + y')))