travesty
-
library travesty
-
module Travesty
-
module Bi_mappable
-
module Chain_Bi0_Map1
-
module Chain_Bi1_left_Map1
-
module Chain_Bi1_right_Map1
-
module Chain_Bi2_Map1
-
module Chain_Map1_Bi1_left
-
module Chain_Map1_Bi1_right
-
module Chain_Map1_Bi2
-
module Fix1_right
-
module Fix2_right
-
module Make1_left
-
argument 1-I
-
-
module Make1_right
-
argument 1-I
-
-
module Map0_right
-
argument 1-S
-
-
module Map1_right
-
argument 1-S
-
-
-
module Bi_mappable_types
-
module type Basic0
-
module type Basic1_left
-
module type Basic1_right
-
module type Basic2
-
module type Basic_generic
-
module type Generic
-
module type S0
-
module type S1_left
-
module type S1_right
-
module type S2
-
-
module Bi_traversable
-
module Chain_Bi0_Traverse1
-
argument 1-Bi
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
argument 2-Trav
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Chain_Bi1_left_Traverse1
-
argument 1-Bi
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
argument 2-Trav
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Chain_Bi1_right_Traverse1
-
argument 1-Bi
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
argument 2-Trav
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Chain_Bi2_Traverse1
-
argument 1-Bi
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
argument 2-Trav
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Chain_Traverse1_Bi1_left
-
argument 1-LTrav
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
argument 2-Bi
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Chain_Traverse1_Bi1_right
-
argument 1-RTrav
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
argument 2-Bi
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Chain_Traverse1_Bi2
-
argument 1-LTrav
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
argument 2-RTrav
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
argument 3-Bi
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Fix1_left
-
argument 1-I
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
-
argument 2-Left
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Fix1_right
-
argument 1-I
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
-
argument 2-Right
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Fix2_both
-
argument 1-I
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
-
argument 2-Left
-
argument 3-Right
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Fix2_left
-
argument 1-I
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
-
argument 2-Left
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Fix2_right
-
argument 1-I
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
-
argument 2-Right
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Make0
-
argument 1-I
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Make1_left
-
argument 1-I
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Make1_right
-
argument 1-I
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Make2
-
argument 1-I
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Traverse0_left
-
argument 1-L
-
argument 2-S
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Traverse0_right
-
argument 1-R
-
argument 2-S
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Traverse1_left
-
argument 1-S
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Traverse1_right
-
argument 1-S
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
-
module Bi_traversable_types
-
module type Basic0
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
-
module type Basic0_on_applicative
-
module M
-
module Applicative_infix
-
-
-
module type Basic1_left
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
-
module type Basic1_left_on_applicative
-
module M
-
module Applicative_infix
-
-
-
module type Basic1_right
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
-
module type Basic1_right_on_applicative
-
module M
-
module Applicative_infix
-
-
-
module type Basic2
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
-
module type Basic2_on_applicative
-
module M
-
module Applicative_infix
-
-
-
module type Basic_generic_on_applicative
-
module M
-
module Applicative_infix
-
-
-
module type Generic
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module type Generic_on_applicative
-
module M
-
module Applicative_infix
-
-
-
module type S0
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module type S1_left
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module type S1_right
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module type S2
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
-
module Container_exts
-
module Extend0_predicate
-
module Container_exts_types
-
module type Generic
-
module type Generic_predicate
-
module type S0
-
module type S0_predicate
-
module type S1
-
-
module Filter_mappable
-
module To_mappable0
-
argument 1-F
-
-
module To_mappable1
-
argument 1-F
-
-
module Filter_mappable_types
-
module Generic_types
-
module Mappable_types
-
module type Extensions1
-
module type Generic
-
module type S0
-
module type S0_container
-
module type S1
-
module type S1_container
-
-
module Monad_exts
-
module App
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
module Applicative_infix
-
-
module Extend
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module Let
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module S2_to_S
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
argument 2-B
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
module To_mappable
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
-
module Monad_exts_types
-
module Monad_transform
-
module type S
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
-
module type S_fixed
-
module Inner
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
-
module State
-
module M2
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
module Make
-
argument 1-B
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
module To_S
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
argument 2-B
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module State_transform
-
module Make
-
argument 1-B
-
module Inner
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
module Monadic
-
-
module Make2
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
module Monadic
-
-
module To_S
-
argument 1-M
-
module Inner
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
module Monadic
-
-
argument 2-B
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
module Monadic
-
-
-
module State_transform_types
-
module type Basic
-
module Inner
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module type Fix
-
module type Generic
-
module Inner
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
module Monadic
-
-
module type Generic_builders
-
module type Generic_runners
-
module type Generic_types
-
module type S
-
module Inner
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
module Monadic
-
-
module type S2
-
module Inner
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
module Monadic
-
-
-
module State_types
-
module type Generic
-
module type S
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
module type S2
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module Traversable
-
module Chain0
-
argument 1-Outer
-
module Elt
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
argument 2-Inner
-
module Elt
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Const
-
argument 1-T
-
argument 2-Elt
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Fix_elt
-
argument 1-I
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
argument 2-Elt
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Make0
-
argument 1-I
-
module Elt
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Make0_container
-
argument 1-I
-
module Elt
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Make1
-
argument 1-I
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Make1_container
-
argument 1-I
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
-
module Traversable_types
-
module type Basic0
-
module Elt
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
-
module type Basic0_container
-
module Elt
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
-
module type Basic0_on_applicative
-
module M
-
module Applicative_infix
-
-
-
module type Basic1
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
-
module type Basic1_container
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
-
module type Basic1_on_applicative
-
module M
-
module Applicative_infix
-
-
-
module type Basic_generic_on_applicative
-
module M
-
module Applicative_infix
-
-
-
module type Generic
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module type Generic_on_applicative
-
module M
-
module Applicative_infix
-
-
-
module type Generic_on_monad
-
module M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module type S0
-
module Elt
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module type S1
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module type S1_on_applicative
-
module M
-
module Applicative_infix
-
-
-
module type S1_on_monad
-
module M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
-
-
-
library travesty.base_exts
-
module Travesty_base_exts
-
module Alist
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Fn
-
module Compose_syntax
-
-
module List
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Option
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Or_error
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module On_ok
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module With_errors
-
-
module Result
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Tuple2
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
-
-
library travesty.containers
-
module Travesty_containers
-
module Singleton
-
module On
-
argument 1-M
-
module Applicative_infix
-
-
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module With_errors
-
-
module Zipper
-
module Int_mark_zipper
-
module On_error
-
module On_ident
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module On_option
-
-
module Make_marked
-
argument 1-Mark
-
module On_error
-
module On_ident
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module On_option
-
-
module Plain
-
module On_error
-
module On_ident
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module On_option
-
-
-
module Zipper_types
-
module type Basic_mark
-
module type S
-
module On_error
-
module On_ident
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module On_option
-
-
module type S_marked
-
module On_error
-
module On_ident
-
module On_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module On_option
-
-
module type S_marked_monadic
-
module M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module type S_marked_non_monadic
-
module type S_monadic
-
module M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module type S_non_monadic
-
-
-
Travesty
Travesty is a library for defining containers with monadic and otherwise 'exotic' traversals, inspired by Haskell's Traversable and related typeclasses. It sits on top of Jane Street's Core library ecosystem.
As well as monadic traversals, Travesty includes various other extensions on top of Core. These focus on making a more 'purely functional', Haskell-esque style of programming easier, though with a focus on pragmatism over mathematical purity.
Traversal interfaces
Travesty contains module signatures, functors, and extensions for dealing with various kinds of traversability:
Travesty.Mappable
: mapping (in Haskell, functors);Travesty.Traversable
: monadic traversal (in Haskell, traversable functors);Travesty.Bi_mappable
: mapping on two types over the same container (in Haskell, bifunctors);Travesty.Filter_mappable
: mapping that can discard elements (similar to the filtrable Haskell library).
Haskell's foldable functors already exist in Base as Container.
State monads
Travesty
also contains implementations of state monads (Travesty.State
) and transformers (Travesty.State_transform
). We use these to implement fold-mapping and folding on top of Travesty.Traversable
, but expose them for general consumption.
Extensions
Travesty also contains extensions to various module signatures, as well as to Base container and monad modules. We keep the latter in sub-libraries of Travesty
.
Signature expansions
These are in the Travesty
library, and always have the suffix exts
. Some Travesty signatures pull them in automatically.
- Containers (
Travesty.Container_exts
) - Monads (
Travesty.Monad_exts
)
Implementation expansions
These are in the Travesty_base_exts
library. Each usually has the same name as the module it extends (except `Alist`), but doesn't re-export that module. The intended mode of use is:
open Base
module Tx = Travesty_base_exts
let example (foo : ('k, 'v) List.Assoc.t) =
Tx.Alist.bi_map ~left:foo ~right:bar foo
Travesty_base_exts.Tuple2
: pairs/2-tuplesTravesty_base_exts.Alist
: associative listsTravesty_base_exts.Or_error
: error monadTravesty_base_exts.Fn
: function combinatorsTravesty_base_exts.List
: listsTravesty_base_exts.Option
: options
Custom containers
As well as expanding various Base
containers, Travesty
features some of its own. These have various traversal and mapping features built in, but aren't necessarily optimised for heavy-duty use.
Each is in the Travesty_containers
subpackage (in Dune, use travesty.containers
.)
Travesty_containers.Singleton
: treating a single data item like a mappable, traversable containerTravesty_containers.Zipper
: list zippers
Related projects
Other similar libraries
- The BAP monads library also contains implementations of monadic traversals, as well as several of
Travesty
's other extensions. - The accessor library is an implementation of the related Haskell notion of 'lenses', composable accessors for nested functional data structures.
Projects depending on Travesty
- act, a toolbox for automatic compiler testing.