tuple-gen

Enum instances for tuples where the digits increase with the same speed

Latest on Hackage:2.0

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

BSD-3-Clause licensed by Tillmann Vogt
Maintained by [email protected]

Generating tuples like this: [(x, y) | x <- [1..], y <- [1..]] generates tuples that change only in the second position.

This library uses increasingly bigger hyperplanes to generate tuples.

It uses the Enum instances that are also used in the Prelude.

Thereby tuples with arbitrary starting values and types can be enumerated.

Example: ( enumFrom (0,(1,2),3) ) :: [(Word8,(Word8,Word8),Word8)]

evaluates to [(0,(1,2),3), (0,(2,1),4), (0,(3,0),5), ...].

Further explanations are planned to appear in the Monad Reader issue 20.