Creating an instance of this class is a declaration that your type is recursively enumerable (and that universe is that enumeration). In particular, you promise that any finite inhabitant has a finite index in universe, and that no inhabitant appears at two different finite indices.
Well-behaved instance should produce elements lazily.
Laws:
elem x universe -- any inhabitant has a finite index
let pfx = take n universe -- any finite prefix of universe has unique elements
in length pfx = length (nub pfx)
Methods
universe :: [a]
Instances50Universe, …
Universe IntegerDefined in universe-base-1.1.4 · Data.Universe.ClassUniverse NaturalDefined in universe-base-1.1.4 · Data.Universe.ClassUniverse VoidDefined in universe-base-1.1.4 · Data.Universe.ClassUniverse AllDefined in universe-base-1.1.4 · Data.Universe.ClassUniverse AnyDefined in universe-base-1.1.4 · Data.Universe.ClassUniverse Int16Defined in universe-base-1.1.4 · Data.Universe.ClassUniverse Int32Defined in universe-base-1.1.4 · Data.Universe.ClassUniverse Int64Defined in universe-base-1.1.4 · Data.Universe.ClassUniverse Int8Defined in universe-base-1.1.4 · Data.Universe.ClassUniverse Word16Defined in universe-base-1.1.4 · Data.Universe.ClassUniverse Word32Defined in universe-base-1.1.4 · Data.Universe.ClassUniverse Word64Defined in universe-base-1.1.4 · Data.Universe.ClassUniverse Word8Defined in universe-base-1.1.4 · Data.Universe.ClassUniverse BoolDefined in universe-base-1.1.4 · Data.Universe.ClassUniverse CharDefined in universe-base-1.1.4 · Data.Universe.ClassUniverse IntDefined in universe-base-1.1.4 · Data.Universe.ClassUniverse OrderingDefined in universe-base-1.1.4 · Data.Universe.ClassUniverse WordDefined in universe-base-1.1.4 · Data.Universe.ClassUniverse ()Defined in universe-base-1.1.4 · Data.Universe.ClassRationalUniverse a => Universe (Ratio a)Defined in universe-base-1.1.4 · Data.Universe.ClassUniverse a => Universe (First a)Defined in universe-base-1.1.4 · Data.Universe.ClassUniverse a => Universe (Last a)Defined in universe-base-1.1.4 · Data.Universe.ClassUniverse a => Universe (Max a)Defined in universe-base-1.1.4 · Data.Universe.ClassUniverse a => Universe (Min a)Defined in universe-base-1.1.4 · Data.Universe.ClassUniverse a => Universe (NonEmpty a)Defined in universe-base-1.1.4 · Data.Universe.ClassUniverse a => Universe (Identity a)Defined in universe-base-1.1.4 · Data.Universe.ClassUniverse a => Universe (First a)Defined in universe-base-1.1.4 · Data.Universe.ClassUniverse a => Universe (Last a)Defined in universe-base-1.1.4 · Data.Universe.ClassUniverse a => Universe (Dual a)Defined in universe-base-1.1.4 · Data.Universe.ClassUniverse a => Universe (Product a)Defined in universe-base-1.1.4 · Data.Universe.ClassUniverse a => Universe (Sum a)Defined in universe-base-1.1.4 · Data.Universe.ClassUniverse a => Universe (Maybe a)Defined in universe-base-1.1.4 · Data.Universe.ClassUniverse a => Universe (a)Defined in universe-base-1.1.4 · Data.Universe.ClassUniverse a => Universe [a]Defined in universe-base-1.1.4 · Data.Universe.Class(Ord a, Universe a) => Universe (Set a)Defined in universe-base-1.1.4 · Data.Universe.ClassExample2 expressions import qualified Data.Set as SetmapM_ print (universe :: [Set.Set Bool])fromList []fromList [False]fromList [True]fromList [False,True]
Universe (Proxy a)Defined in universe-base-1.1.4 · Data.Universe.Class(Ord k, Finite k, Universe v) => Universe (Map k v)Defined in universe-base-1.1.4 · Data.Universe.ClassExample2 expressions import qualified Data.Map as MapmapM_ print (universe :: [Map.Map Bool Bool])fromList []fromList [(True,False)]fromList [(False,False)]fromList [(True,True)]fromList [(False,False),(True,False)]fromList [(False,True)]fromList [(False,False),(True,True)]fromList [(False,True),(True,False)]fromList [(False,True),(True,True)]
(Finite a, Ord a, Universe b) => Universe (a -> b)Defined in universe-base-1.1.4 · Data.Universe.ClassExample1 expression mapM_ print (universe :: [Bool -> Bool])[(False,False),(True,False)][(False,False),(True,True)][(False,True),(True,False)][(False,True),(True,True)]
(Universe a, Universe b) => Universe (Either a b)Defined in universe-base-1.1.4 · Data.Universe.Class(Universe a, Universe b) => Universe (a, b)Defined in universe-base-1.1.4 · Data.Universe.ClassUniverse (f a) => Universe (IdentityT f a)Defined in universe-base-1.1.4 · Data.Universe.ClassUniverse a => Universe (Const a b)Defined in universe-base-1.1.4 · Data.Universe.ClassUniverse a => Universe (Tagged b a)Defined in universe-base-1.1.4 · Data.Universe.Class(Finite e, Ord e, Universe (m a)) => Universe (ReaderT e m a)Defined in universe-base-1.1.4 · Data.Universe.Class(Universe a, Universe b, Universe c) => Universe (a, b, c)Defined in universe-base-1.1.4 · Data.Universe.Class(Universe (f a), Universe (g a)) => Universe (Product f g a)Defined in universe-base-1.1.4 · Data.Universe.Class(Universe (f a), Universe (g a)) => Universe (Sum f g a)Defined in universe-base-1.1.4 · Data.Universe.Class(Universe a, Universe b, Universe c, Universe d) => Universe (a, b, c, d)Defined in universe-base-1.1.4 · Data.Universe.ClassUniverse (f (g a)) => Universe (Compose f g a)Defined in universe-base-1.1.4 · Data.Universe.Class(Universe a, Universe b, Universe c, Universe d, Universe e) => Universe (a, b, c, d, e)Defined in universe-base-1.1.4 · Data.Universe.Class