Safe Haskell | None |
---|
Anexperimental feature to override the Enumerable
instance for any type.
- type Override = DynMap Tag
- noOverride :: Override
- addOverride :: Enumerable a => Enumerate a -> Override -> Override
- override :: Enumerable a => Override -> Enumerate a
Documentation
addOverride :: Enumerable a => Enumerate a -> Override -> OverrideSource
override :: Enumerable a => Override -> Enumerate aSource
This function is best described with an example:
let e1 = override $ addOverride (unary printable
) noOverride :: Enumerate T
e1
enumerates values of type T
where all characters (accessed using
the Enumerable
instance for Char
) are printable. Sometimes this can save
you from placing lots of printable
modifiers in your instances or
newtypes in your data type definitions.
This works for any type (not just characters). This function should typically not be used when combining enumerations (doing so might increase memory usage because the resulting enumeration is optimised). Also this only has effect on enumerations which have not already been optimised, so using override again on the result of override has no effect.