Travesty is a library for defining containers with monadic traversals, inspired by Haskell's Traversable typeclass. 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.
Travesty's other extensions.Travesty's main contribution is the Traversable module, which implements monadic traversal. It also includes a Mappable module, which adds various bits of support for mappable containers (what Haskell would call 'functors').
Travesty also contains implementations of state monads (State) and transformers (State_transform). These are mainly used to implement fold-mapping and folding on top of Traversable, but we expose them for general consumption.
Travesty also contains extensions to various Core modules and module signatures. These generally carry a T_ prefix, so that they don't clash with Core modules if Travesty is opened globally.