Module Monads.ANFMonad

type 'a t = Base.int -> Base.int * ('a, Base.string) Base.Result.t
val return : 'a -> 'a t
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
val fresh : Base.string t
val run : 'a t -> ('a, Base.string) Base.Result.t
val fail : Base.string -> 'a t
module Syntax : sig ... end