testing-feat- Functional Enumeration of Algebraic Types

Safe HaskellNone



Anexperimental feature to override the Enumerable instance for any type.



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.