preface

An opinionated library for function programming (à La Haskell)
IN THIS PACKAGE

Parameters

Signature

Type

type ('a, 'b) t = ( 'a, 'b ) Req.t

The type held by the Strong.

Functions

include Preface_specs.Strong.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.