Make.Syntax
Monadic operators, see Monad.Syntax.S for more.
val (>>=) : 'a T1(T)(M).t -> ('a -> 'b T1(T)(M).t) -> 'b T1(T)(M).t
m >>= f
is bind m f
val (>>|) : 'a T1(T)(M).t -> ('a -> 'b) -> 'b T1(T)(M).t
m >>= f
is map m ~f
val (>=>) :
('a -> 'b T1(T)(M).t) ->
('b -> 'c T1(T)(M).t) ->
'a ->
'c T1(T)(M).t
f >=> g
is fun x -> f x >>= g
val (!!) : 'a -> 'a T1(T)(M).t
!!x
is return x
val (!$) : ('a -> 'b) -> 'a T1(T)(M).t -> 'b T1(T)(M).t
!$f
is Lift.unary f
val (!$$) : ('a -> 'b -> 'c) -> 'a T1(T)(M).t -> 'b T1(T)(M).t -> 'c T1(T)(M).t
!$$f
is Lift.binary f
val (!$$$) :
('a -> 'b -> 'c -> 'd) ->
'a T1(T)(M).t ->
'b T1(T)(M).t ->
'c T1(T)(M).t ->
'd T1(T)(M).t
!$$$f
is Lift.ternary f
val (!$$$$) :
('a -> 'b -> 'c -> 'd -> 'e) ->
'a T1(T)(M).t ->
'b T1(T)(M).t ->
'c T1(T)(M).t ->
'd T1(T)(M).t ->
'e T1(T)(M).t
!$$$$f
is Lift.quaternary f
val (!$$$$$) :
('a -> 'b -> 'c -> 'd -> 'e -> 'f) ->
'a T1(T)(M).t ->
'b T1(T)(M).t ->
'c T1(T)(M).t ->
'd T1(T)(M).t ->
'e T1(T)(M).t ->
'f T1(T)(M).t
!$$$$$f
is Lift.quinary f