package travesty
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page
Monadically traversable containers
Install
dune-project
Dependency
Authors
Maintainers
Sources
travesty-v0.3.0.tbz
sha256=40ada5c475cfeba7d933eec133294d1b5ef5da6ce864c9746b2ce4ce49b5e3a4
md5=dc818d6b232f13edb388d25781cd99a2
doc/CHANGES.html
v0.3.0 (2019-03-03)
Breaking changes
- Now targeting v0.12 of Jane Street's upstream libraries. This release of travesty no longer supports v0.11.
- As a result, travesty no longer supports OCaml 4.06; please use 4.07+.
- Traversable signature names have changed:
Basic_container0is nowBasic0, andBasic_container1is nowBasic1. The original names are now used for stronger interfaces that include implementations ofContainer.S*; see 'new features' below for information.
New features
- Add
T_container.Extensions0andExtend0, which generalise most ofExtensions1/Extend1to arity-0 containers. - Generalise
T_container's predicate extensions (any/all/none) over arity-0 containers, provided that theireltisx -> boolfor somex. - Add
Bi_mappable, an implementation of bifunctors. - Add
T_alist, an extended form ofList.Assoc. - Split the Traversable container functors into two kinds: the
Make_container*functors now takeBasic*signatures (but are otherwise the same---they still produce their ownContainer.S*instances); the newExtend_container*functors take the now-strongerBasic_container*signatures, which include custom implementations ofContainer.S*, and use those instead. The idea is thatMakeis for building new containers from traversals, andExtendis for adding traversals to existing containers.
Other
T_listandT_optionnow useExtend_container1internally: the upshot of this is that they re-use the existing Core implementations of container operations where possible, rather than (slowly) re-building them usingfold_m.
v0.2.0 (2018-12-23)
Breaking changes
- Potentially breaking change:
Traversable.S0_containernow containsmodule Elt : Equal.S, and constrainstype eltto be equal toElt.t. This reflects the situation inBasic_container0, and shouldn't break any code usingMake_container0, but may cause custom-built modules to fail to type-check. T_container.any's arguments have swapped order, to be more in line withCoreidioms.
New features
- Add
Traversable.Chain0, a functor for combining twoS0_containerinstances together for nested traversal. - Add
T_fn.disjto go withT_fn.conj. - Add
Filter_mappable, which generalisesList.filter_map. - Add
tee_mto monad extensions. This is a small wrapper overf x >>| fun () -> xthat allows unit-returning monadic side-effects to be treated as part of a monad pipeline. - Add
T_or_error: monad extensions forCore.Or_error. oneandtwoare now implemented onT_container, not justT_list. The errors are slightly less precise, but otherwise nothing has changed.- Add
T_container.at_most_oneto complementoneandtwo. - Add
Monad.To_mappable, which makes sure that monads can be converted to mappables. - Add
T_container.allandnone, to complementany.
Other
- Improve API documentation.
v0.1.3 (2018-12-13)
- Fix incorrect module name (was
Lib, notTravesty). - Restrict to OCaml v4.06+ (this was the case in the final v0.1.2 OPAM release, but not upstream).
v0.1.2 (2018-12-12)
- Improve API documentation.
- Move functors and concrete modules out of
Intffiles. - Generally rationalise the interface ready for a public release.
- Add various container modules from
act:Singleton,T_list, andT_option.
v0.1.1 (2018-12-10)
- Move API documentation, in an attempt to get
dune-releaseto work.
v0.1 (2018-12-10)
- Initial release.
- Existing functionality migrated from
act's utils directory.
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page