-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Generating all n-tuples without getting stuck in one infinity -- -- Generating tuples like this: [(x, y) | x <- [1..], y <- [1..]] -- generates tuples that change only in the second position. This library -- uses an automata to generate all tuples whose sum of digits is -- constant. This constant is increased and thereby all tuples are -- generated. @package tuple-gen @version 1.1 module Data.Tuple.Gen -- | generate all 2-tuples so that the sum of all digits is monotonic -- increasing all2s :: Num a => [(a, a)] -- | generate all 3-tuples so that the sum of all digits is monotonic -- increasing all3s :: Num a => [(a, a, a)] -- | generate all 4-tuples so that the sum of all digits is monotonic -- increasing all4s :: Num a => [(a, a, a, a)] -- | generate all 5-tuples so that the sum of all digits is monotonic -- increasing all5s :: Num a => [(a, a, a, a, a)] -- | generate all 6-tuples so that the sum of all digits is monotonic -- increasing all6s :: Num a => [(a, a, a, a, a, a)] -- | generate all 7-tuples so that the sum of all digits is monotonic -- increasing all7s :: Num a => [(a, a, a, a, a, a, a)] -- | generate all 8-tuples so that the sum of all digits is monotonic -- increasing all8s :: Num a => [(a, a, a, a, a, a, a, a)] -- | generate all 9-tuples so that the sum of all digits is monotonic -- increasing all9s :: Num a => [(a, a, a, a, a, a, a, a, a)] -- | generate all 10-tuples so that the sum of all digits is monotonic -- increasing all10s :: Num a => [(a, a, a, a, a, a, a, a, a, a)] all2sFrom :: Num a => (a, a) -> [(a, a)] all3sFrom :: Num a => (a, a, a) -> [(a, a, a)] all4sFrom :: Num a => (a, a, a, a) -> [(a, a, a, a)] all5sFrom :: Num a => (a, a, a, a, a) -> [(a, a, a, a, a)] all6sFrom :: Num a => (a, a, a, a, a, a) -> [(a, a, a, a, a, a)] all7sFrom :: Num a => (a, a, a, a, a, a, a) -> [(a, a, a, a, a, a, a)] all8sFrom :: Num a => (a, a, a, a, a, a, a, a) -> [(a, a, a, a, a, a, a, a)] all9sFrom :: Num a => (a, a, a, a, a, a, a, a, a) -> [(a, a, a, a, a, a, a, a, a)] all10sFrom :: Num a => (a, a, a, a, a, a, a, a, a, a) -> [(a, a, a, a, a, a, a, a, a, a)] data T2 a data T3 a data T4 a data T5 a data T6 a data T7 a data T8 a data T9 a data T10 a instance Show a => Show (T2 a) instance Show a => Show (T3 a) instance Show a => Show (T4 a) instance Show a => Show (T5 a) instance Show a => Show (T6 a) instance Show a => Show (T7 a) instance Show a => Show (T8 a) instance Show a => Show (T9 a) instance Show a => Show (T10 a) instance (Eq a, Ord a, Num a) => Ord (T10 a) instance (Eq a, Ord a, Num a) => Ord (T9 a) instance (Eq a, Ord a, Num a) => Ord (T8 a) instance (Eq a, Ord a, Num a) => Ord (T7 a) instance (Eq a, Ord a, Num a) => Ord (T6 a) instance (Eq a, Ord a, Num a) => Ord (T5 a) instance (Eq a, Ord a, Num a) => Ord (T4 a) instance (Eq a, Ord a, Num a) => Ord (T3 a) instance (Eq a, Ord a, Num a) => Ord (T2 a) instance Eq a => Eq (T10 a) instance Eq a => Eq (T9 a) instance Eq a => Eq (T8 a) instance Eq a => Eq (T7 a) instance Eq a => Eq (T6 a) instance Eq a => Eq (T5 a) instance Eq a => Eq (T4 a) instance Eq a => Eq (T3 a) instance Eq a => Eq (T2 a)