Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
module type S = sig ... end
A profunctor has an input end with contravariant map, an output end with covariant map and an operation to join two terms with the same input type giving both outputs.
module type Record_builder = sig ... end
A module used to traverse each field of a record performing some action using a specific profunctor.
module type Of_applicative = sig ... end
A profunctor constructed from an applicative.
module type Conv_based = sig ... end
A profunctor-ish where both parameters must be mapped together at the same time. This is less expressive but appears in several libraries.
module type Of_conv_based = sig ... end
Embed a Conv_based
profunctor-ish into a full profunctor, allowing the use of Record_builder
directly.
module Record_builder
(F : S) :
Record_builder
with type ('b, 'a) profunctor = ('b, 'a) F.t
and type 'a profunctor_term = ('a, 'a) F.t
module Of_applicative
(F : Base.Applicative.S) :
Of_applicative with type 'a applicative := 'a F.t
module Of_conv_based
(F : Conv_based) :
Of_conv_based with type 'a conv_based := 'a F.t
module Fn_with_id : sig ... end
A profunctor which represents a function where Fn.id
may sometimes be distinguished from other functions.