typewiseTypewise structured sorting for arbirarily complex data structures.
This library defines and implements the collation used by the bytewise encoding library.
NOTE: the core typewise sorting functionality has been completely rewritten and moved to typewise-core. This library extends the data structures and comparators available to support more exotic types like ordered maps and sets, and shortlex-ordered tuples and records.
Type systemIn order to properly express the rules for sorting and equality for a wide range of structures
typewisedefines a simple type system for controlling these properties across a range of data structures.
typewisetype profile can be provide when creating a bytewise codec to control encoding and decoding behavior for specific types. Types may also contain high and low sentinal values that can be used to create
rangetypes which may be impossible be instantiate directly as instances.
For example, dates have no valid infinatary instances, but something analogous to the "minimum" and "maximum" dates is a useful construct for defining date intervals.