mirror of
https://github.com/idris-lang/Idris2.git
synced 2024-12-17 00:10:31 +03:00
16 lines
304 B
Idris
16 lines
304 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')))
|
||
|
|