Module type Strong.API

The complete interface of a Strong Profunctor.

Type

type ('a, 'b) t

The type held by the Strong.

Functions

include CORE with type ('a, 'b) t := ('a, 'b) t

Type

Functions

val dimap : ('a -> 'b) -> ('c -> 'd) -> ('b, 'c) t -> ('a, 'd) t
val contramap_fst : ('a -> 'b) -> ('b, 'c) t -> ('a, 'c) t

Contramapping over the first argument.

val map_snd : ('b -> 'c) -> ('a, 'b) t -> ('a, 'c) t

Mapping over the second argument.

val fst : ('a, 'b) t -> ('a * 'c, 'b * 'c) t

Act on the first parameter of the product.

val snd : ('b, 'c) t -> ('a * 'b, 'a * 'c) t

Act on the second parameter of the product.

val uncurry : ('a, 'b -> 'c) t -> ('a * 'b, 'c) t

Uncurry a product Strong Profunctor.

val strong : ('a -> 'b -> 'c) -> ('a, 'b) t -> ('a, 'c) t

Lift a function into a Strong Profunctor.