Module Inferencer.ResultMonad

type 'a t
val return : 'a -> 'a t
val fail : error -> 'a t
include Base.Monad.Infix with type 'a t := 'a t
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
val (>>|) : 'a t -> ('a -> 'b) -> 'b t
module Syntax : sig ... end
val fresh : int t
val current_level : int t
val enter_level : unit t
val leave_level : unit t
val set_var_level : string -> int -> unit t
val get_var_level : string -> int option t
val run : 'a t -> ('a, error) Stdlib.Result.t