Module Checked_ast.Basic

module Types = Types
type ('a, 'f) t = ( 'a, 'f ) Types.Checked.t
type 'f field = 'f
include Monad_let.S2 with type ('a, 'f) t := ( 'a, 'f ) t
include Monad_let.S_without_syntax2 with type ('a, 'e) t := ( 'a, 'e ) t
include Core_kernel.Monad.Infix2 with type ('a, 'e) t := ( 'a, 'e ) t
val (>>=) : ( 'a, 'e ) t -> ( 'a -> ( 'b, 'e ) t ) -> ( 'b, 'e ) t
val (>>|) : ( 'a, 'e ) t -> ( 'a -> 'b ) -> ( 'b, 'e ) t
module Monad_infix : Core_kernel.Monad.Infix2 with type ('a, 'e) t := ( 'a, 'e ) t
val bind : ( 'a, 'e ) t -> f:( 'a -> ( 'b, 'e ) t ) -> ( 'b, 'e ) t
val return : 'a -> ( 'a, _ ) t
val map : ( 'a, 'e ) t -> f:( 'a -> 'b ) -> ( 'b, 'e ) t
val join : ( ( 'a, 'e ) t, 'e ) t -> ( 'a, 'e ) t
val ignore_m : ( _, 'e ) t -> ( unit, 'e ) t
val all : ( 'a, 'e ) t list -> ( 'a list, 'e ) t
val all_unit : ( unit, 'e ) t list -> ( unit, 'e ) t
module Let_syntax : sig ... end
val add_constraint : ( 'f field Cvar.t, 'f field ) Constraint.t -> ( unit, 'f field ) t
val as_prover : ( unit, 'f field ) Types.As_prover.t -> ( unit, 'f field ) t
val mk_lazy : ( unit -> ( 'a, 'f ) t ) -> ( 'a Stdlib.Lazy.t, 'f ) t
val with_label : string -> ( unit -> ( 'a, 'f field ) t ) -> ( 'a, 'f field ) t
val with_handler : Request.Handler.single -> ( unit -> ( 'a, 'f field ) t ) -> ( 'a, 'f field ) t
val exists : ( 'var, 'value, 'f field ) Types.Typ.t -> ( 'value, 'f field ) Types.Provider.t -> ( ( 'var, 'value ) Handle.t, 'f field ) t
val next_auxiliary : unit -> ( int, 'f field ) t
val direct : ( 'f field Run_state.t -> 'f field Run_state.t * 'a ) -> ( 'a, 'f field ) t
val constraint_count : ?weight:( ( 'f field Cvar.t, 'f field ) Constraint.t -> int ) -> ?log:( ?start:bool -> string -> int -> unit ) -> ( unit -> ( 'a, 'f field ) t ) -> int