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

Safe HaskellNone
LanguageHaskell2010

Data.Strict

Synopsis

Documentation

data Rnf a Source #

A newtype to enforce rigid normal form evaluation.

Instances

Foldable Rnf Source # 

Methods

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

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

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

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

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

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

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

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

toList :: Rnf a -> [a] #

null :: Rnf a -> Bool #

length :: Rnf a -> Int #

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

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

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

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

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

(NFData a, IsList a) => IsList (Rnf a) Source # 

Associated Types

type Item (Rnf a) :: * #

Methods

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

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

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

(NFData a, Bounded a) => Bounded (Rnf a) Source # 

Methods

minBound :: Rnf a #

maxBound :: Rnf a #

(NFData a, Enum a) => Enum (Rnf a) Source # 

Methods

succ :: Rnf a -> Rnf a #

pred :: Rnf a -> Rnf a #

toEnum :: Int -> Rnf a #

fromEnum :: Rnf a -> Int #

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

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

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

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

Eq a => Eq (Rnf a) Source # 

Methods

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

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

(NFData a, Floating a) => Floating (Rnf a) Source # 

Methods

pi :: Rnf a #

exp :: Rnf a -> Rnf a #

log :: Rnf a -> Rnf a #

sqrt :: Rnf a -> Rnf a #

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

logBase :: Rnf a -> Rnf a -> Rnf a #

sin :: Rnf a -> Rnf a #

cos :: Rnf a -> Rnf a #

tan :: Rnf a -> Rnf a #

asin :: Rnf a -> Rnf a #

acos :: Rnf a -> Rnf a #

atan :: Rnf a -> Rnf a #

sinh :: Rnf a -> Rnf a #

cosh :: Rnf a -> Rnf a #

tanh :: Rnf a -> Rnf a #

asinh :: Rnf a -> Rnf a #

acosh :: Rnf a -> Rnf a #

atanh :: Rnf a -> Rnf a #

log1p :: Rnf a -> Rnf a #

expm1 :: Rnf a -> Rnf a #

log1pexp :: Rnf a -> Rnf a #

log1mexp :: Rnf a -> Rnf a #

(NFData a, Fractional a) => Fractional (Rnf a) Source # 

Methods

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

recip :: Rnf a -> Rnf a #

fromRational :: Rational -> Rnf a #

(NFData a, Integral a) => Integral (Rnf a) Source # 

Methods

quot :: Rnf a -> Rnf a -> Rnf a #

rem :: Rnf a -> Rnf a -> Rnf a #

div :: Rnf a -> Rnf a -> Rnf a #

mod :: Rnf a -> Rnf a -> Rnf a #

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

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

toInteger :: Rnf a -> Integer #

(NFData a, Num a) => Num (Rnf a) Source # 

Methods

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

(-) :: Rnf a -> Rnf a -> Rnf a #

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

negate :: Rnf a -> Rnf a #

abs :: Rnf a -> Rnf a #

signum :: Rnf a -> Rnf a #

fromInteger :: Integer -> Rnf a #

Ord a => Ord (Rnf a) Source # 

Methods

compare :: Rnf a -> Rnf a -> Ordering #

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

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

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

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

max :: Rnf a -> Rnf a -> Rnf a #

min :: Rnf a -> Rnf a -> Rnf a #

(NFData a, Read a) => Read (Rnf a) Source # 
(NFData a, Real a) => Real (Rnf a) Source # 

Methods

toRational :: Rnf a -> Rational #

(NFData a, RealFloat a) => RealFloat (Rnf a) Source # 

Methods

floatRadix :: Rnf a -> Integer #

floatDigits :: Rnf a -> Int #

floatRange :: Rnf a -> (Int, Int) #

decodeFloat :: Rnf a -> (Integer, Int) #

encodeFloat :: Integer -> Int -> Rnf a #

exponent :: Rnf a -> Int #

significand :: Rnf a -> Rnf a #

scaleFloat :: Int -> Rnf a -> Rnf a #

isNaN :: Rnf a -> Bool #

isInfinite :: Rnf a -> Bool #

isDenormalized :: Rnf a -> Bool #

isNegativeZero :: Rnf a -> Bool #

isIEEE :: Rnf a -> Bool #

atan2 :: Rnf a -> Rnf a -> Rnf a #

(NFData a, RealFrac a) => RealFrac (Rnf a) Source # 

Methods

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

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

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

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

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

Show a => Show (Rnf a) Source # 

Methods

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

show :: Rnf a -> String #

showList :: [Rnf a] -> ShowS #

(NFData a, Monoid a) => Monoid (Rnf a) Source # 

Methods

mempty :: Rnf a #

mappend :: Rnf a -> Rnf a -> Rnf a #

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

NFData (Rnf a) Source # 

Methods

rnf :: Rnf a -> () #

Hashable a => Hashable (Rnf a) Source # 

Methods

hashWithSalt :: Int -> Rnf a -> Int #

hash :: Rnf a -> Int #

StrictType * seen (Rnf a) Source # 
type Item (Rnf a) Source # 
type Item (Rnf a) = Item a

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

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

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