Travesty_base_exts.Tuple2SourceBi-traversability for pairs (2-tuples).
Type of 2-tuples.
Pairs are trivially bi-traversable; for a pair 'l * 'r, the left type is 'l, and the right type is 'r.
For example, we can bi-map as follows:
bi_map ("foo", 27) ~left:String.capitalize ~right:Int.neg
(* returns: ("Foo", -27) *)include Travesty.Bi_traversable_types.S2 with type ('l, 'r) t := ('l, 'r) tinclude Travesty.Bi_traversable_types.Generic
with type ('l, 'r) t := ('l, 'r) t
and type 'l left := 'l
and type 'r right := 'rinclude Travesty.Generic_types.Bi_generic
with type ('l, 'r) t := ('l, 'r) t
with type 'l left := 'l
with type 'r right := 'rWe can do non-monadic bi-mapping operations.
include Travesty.Bi_mappable_types.Generic
with type ('l, 'r) t := ('l, 'r) t
and type 'l left := 'l
and type 'r right := 'rinclude Travesty.Bi_mappable_types.Basic_generic
with type ('l, 'r) t := ('l, 'r) t
with type 'l left := 'l
with type 'r right := 'rinclude Travesty.Generic_types.Bi_generic
with type ('l, 'r) t := ('l, 'r) t
with type 'l left := 'l
with type 'r right := 'rmap_left c ~f maps f over the left type of c only.
module On
(M : Base.Applicative.S) :
Travesty.Bi_traversable_types.Generic_on_applicative
with type ('l, 'r) t := ('l, 'r) t
and type 'l left := 'l
and type 'r right := 'r
and module M := MOn implements bi-traversal operators for a given applicative functor M.
module On_monad
(M : Base.Monad.S) :
Travesty.Bi_traversable_types.Generic_on_applicative
with type ('l, 'r) t := ('l, 'r) t
and type 'l left := 'l
and type 'r right := 'r
and module M := Travesty.Monad_exts.App(M)On_monad implements bi-traversal operators for a given monad M.
module With_errors :
Travesty.Bi_traversable_types.Generic_on_applicative
with type ('l, 'r) t := ('l, 'r) t
and type 'l left := 'l
and type 'r right := 'r
and module M := Base.Or_errorWith_errors specialises On_monad to the error_monad.