Legend:
Library
Module
Module type
Parameter
Class
Class type
type 'a logic =
| Var of GT.int * 'a logic GT.list
| Value of 'a
class virtual ['ia, 'a, 'sa, 'inh, 'extra, 'syn] logic_t : object ... end
val gcata_logic : < c_Var : 'inh -> 'a logic -> GT.int -> 'a logic GT.list -> 'syn ; c_Value : 'inh -> 'a logic -> 'a -> 'syn.. > -> 'inh -> 'a logic -> 'syn
class ['a, 'extra_logic] fmt_logic_t : ( Format.formatter -> 'a -> unit ) -> ( Format.formatter -> 'a logic -> unit ) -> object ... end
val fmt_logic : ( Format.formatter -> 'a -> unit ) -> Format.formatter -> 'a logic -> unit
class ['a, 'syn, 'extra_logic] foldr_logic_t : ( 'syn -> 'a -> 'syn ) -> ( 'syn -> 'a logic -> 'syn ) -> object ... end
val foldr_logic : ( 'syn -> 'a -> 'syn ) -> 'syn -> 'a logic -> 'syn
class ['a, 'syn, 'extra_logic] foldl_logic_t : ( 'syn -> 'a -> 'syn ) -> ( 'syn -> 'a logic -> 'syn ) -> object ... end
val foldl_logic : ( 'syn -> 'a -> 'syn ) -> 'syn -> 'a logic -> 'syn
class ['a, 'extra_logic] compare_logic_t : ( 'a -> 'a -> GT.comparison ) -> ( 'a logic -> 'a logic -> GT.comparison ) -> object ... end
val compare_logic : ( 'a -> 'a -> GT.comparison ) -> 'a logic -> 'a logic -> GT.comparison
class ['a, 'extra_logic] eq_logic_t : ( 'a -> 'a -> bool ) -> ( 'a logic -> 'a logic -> bool ) -> object ... end
val eq_logic : ( 'a -> 'a -> bool ) -> 'a logic -> 'a logic -> bool
class ['a, 'extra_logic] html_logic_t : ( unit -> 'a -> HTML.er ) -> ( unit -> 'a logic -> HTML.er ) -> object ... end
val html_logic : ( 'a -> HTML.er ) -> 'a logic -> HTML.er
class ['a, 'a_2, 'extra_logic, 'syn_logic] gmap_logic_t : ( unit -> 'a -> 'a_2 ) -> ( unit -> 'a logic -> 'a_2 logic ) -> object ... end
val gmap_logic : ( 'a -> 'a_2 ) -> 'a logic -> 'a_2 logic
class ['a, 'extra_logic] show_logic_t : ( unit -> 'a -> string ) -> ( unit -> 'a logic -> string ) -> object ... end
val show_logic : ( 'a -> string ) -> 'a logic -> string
val logic : ( < c_Var : 'inh -> 'a logic -> GT.int -> 'a logic GT.list -> 'syn ; c_Value : 'inh -> 'a logic -> 'a -> 'syn.. > -> 'inh -> 'a logic -> 'syn, < fmt : ( Format.formatter -> 'a -> unit ) -> Format.formatter -> 'a logic -> unit ; foldr : ( 'syn -> 'a -> 'syn ) -> 'syn -> 'a logic -> 'syn ; foldl : ( 'syn -> 'a -> 'syn ) -> 'syn -> 'a logic -> 'syn ; compare : ( 'a -> 'a -> GT.comparison ) -> 'a logic -> 'a logic -> GT.comparison ; eq : ( 'a -> 'a -> bool ) -> 'a logic -> 'a logic -> bool ; html : ( 'a -> HTML.er ) -> 'a logic -> HTML.er ; gmap : ( 'a -> 'a_2 ) -> 'a logic -> 'a_2 logic ; show : ( 'a -> string ) -> 'a logic -> string >, ( ( 'inh2 -> 'a1 logic -> 'syn3 ) -> [ 'a1_i, 'a1, 'a1_s, 'inh2, 'a1 logic, 'syn3 ] logic_t ) -> 'inh2 -> 'a1 logic -> 'syn3 ) GT.t
val to_logic : 'a -> 'a logic
val from_logic : 'a logic -> 'a
type 'a ilogic
module Reifier : sig ... end
val inj : 'a -> 'a ilogic
val inji : 'a -> 'a ilogic
val (!!) : 'a -> 'a ilogic
val prj_exn : ( 'a ilogic, 'a ) Reifier.t
val prj : ( int -> 'a ) -> ( 'a ilogic, 'a ) Reifier.t
val reify : ( 'a ilogic, 'a logic ) Reifier.t
exception Not_a_value
class type 'a reified = object ... end
val make_rr : Env.t -> 'a ilogic -> 'a reified
module State : sig ... end
type 'a goal'
type goal = State.t Stream.t goal'
val call_fresh : ( 'a OCanren__Logic.ilogic -> goal ) -> goal
val (===) : 'a OCanren__Logic.ilogic -> 'a OCanren__Logic.ilogic -> goal
val unify : 'a OCanren__Logic.ilogic -> 'a OCanren__Logic.ilogic -> goal
val (=/=) : 'a OCanren__Logic.ilogic -> 'a OCanren__Logic.ilogic -> goal
val diseq : 'a OCanren__Logic.ilogic -> 'a OCanren__Logic.ilogic -> goal
val structural : 'a -> ( 'a -> 'b ) Env.Monad.t -> ( 'b -> bool ) -> goal
val conj : goal -> goal -> goal
val (&&&) : goal -> goal -> goal
val disj : goal -> goal -> goal
val (|||) : goal -> goal -> goal
val (?|) : goal list -> goal
val conde : goal list -> goal
val (?&) : goal list -> goal
val success : goal
val failure : goal
module Fresh : sig ... end
val run : ( unit -> ( 'a -> State.t -> 'b ) * ( 'c -> Env.t -> 'd ) * ( 'b -> 'c * State.t Stream.t ) * ( 'e -> 'd -> 'f ) ) -> 'a -> 'e -> 'f Stream.t
val delay : ( unit -> goal ) -> goal
val succ : ( unit -> ( 'a -> State.t -> 'b ) * ( 'c -> Env.t -> 'd ) * ( 'e -> 'f * 'g ) * ( 'h -> 'i -> 'j ) ) -> unit -> ( ( 'k OCanren__Logic.ilogic -> 'a ) -> State.t -> 'k OCanren__Logic.ilogic * 'b ) * ( ('m OCanren__Logic.ilogic * 'c) -> Env.t -> 'm OCanren__Logic.reified * 'd ) * ( ('o * 'e) -> ('o * 'f) * 'g ) * ( ( 'p -> 'h ) -> ('p * 'i) -> 'j )
module NUMERAL_TYPS : sig ... end
val one : ( _, _, _, _, _ ) NUMERAL_TYPS.one
val two : ( _, _, _, _, _, _, _, _, _, _ ) NUMERAL_TYPS.two
val three : ( _, _, _, _, _, _, _, _, _, _, _, _, _, _ ) NUMERAL_TYPS.three
val four : ( _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ ) NUMERAL_TYPS.four
val q : ( _, _, _, _, _ ) NUMERAL_TYPS.one
val qr : ( _, _, _, _, _, _, _, _, _, _ ) NUMERAL_TYPS.two
val qrs : ( _, _, _, _, _, _, _, _, _, _, _, _, _, _ ) NUMERAL_TYPS.three
val qrst : ( _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ ) NUMERAL_TYPS.four
module Tabling : sig ... end
val debug_var : 'a OCanren__Logic.ilogic -> ( 'a OCanren__Logic.ilogic -> Env.t -> 'b ) -> ( 'b list -> goal ) -> goal
val only_head : goal -> goal
module PrunesControl : sig ... end
module Stream : sig ... end
module Runconf : sig ... end
module Timer : sig ... end
module Env : sig ... end
module Std : sig ... end