-- | A collection of functions to generate combinatorial -- objects like partitions, compositions, permutations, -- Young tableaux, various trees, etc. -- -- -- The long-term goals are -- -- (1) to be efficient; -- -- (2) to be able to enumerate the structures -- with constant memory usage. -- -- The short-term goal is to generate -- many interesting structures. -- -- -- Naming conventions (subject to change): -- -- * prime suffix: additional constrains, typically more general; -- -- * underscore prefix: use plain lists instead of other types with -- enforced invariants; -- -- * \"random\" prefix: generates random objects -- (typically with uniform distribution); -- -- * \"count\" prefix: counting functions. -- -- -- This module re-exports the most common modules. -- module Math.Combinat ( module Math.Combinat.Numbers , module Math.Combinat.Sets , module Math.Combinat.Tuples , module Math.Combinat.Compositions , module Math.Combinat.Partitions , module Math.Combinat.Permutations , module Math.Combinat.Tableaux , module Math.Combinat.Trees , module Math.Combinat.Graphviz ) where import Math.Combinat.Numbers import Math.Combinat.Sets import Math.Combinat.Tuples import Math.Combinat.Compositions import Math.Combinat.Partitions import Math.Combinat.Permutations import Math.Combinat.Tableaux import Math.Combinat.Trees import Math.Combinat.Graphviz