mirror of
https://github.com/idris-lang/Idris2.git
synced 2024-12-17 00:10:31 +03:00
a972778eab
They don't all pass yet, for minor reasons. Coming shortly... Unfortunately the startup overhead for chez is really noticeable here!
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')))
|
|
|