StrictCheck-0.3.0: StrictCheck: Keep Your Laziness In Check

Safe HaskellNone
LanguageHaskell2010

Test.StrictCheck.Internal.Omega

Description

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.

Synopsis

Documentation

data Omega Source #

The type with one inhabitant: the infinite chain of successors

Constructors

Succ Omega 
Instances
Generic Omega Source # 
Instance details

Defined in Test.StrictCheck.Internal.Omega

Associated Types

type Rep Omega :: Type -> Type #

Methods

from :: Omega -> Rep Omega x #

to :: Rep Omega x -> Omega #

Generic Omega Source # 
Instance details

Defined in Test.StrictCheck.Internal.Omega

Associated Types

type Code Omega :: [[Type]] #

Methods

from :: Omega -> Rep Omega #

to :: Rep Omega -> Omega #

HasDatatypeInfo Omega Source # 
Instance details

Defined in Test.StrictCheck.Internal.Omega

Associated Types

type DatatypeInfoOf Omega :: DatatypeInfo #

Methods

datatypeInfo :: proxy Omega -> DatatypeInfo (Code Omega) #

Produce Omega Source # 
Instance details

Defined in Test.StrictCheck.Internal.Omega

Shaped Omega Source # 
Instance details

Defined in Test.StrictCheck.Internal.Omega

Associated Types

type Shape Omega :: (Type -> Type) -> Type Source #

Methods

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 #

render :: Shape Omega (K x) -> RenderLevel x Source #

type Rep Omega Source # 
Instance details

Defined in Test.StrictCheck.Internal.Omega

type Rep Omega = D1 (MetaData "Omega" "Test.StrictCheck.Internal.Omega" "StrictCheck-0.3.0-F5ZCmFoEdl2GgOid0WrN2V" False) (C1 (MetaCons "Succ" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Omega)))
type Code Omega Source # 
Instance details

Defined in Test.StrictCheck.Internal.Omega

type DatatypeInfoOf Omega Source # 
Instance details

Defined in Test.StrictCheck.Internal.Omega

type Shape Omega Source # 
Instance details

Defined in Test.StrictCheck.Internal.Omega

forceOmega :: Int -> Omega -> () Source #

Evaluate n constructors of a given Omega value, returning unit