package OCanren

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
type 'a logic'
class virtual ['ia, 'a, 'sa, 'inh, 'extra, 'syn] logic'_t : object ... end
val gcata_logic' : [_, 'a, 'sa, 'inh, 'a logic', 'syn] logic'_t -> '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' : ([_, 'a, 'sa, 'inh, 'a logic', 'syn] logic'_t -> '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
type ('a, 'b) t = 'a * 'b
class virtual ['ia, 'a, 'sa, 'ib, 'b, 'sb, 'inh, 'extra, 'syn] t_t : object ... end
val gcata_t : [_, 'a, 'sa, _, 'b, 'sb, 'inh, ('a, 'b) t, 'syn] t_t -> 'inh -> ('a, 'b) t -> 'syn
class ['a, 'b, 'extra_t] fmt_t_t : (Format.formatter -> 'a -> unit) -> (Format.formatter -> 'b -> unit) -> (Format.formatter -> ('a, 'b) t -> unit) -> object ... end
val fmt_t : (Format.formatter -> 'a -> unit) -> (Format.formatter -> 'b -> unit) -> Format.formatter -> ('a, 'b) t -> unit
class ['a, 'b, 'syn, 'extra_t] foldr_t_t : ('syn -> 'a -> 'syn) -> ('syn -> 'b -> 'syn) -> ('syn -> ('a, 'b) t -> 'syn) -> object ... end
val foldr_t : ('syn -> 'a -> 'syn) -> ('syn -> 'b -> 'syn) -> 'syn -> ('a, 'b) t -> 'syn
class ['a, 'b, 'syn, 'extra_t] foldl_t_t : ('syn -> 'a -> 'syn) -> ('syn -> 'b -> 'syn) -> ('syn -> ('a, 'b) t -> 'syn) -> object ... end
val foldl_t : ('syn -> 'a -> 'syn) -> ('syn -> 'b -> 'syn) -> 'syn -> ('a, 'b) t -> 'syn
class ['a, 'b, 'extra_t] compare_t_t : ('a -> 'a -> GT.comparison) -> ('b -> 'b -> GT.comparison) -> (('a, 'b) t -> ('a, 'b) t -> GT.comparison) -> object ... end
val compare_t : ('a -> 'a -> GT.comparison) -> ('b -> 'b -> GT.comparison) -> ('a, 'b) t -> ('a, 'b) t -> GT.comparison
class ['a, 'b, 'extra_t] eq_t_t : ('a -> 'a -> bool) -> ('b -> 'b -> bool) -> (('a, 'b) t -> ('a, 'b) t -> bool) -> object ... end
val eq_t : ('a -> 'a -> bool) -> ('b -> 'b -> bool) -> ('a, 'b) t -> ('a, 'b) t -> bool
class ['a, 'b, 'extra_t] html_t_t : (unit -> 'a -> HTML.er) -> (unit -> 'b -> HTML.er) -> (unit -> ('a, 'b) t -> HTML.er) -> object ... end
val html_t : ('a -> HTML.er) -> ('b -> HTML.er) -> ('a, 'b) t -> HTML.er
class ['a, 'a_2, 'b, 'b_2, 'extra_t, 'syn_t] gmap_t_t : (unit -> 'a -> 'a_2) -> (unit -> 'b -> 'b_2) -> (unit -> ('a, 'b) t -> ('a_2, 'b_2) t) -> object ... end
val gmap_t : ('a -> 'a_2) -> ('b -> 'b_2) -> ('a, 'b) t -> ('a_2, 'b_2) t
class ['a, 'b, 'extra_t] show_t_t : (unit -> 'a -> string) -> (unit -> 'b -> string) -> (unit -> ('a, 'b) t -> string) -> object ... end
val show_t : ('a -> string) -> ('b -> string) -> ('a, 'b) t -> string
val t : ([_, 'a, 'sa, _, 'b, 'sb, 'inh, ('a, 'b) t, 'syn] t_t -> 'inh -> ('a, 'b) t -> 'syn, < fmt : (Format.formatter -> 'a -> unit) -> (Format.formatter -> 'b -> unit) -> Format.formatter -> ('a, 'b) t -> unit ; foldr : ('syn -> 'a -> 'syn) -> ('syn -> 'b -> 'syn) -> 'syn -> ('a, 'b) t -> 'syn ; foldl : ('syn -> 'a -> 'syn) -> ('syn -> 'b -> 'syn) -> 'syn -> ('a, 'b) t -> 'syn ; compare : ('a -> 'a -> GT.comparison) -> ('b -> 'b -> GT.comparison) -> ('a, 'b) t -> ('a, 'b) t -> GT.comparison ; eq : ('a -> 'a -> bool) -> ('b -> 'b -> bool) -> ('a, 'b) t -> ('a, 'b) t -> bool ; html : ('a -> HTML.er) -> ('b -> HTML.er) -> ('a, 'b) t -> HTML.er ; gmap : ('a -> 'a_2) -> ('b -> 'b_2) -> ('a, 'b) t -> ('a_2, 'b_2) t ; show : ('a -> string) -> ('b -> string) -> ('a, 'b) t -> string >, (('inh1 -> ('a, 'b) t -> 'syn2) -> ['inh1, 'a, 'syn2, 'inh1, 'b, 'syn2, 'inh1, ('a, 'b) t, 'syn2] t_t) -> 'inh1 -> ('a, 'b) t -> 'syn2) GT.t
type ('a, 'b) ground = 'a * 'b
class virtual ['ia, 'a, 'sa, 'ib, 'b, 'sb, 'inh, 'extra, 'syn] ground_t : object ... end
val gcata_ground : [_, 'a, 'sa, _, 'b, 'sb, 'inh, ('a, 'b) ground, 'syn] ground_t -> 'inh -> ('a, 'b) ground -> 'syn
class ['a, 'b, 'extra_ground] fmt_ground_t : (Format.formatter -> 'a -> unit) -> (Format.formatter -> 'b -> unit) -> (Format.formatter -> ('a, 'b) ground -> unit) -> object ... end
val fmt_ground : (Format.formatter -> 'a -> unit) -> (Format.formatter -> 'b -> unit) -> Format.formatter -> ('a, 'b) ground -> unit
class ['a, 'b, 'syn, 'extra_ground] foldr_ground_t : ('syn -> 'a -> 'syn) -> ('syn -> 'b -> 'syn) -> ('syn -> ('a, 'b) ground -> 'syn) -> object ... end
val foldr_ground : ('syn -> 'a -> 'syn) -> ('syn -> 'b -> 'syn) -> 'syn -> ('a, 'b) ground -> 'syn
class ['a, 'b, 'syn, 'extra_ground] foldl_ground_t : ('syn -> 'a -> 'syn) -> ('syn -> 'b -> 'syn) -> ('syn -> ('a, 'b) ground -> 'syn) -> object ... end
val foldl_ground : ('syn -> 'a -> 'syn) -> ('syn -> 'b -> 'syn) -> 'syn -> ('a, 'b) ground -> 'syn
class ['a, 'b, 'extra_ground] compare_ground_t : ('a -> 'a -> GT.comparison) -> ('b -> 'b -> GT.comparison) -> (('a, 'b) ground -> ('a, 'b) ground -> GT.comparison) -> object ... end
val compare_ground : ('a -> 'a -> GT.comparison) -> ('b -> 'b -> GT.comparison) -> ('a, 'b) ground -> ('a, 'b) ground -> GT.comparison
class ['a, 'b, 'extra_ground] eq_ground_t : ('a -> 'a -> bool) -> ('b -> 'b -> bool) -> (('a, 'b) ground -> ('a, 'b) ground -> bool) -> object ... end
val eq_ground : ('a -> 'a -> bool) -> ('b -> 'b -> bool) -> ('a, 'b) ground -> ('a, 'b) ground -> bool
class ['a, 'b, 'extra_ground] html_ground_t : (unit -> 'a -> HTML.er) -> (unit -> 'b -> HTML.er) -> (unit -> ('a, 'b) ground -> HTML.er) -> object ... end
val html_ground : ('a -> HTML.er) -> ('b -> HTML.er) -> ('a, 'b) ground -> HTML.er
class ['a, 'a_2, 'b, 'b_2, 'extra_ground, 'syn_ground] gmap_ground_t : (unit -> 'a -> 'a_2) -> (unit -> 'b -> 'b_2) -> (unit -> ('a, 'b) ground -> ('a_2, 'b_2) ground) -> object ... end
val gmap_ground : ('a -> 'a_2) -> ('b -> 'b_2) -> ('a, 'b) ground -> ('a_2, 'b_2) ground
class ['a, 'b, 'extra_ground] show_ground_t : (unit -> 'a -> string) -> (unit -> 'b -> string) -> (unit -> ('a, 'b) ground -> string) -> object ... end
val show_ground : ('a -> string) -> ('b -> string) -> ('a, 'b) ground -> string
val ground : ([_, 'a, 'sa, _, 'b, 'sb, 'inh, ('a, 'b) ground, 'syn] ground_t -> 'inh -> ('a, 'b) ground -> 'syn, < fmt : (Format.formatter -> 'a -> unit) -> (Format.formatter -> 'b -> unit) -> Format.formatter -> ('a, 'b) ground -> unit ; foldr : ('syn -> 'a -> 'syn) -> ('syn -> 'b -> 'syn) -> 'syn -> ('a, 'b) ground -> 'syn ; foldl : ('syn -> 'a -> 'syn) -> ('syn -> 'b -> 'syn) -> 'syn -> ('a, 'b) ground -> 'syn ; compare : ('a -> 'a -> GT.comparison) -> ('b -> 'b -> GT.comparison) -> ('a, 'b) ground -> ('a, 'b) ground -> GT.comparison ; eq : ('a -> 'a -> bool) -> ('b -> 'b -> bool) -> ('a, 'b) ground -> ('a, 'b) ground -> bool ; html : ('a -> HTML.er) -> ('b -> HTML.er) -> ('a, 'b) ground -> HTML.er ; gmap : ('a -> 'a_2) -> ('b -> 'b_2) -> ('a, 'b) ground -> ('a_2, 'b_2) ground ; show : ('a -> string) -> ('b -> string) -> ('a, 'b) ground -> string >, (('inh1 -> ('a, 'b) ground -> 'syn2) -> ['inh1, 'a, 'syn2, 'inh1, 'b, 'syn2, 'inh1, ('a, 'b) ground, 'syn2] ground_t) -> 'inh1 -> ('a, 'b) ground -> 'syn2) GT.t
type ('a, 'b) logic = ('a * 'b) logic'
class virtual ['ia, 'a, 'sa, 'ib, 'b, 'sb, 'inh, 'extra, 'syn] logic_t : object ... end
val gcata_logic : [_, 'a, 'sa, _, 'b, 'sb, 'inh, ('a, 'b) logic, 'syn] logic_t -> 'inh -> ('a, 'b) logic -> 'syn
class ['a, 'b, 'extra_logic] fmt_logic_t : (Format.formatter -> 'a -> unit) -> (Format.formatter -> 'b -> unit) -> (Format.formatter -> ('a, 'b) logic -> unit) -> object ... end
val fmt_logic : (Format.formatter -> 'a -> unit) -> (Format.formatter -> 'b -> unit) -> Format.formatter -> ('a, 'b) logic -> unit
class ['a, 'b, 'syn, 'extra_logic] foldr_logic_t : ('syn -> 'a -> 'syn) -> ('syn -> 'b -> 'syn) -> ('syn -> ('a, 'b) logic -> 'syn) -> object ... end
val foldr_logic : ('syn -> 'a -> 'syn) -> ('syn -> 'b -> 'syn) -> 'syn -> ('a, 'b) logic -> 'syn
class ['a, 'b, 'syn, 'extra_logic] foldl_logic_t : ('syn -> 'a -> 'syn) -> ('syn -> 'b -> 'syn) -> ('syn -> ('a, 'b) logic -> 'syn) -> object ... end
val foldl_logic : ('syn -> 'a -> 'syn) -> ('syn -> 'b -> 'syn) -> 'syn -> ('a, 'b) logic -> 'syn
class ['a, 'b, 'extra_logic] compare_logic_t : ('a -> 'a -> GT.comparison) -> ('b -> 'b -> GT.comparison) -> (('a, 'b) logic -> ('a, 'b) logic -> GT.comparison) -> object ... end
val compare_logic : ('a -> 'a -> GT.comparison) -> ('b -> 'b -> GT.comparison) -> ('a, 'b) logic -> ('a, 'b) logic -> GT.comparison
class ['a, 'b, 'extra_logic] eq_logic_t : ('a -> 'a -> bool) -> ('b -> 'b -> bool) -> (('a, 'b) logic -> ('a, 'b) logic -> bool) -> object ... end
val eq_logic : ('a -> 'a -> bool) -> ('b -> 'b -> bool) -> ('a, 'b) logic -> ('a, 'b) logic -> bool
class ['a, 'b, 'extra_logic] html_logic_t : (unit -> 'a -> HTML.er) -> (unit -> 'b -> HTML.er) -> (unit -> ('a, 'b) logic -> HTML.er) -> object ... end
val html_logic : ('a -> HTML.er) -> ('b -> HTML.er) -> ('a, 'b) logic -> HTML.er
class ['a, 'a_2, 'b, 'b_2, 'extra_logic, 'syn_logic] gmap_logic_t : (unit -> 'a -> 'a_2) -> (unit -> 'b -> 'b_2) -> (unit -> ('a, 'b) logic -> ('a_2, 'b_2) logic) -> object ... end
val gmap_logic : ('a -> 'a_2) -> ('b -> 'b_2) -> ('a, 'b) logic -> ('a_2, 'b_2) logic
class ['a, 'b, 'extra_logic] show_logic_t : (unit -> 'a -> string) -> (unit -> 'b -> string) -> (unit -> ('a, 'b) logic -> string) -> object ... end
val show_logic : ('a -> string) -> ('b -> string) -> ('a, 'b) logic -> string
val logic : ([_, 'a, 'sa, _, 'b, 'sb, 'inh, ('a, 'b) logic, 'syn] logic_t -> 'inh -> ('a, 'b) logic -> 'syn, < fmt : (Format.formatter -> 'a -> unit) -> (Format.formatter -> 'b -> unit) -> Format.formatter -> ('a, 'b) logic -> unit ; foldr : ('syn -> 'a -> 'syn) -> ('syn -> 'b -> 'syn) -> 'syn -> ('a, 'b) logic -> 'syn ; foldl : ('syn -> 'a -> 'syn) -> ('syn -> 'b -> 'syn) -> 'syn -> ('a, 'b) logic -> 'syn ; compare : ('a -> 'a -> GT.comparison) -> ('b -> 'b -> GT.comparison) -> ('a, 'b) logic -> ('a, 'b) logic -> GT.comparison ; eq : ('a -> 'a -> bool) -> ('b -> 'b -> bool) -> ('a, 'b) logic -> ('a, 'b) logic -> bool ; html : ('a -> HTML.er) -> ('b -> HTML.er) -> ('a, 'b) logic -> HTML.er ; gmap : ('a -> 'a_2) -> ('b -> 'b_2) -> ('a, 'b) logic -> ('a_2, 'b_2) logic ; show : ('a -> string) -> ('b -> string) -> ('a, 'b) logic -> string >, (('inh1 -> ('a, 'b) logic -> 'syn2) -> ['inh1, 'a, 'syn2, 'inh1, 'b, 'syn2, 'inh1, ('a, 'b) logic, 'syn2] logic_t) -> 'inh1 -> ('a, 'b) logic -> 'syn2) GT.t
val inj : ('a -> 'c) -> ('b -> 'd) -> ('a, 'b) ground -> ('c, 'd) logic
type ('a, 'b) groundi
type ('a, 'b) injected = ('a, 'b) groundi
val pair : 'a OCanren__.Logic.ilogic -> 'b OCanren__.Logic.ilogic -> ('a OCanren__.Logic.ilogic, 'b OCanren__.Logic.ilogic) groundi
val reify : ('a -> 'b) Env.Monad.t -> ('c -> 'd) Env.Monad.t -> (('a, 'c) groundi -> ('b, 'd) logic) Env.Monad.t
val prj_exn : ('a -> 'b) Env.Monad.t -> ('c -> 'd) Env.Monad.t -> (('a, 'c) groundi -> ('b, 'd) ground) Env.Monad.t