The join function is the conventional monad join operator. It is used to remove one level of monadic structure, projecting its bound argument into the outer level.
Parallel Join Patterns with Guards and Propagation
A JoinList - a list type with with cheap catenation.
Generally speaking, joinlists have cheap construction (cons, snoc and join aka. append) and expensive manipulation. For most use-cases Data.Sequence is a more appropriate data structure.
* 3.0 - Added views as per Data.Sequence and takes and drops. Changed show instance to mimic Data.Sequence.
* 2.0 - more operations and some bugfixes (toList...), wrap renamed to singleton.
Take the conjunction of several properties.
Take the disjunction of several properties.