Warning: Reason support is experimental. We are looking for beta-tester and contributors.

Module type Deriving_monad.Monad

module type Monad = sig..end

type +'a m
val return : 'a -> 'a m
val fail : string -> 'a m
val (>>=) : 
  'a m ->
  ('a -> 'b m) -> 'b m
val (>>) : 
  'a m ->
  'b m -> 'b m