package travesty

  1. Overview
  2. Docs
Traversable containers, monad extensions, and more

Install

Dune Dependency

Authors

Maintainers

Sources

travesty-v0.7.0.tbz
sha256=01661918f73f33b0e6d0cf3851c2d5d6ef76b86332a3e76a4958689ff1a6fd3a
sha512=14e9b0e9ae39055c386c5e996055ce59edf57b9bf9b0055722632520f9c9b0270af571576950be982ed2b86e859361c7344166a38a85fa7d28d45be8f3e18c77

doc/travesty.base_exts/Travesty_base_exts/Result/index.html

Module Travesty_base_exts.ResultSource

Result monad extensions.

This module contains bi-traversability for Base's Result monad.

Sourcetype ('ok, 'err) t = ('ok, 'err) Base.Result.t

Defined to let this module be used directly in chaining operations etc.

Travesty signatures

Result is a bi-traversable type, with the left type being the result type, and the right type the error type. This is backwards from Haskell conventions, but matches the positions of the type parameters.

include Travesty.Bi_traversable_types.S2 with type ('ok, 'err) t := ('ok, 'err) t
include Base.T2 with type ('ok, 'err) t := ('ok, 'err) t
include Travesty.Bi_traversable_types.Generic with type ('l, 'r) t := ('l, 'r) t and type 'l left := 'l and type 'r right := 'r
include Travesty.Generic_types.Bi_generic with type ('l, 'r) t := ('l, 'r) t with type 'l left := 'l with type 'r right := 'r

We 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 := 'r
include Travesty.Bi_mappable_types.Basic_generic with type ('l, 'r) t := ('l, 'r) t with type 'l left := 'l with type 'r right := 'r
include Travesty.Generic_types.Bi_generic with type ('l, 'r) t := ('l, 'r) t with type 'l left := 'l with type 'r right := 'r
Sourceval bi_map : ('l1, 'r1) t -> left:('l1 -> 'l2) -> right:('r1 -> 'r2) -> ('l2, 'r2) t

bi_map c ~left ~right maps left over every 'l1 left, and right over every 'r1 right, in c.

Sourceval map_left : ('l1, 'r) t -> f:('l1 -> 'l2) -> ('l2, 'r) t

map_left c ~f maps f over the left type of c only.

Sourceval map_right : ('l, 'r1) t -> f:('r1 -> 'r2) -> ('l, 'r2) t

map_right c ~f maps f over the right 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 := M

On 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_error

With_errors specialises On_monad to the error_monad.

OCaml

Innovation. Community. Security.