package OCanren

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
type 'a logic =
  1. | Var of GT.int * 'a logic GT.list
  2. | 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 >, (('inh1 -> 'a logic -> 'syn2) -> ['inh1, 'a, 'syn2, 'inh1, 'a logic, 'syn2] logic_t) -> 'inh1 -> 'a logic -> 'syn2) 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