strict-types-0.1.3: A type level predicate ranging over strict types

Safe HaskellNone
LanguageHaskell2010

Data.Strict.Forced

Synopsis

Documentation

data Forced a where Source #

A newtype to enforce rigid normal form evaluation.

Bundled Patterns

pattern Forced :: NFData a => a -> Forced a

A pattern constructor that forces its contents to rnf

Instances
Foldable Forced Source # 
Instance details

Defined in Data.Strict.Forced

Methods

fold :: Monoid m => Forced m -> m #

foldMap :: Monoid m => (a -> m) -> Forced a -> m #

foldr :: (a -> b -> b) -> b -> Forced a -> b #

foldr' :: (a -> b -> b) -> b -> Forced a -> b #

foldl :: (b -> a -> b) -> b -> Forced a -> b #

foldl' :: (b -> a -> b) -> b -> Forced a -> b #

foldr1 :: (a -> a -> a) -> Forced a -> a #

foldl1 :: (a -> a -> a) -> Forced a -> a #

toList :: Forced a -> [a] #

null :: Forced a -> Bool #

length :: Forced a -> Int #

elem :: Eq a => a -> Forced a -> Bool #

maximum :: Ord a => Forced a -> a #

minimum :: Ord a => Forced a -> a #

sum :: Num a => Forced a -> a #

product :: Num a => Forced a -> a #

(NFData a, IsList a) => IsList (Forced a) Source # 
Instance details

Defined in Data.Strict.Forced

Associated Types

type Item (Forced a) :: * #

Methods

fromList :: [Item (Forced a)] -> Forced a #

fromListN :: Int -> [Item (Forced a)] -> Forced a #

toList :: Forced a -> [Item (Forced a)] #

(NFData a, Bounded a) => Bounded (Forced a) Source # 
Instance details

Defined in Data.Strict.Forced

Methods

minBound :: Forced a #

maxBound :: Forced a #

(NFData a, Enum a) => Enum (Forced a) Source # 
Instance details

Defined in Data.Strict.Forced

Methods

succ :: Forced a -> Forced a #

pred :: Forced a -> Forced a #

toEnum :: Int -> Forced a #

fromEnum :: Forced a -> Int #

enumFrom :: Forced a -> [Forced a] #

enumFromThen :: Forced a -> Forced a -> [Forced a] #

enumFromTo :: Forced a -> Forced a -> [Forced a] #

enumFromThenTo :: Forced a -> Forced a -> Forced a -> [Forced a] #

Eq a => Eq (Forced a) Source # 
Instance details

Defined in Data.Strict.Forced

Methods

(==) :: Forced a -> Forced a -> Bool #

(/=) :: Forced a -> Forced a -> Bool #

(NFData a, Floating a) => Floating (Forced a) Source # 
Instance details

Defined in Data.Strict.Forced

Methods

pi :: Forced a #

exp :: Forced a -> Forced a #

log :: Forced a -> Forced a #

sqrt :: Forced a -> Forced a #

(**) :: Forced a -> Forced a -> Forced a #

logBase :: Forced a -> Forced a -> Forced a #

sin :: Forced a -> Forced a #

cos :: Forced a -> Forced a #

tan :: Forced a -> Forced a #

asin :: Forced a -> Forced a #

acos :: Forced a -> Forced a #

atan :: Forced a -> Forced a #

sinh :: Forced a -> Forced a #

cosh :: Forced a -> Forced a #

tanh :: Forced a -> Forced a #

asinh :: Forced a -> Forced a #

acosh :: Forced a -> Forced a #

atanh :: Forced a -> Forced a #

log1p :: Forced a -> Forced a #

expm1 :: Forced a -> Forced a #

log1pexp :: Forced a -> Forced a #

log1mexp :: Forced a -> Forced a #

(NFData a, Fractional a) => Fractional (Forced a) Source # 
Instance details

Defined in Data.Strict.Forced

Methods

(/) :: Forced a -> Forced a -> Forced a #

recip :: Forced a -> Forced a #

fromRational :: Rational -> Forced a #

(NFData a, Integral a) => Integral (Forced a) Source # 
Instance details

Defined in Data.Strict.Forced

Methods

quot :: Forced a -> Forced a -> Forced a #

rem :: Forced a -> Forced a -> Forced a #

div :: Forced a -> Forced a -> Forced a #

mod :: Forced a -> Forced a -> Forced a #

quotRem :: Forced a -> Forced a -> (Forced a, Forced a) #

divMod :: Forced a -> Forced a -> (Forced a, Forced a) #

toInteger :: Forced a -> Integer #

(NFData a, Num a) => Num (Forced a) Source # 
Instance details

Defined in Data.Strict.Forced

Methods

(+) :: Forced a -> Forced a -> Forced a #

(-) :: Forced a -> Forced a -> Forced a #

(*) :: Forced a -> Forced a -> Forced a #

negate :: Forced a -> Forced a #

abs :: Forced a -> Forced a #

signum :: Forced a -> Forced a #

fromInteger :: Integer -> Forced a #

Ord a => Ord (Forced a) Source # 
Instance details

Defined in Data.Strict.Forced

Methods

compare :: Forced a -> Forced a -> Ordering #

(<) :: Forced a -> Forced a -> Bool #

(<=) :: Forced a -> Forced a -> Bool #

(>) :: Forced a -> Forced a -> Bool #

(>=) :: Forced a -> Forced a -> Bool #

max :: Forced a -> Forced a -> Forced a #

min :: Forced a -> Forced a -> Forced a #

(NFData a, Read a) => Read (Forced a) Source # 
Instance details

Defined in Data.Strict.Forced

(NFData a, Real a) => Real (Forced a) Source # 
Instance details

Defined in Data.Strict.Forced

Methods

toRational :: Forced a -> Rational #

(NFData a, RealFloat a) => RealFloat (Forced a) Source # 
Instance details

Defined in Data.Strict.Forced

(NFData a, RealFrac a) => RealFrac (Forced a) Source # 
Instance details

Defined in Data.Strict.Forced

Methods

properFraction :: Integral b => Forced a -> (b, Forced a) #

truncate :: Integral b => Forced a -> b #

round :: Integral b => Forced a -> b #

ceiling :: Integral b => Forced a -> b #

floor :: Integral b => Forced a -> b #

Show a => Show (Forced a) Source # 
Instance details

Defined in Data.Strict.Forced

Methods

showsPrec :: Int -> Forced a -> ShowS #

show :: Forced a -> String #

showList :: [Forced a] -> ShowS #

(NFData a, Semigroup a) => Semigroup (Forced a) Source # 
Instance details

Defined in Data.Strict.Forced

Methods

(<>) :: Forced a -> Forced a -> Forced a #

sconcat :: NonEmpty (Forced a) -> Forced a #

stimes :: Integral b => b -> Forced a -> Forced a #

(Semigroup a, NFData a, Monoid a) => Monoid (Forced a) Source # 
Instance details

Defined in Data.Strict.Forced

Methods

mempty :: Forced a #

mappend :: Forced a -> Forced a -> Forced a #

mconcat :: [Forced a] -> Forced a #

NFData (Forced a) Source # 
Instance details

Defined in Data.Strict.Forced

Methods

rnf :: Forced a -> () #

Hashable a => Hashable (Forced a) Source # 
Instance details

Defined in Data.Strict.Forced

Methods

hashWithSalt :: Int -> Forced a -> Int #

hash :: Forced a -> Int #

StrictType seen (Forced a :: *) Source # 
Instance details

Defined in Data.Strict.Forced

type Item (Forced a) Source # 
Instance details

Defined in Data.Strict.Forced

type Item (Forced a) = Item a

map :: NFData a => (b -> a) -> Forced b -> Forced a Source #

traverse :: (NFData a, Applicative f) => (b -> f a) -> Forced b -> f (Forced a) Source #

(<!>) :: NFData a => Forced (t -> a) -> Forced t -> Forced a Source #