Safe Haskell | None |
---|---|
Language | Haskell2010 |
Internal module: This module does not make any stability guarantees, and may not adhere to the PVP.
This module defines the Omega
type, which has only one inhabitant: the
infinite chain of successors. Any function which consumes an Omega
is
functionally equivalent to any other; likewise for those which produce an
Omega
. However, they may have radically differing strictness behaviors. It
is for this reason that we have use for this type in the course of random
example generation.
Documentation
The type with one inhabitant: the infinite chain of successors
Instances
Generic Omega Source # | |
Generic Omega Source # | |
HasDatatypeInfo Omega Source # | |
Defined in Test.StrictCheck.Internal.Omega type DatatypeInfoOf Omega :: DatatypeInfo # datatypeInfo :: proxy Omega -> DatatypeInfo (Code Omega) # | |
Produce Omega Source # | |
Shaped Omega Source # | |
Defined in Test.StrictCheck.Internal.Omega project :: (forall x. Shaped x => x -> f x) -> Omega -> Shape Omega f Source # embed :: (forall x. Shaped x => f x -> x) -> Shape Omega f -> Omega Source # match :: Shape Omega f -> Shape Omega g -> (forall (xs :: [Type]). All Shaped xs => Flattened (Shape Omega) f xs -> Maybe (Flattened (Shape Omega) g xs) -> result) -> result Source # | |
type Rep Omega Source # | |
Defined in Test.StrictCheck.Internal.Omega | |
type Code Omega Source # | |
Defined in Test.StrictCheck.Internal.Omega | |
type DatatypeInfoOf Omega Source # | |
Defined in Test.StrictCheck.Internal.Omega | |
type Shape Omega Source # | |
Defined in Test.StrictCheck.Internal.Omega |
forceOmega :: Int -> Omega -> () Source #
Evaluate n
constructors of a given Omega
value, returning unit