Ast.OptionMonad
val return :
mark:'m Shared_ast.mark ->
( 'a Shared_ast.any, 'm ) Shared_ast.boxed_gexpr ->
( 'a, 'm ) Shared_ast.boxed_gexpr
val empty :
mark:'m Shared_ast.mark ->
( 'a Shared_ast.any, 'm ) Shared_ast.boxed_gexpr
val bind_var :
mark:'m Shared_ast.mark ->
( 'a Shared_ast.any, 'm ) Shared_ast.boxed_gexpr ->
( 'a, 'm ) Shared_ast.gexpr Shared_ast.Var.t ->
( 'a, 'm ) Shared_ast.boxed_gexpr ->
( 'a, 'm ) Shared_ast.boxed_gexpr
val bind :
mark:'m Shared_ast.mark ->
var_name:string ->
( 'a Shared_ast.any, 'm ) Shared_ast.boxed_gexpr ->
( 'a, 'm ) Shared_ast.boxed_gexpr ->
( 'a, 'm ) Shared_ast.boxed_gexpr
val bind_cont :
mark:'m Shared_ast.mark ->
var_name:string ->
( ( 'a Shared_ast.any, 'm ) Shared_ast.gexpr Shared_ast.Var.t ->
( 'a, 'm ) Shared_ast.boxed_gexpr ) ->
( 'a, 'm ) Shared_ast.boxed_gexpr ->
( 'a, 'm ) Shared_ast.boxed_gexpr
val mbind_mvar :
mark:'m Shared_ast.mark ->
( 'a Shared_ast.any, 'm ) Shared_ast.boxed_gexpr ->
( 'a, 'm ) Shared_ast.gexpr Shared_ast.Var.t list ->
( 'a, 'm ) Shared_ast.boxed_gexpr list ->
( 'a, 'm ) Shared_ast.boxed_gexpr
val mbind :
mark:'m Shared_ast.mark ->
var_name:string ->
( 'a Shared_ast.any, 'm ) Shared_ast.boxed_gexpr ->
( 'a, 'm ) Shared_ast.boxed_gexpr list ->
( 'a, 'm ) Shared_ast.boxed_gexpr
val mbind_cont :
mark:'m Shared_ast.mark ->
var_name:string ->
( ( 'a Shared_ast.any, 'm ) Shared_ast.gexpr Shared_ast.Var.t list ->
( 'a, 'm ) Shared_ast.boxed_gexpr ) ->
( 'a, 'm ) Shared_ast.boxed_gexpr list ->
( 'a, 'm ) Shared_ast.boxed_gexpr
val error_on_empty :
mark:'m Shared_ast.mark ->
var_name:string ->
?toplevel:bool ->
( < exceptions : Shared_ast.yes.. > as 'a, 'm ) Shared_ast.boxed_gexpr ->
( 'a, 'm ) Shared_ast.boxed_gexpr
val map :
mark:'m Shared_ast.mark ->
var_name:string ->
( < exceptions : Shared_ast.no.. > as 'a, 'm ) Shared_ast.boxed_gexpr ->
( 'a, 'm ) Shared_ast.boxed_gexpr ->
( 'a, 'm ) Shared_ast.boxed_gexpr
val mmap_mvar :
mark:'m Shared_ast.mark ->
( 'a Shared_ast.any, 'm ) Shared_ast.boxed_gexpr ->
( 'a, 'm ) Shared_ast.gexpr Shared_ast.Var.t list ->
( 'a, 'm ) Shared_ast.boxed_gexpr list ->
( 'a, 'm ) Shared_ast.boxed_gexpr
val mmap :
mark:'m Shared_ast.mark ->
var_name:string ->
( 'a Shared_ast.any, 'm ) Shared_ast.boxed_gexpr ->
( 'a, 'm ) Shared_ast.boxed_gexpr list ->
( 'a, 'm ) Shared_ast.boxed_gexpr