Module Constraint.Basic

type ('v, 'f) t = ( 'v, 'f ) basic
module type S_with_conv = sig ... end
module Entry : sig ... end
val cases : Entry.t Base.list Base.ref
val add_case : Entry.t -> Base.unit
val case : ( Entry.t -> 'a ) -> 'b
val sexp_of_t : ( 'a -> Sexplib0__.Sexp.t ) -> ( 'b -> Sexplib0__.Sexp.t ) -> ( 'c, 'd ) basic -> Sexplib0__.Sexp.t
val t_of_sexp : ( Sexplib0__.Sexp.t -> 'a ) -> ( Sexplib0__.Sexp.t -> 'b ) -> Sexplib0__.Sexp.t -> ( 'c, 'd ) basic
val eval : (module Snarky_intf.Field.S with type t = 'f) -> ( 'v -> 'f0 ) -> ( 'v0, 'f1 ) basic -> Base.bool
val map : ( 'a, 'b ) basic -> f:( 'c -> 'd ) -> ( 'e, 'f ) basic