OCanren

Implementation of miniKanren relational (logic) EDSL
Legend:
Library
Module
Module type
Parameter
Class
Class type
Library OCanren
Module OCanren . Reifier
type ('a, 'b) t = ( 'a -> 'b ) Env.Monad.t
val reify : ( 'a ilogic, 'a logic ) t
val prj_exn : ( 'a ilogic, 'a ) t
val prj : ( int -> 'a ) -> ( 'a ilogic, 'a ) t
val compose : ( 'a, 'b ) t -> ( 'b, 'c ) t -> ( 'a, 'c ) t
val fmap : ( 'b -> 'c ) -> ( 'a, 'b ) t -> ( 'a, 'c ) t
val fcomap : ( 'a -> 'b ) -> ( 'b, 'c ) t -> ( 'a, 'c ) t
val fix : ( ( 'a, 'b ) t as 'c -> 'c ) -> 'c
val rework : fv:( 'a Env.m -> 'b Env.m ) -> ( 'a logic Env.m -> 'b logic Env.m ) -> 'a logic Env.m -> 'b logic Env.m
val zed : ( ( 'a -> 'b ) -> 'a -> 'b ) -> 'a -> 'b