Travesty.Container_extsSourceExtensions for containers.
We keep these in the main Travesty library because it's useful to pull them in for mappable and traversable containers.
As usual, we store the extension signatures in a separate intf module.
include module type of Container_exts_intfAs is often the case in Travesty, we define an arity-generic signature first, then specialise it for arity-0 and arity-1 containers.
The following functions concern containers of predicates (functions of type 'a -> bool).
These extensions target arity-0 containers (implementations of Container.S0).
Extensions for a Container.S0 whose elements are predicates.
These extensions target arity-1 containers (implementations of Container.S1).
These functors extend Core containers with the extensions described in S0 and S1.
Extend0 creates extensions for a Container.S0.
module Extend0_predicate
(P : Base.T)
(C : Base.Container.S0 with type elt = P.t -> Base.bool) :
S0_predicate with type t := C.t and type item := P.tExtend0_predicate creates extensions for a Container.S0 over predicates.
Extend1 creates extensions for a Container.S1.