| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
DataFrame.Internal.Types
Synopsis
- type Columnable' a = (Typeable a, Show a, Eq a)
- data These a b
- data Rep
- type family If (cond :: Bool) (yes :: k) (no :: k) :: k where ...
- type family Unboxable a :: Bool where ...
- type family Numeric a :: Bool where ...
- type family KindOf a :: Rep where ...
- data SBool (b :: Bool) where
- class SBoolI (b :: Bool) where
- sUnbox :: SBoolI (Unboxable a) => SBool (Unboxable a)
- sNumeric :: SBoolI (Numeric a) => SBool (Numeric a)
- type family When (flag :: Bool) c where ...
- type UnboxIf a = When (Unboxable a) (Unbox a)
- type family IntegralTypes a :: Bool where ...
- sIntegral :: SBoolI (IntegralTypes a) => SBool (IntegralTypes a)
- type IntegralIf a = When (IntegralTypes a) (Integral a)
- type family FloatingTypes a :: Bool where ...
- sFloating :: SBoolI (FloatingTypes a) => SBool (FloatingTypes a)
- type FloatingIf a = When (FloatingTypes a) (Real a, Fractional a)
- type family Promote a b where ...
- type family PromoteDiv a b where ...
Documentation
Inline replacement for Data.These.These to keep dataframe-core free
of the these package dependency. Only the three constructors and the
derived classes are used internally.
Instances
| Foldable (These a) Source # | |
Defined in DataFrame.Internal.Types Methods fold :: Monoid m => These a m -> m # foldMap :: Monoid m => (a0 -> m) -> These a a0 -> m # foldMap' :: Monoid m => (a0 -> m) -> These a a0 -> m # foldr :: (a0 -> b -> b) -> b -> These a a0 -> b # foldr' :: (a0 -> b -> b) -> b -> These a a0 -> b # foldl :: (b -> a0 -> b) -> b -> These a a0 -> b # foldl' :: (b -> a0 -> b) -> b -> These a a0 -> b # foldr1 :: (a0 -> a0 -> a0) -> These a a0 -> a0 # foldl1 :: (a0 -> a0 -> a0) -> These a a0 -> a0 # toList :: These a a0 -> [a0] # elem :: Eq a0 => a0 -> These a a0 -> Bool # maximum :: Ord a0 => These a a0 -> a0 # minimum :: Ord a0 => These a a0 -> a0 # | |
| Traversable (These a) Source # | |
Defined in DataFrame.Internal.Types | |
| Functor (These a) Source # | |
| (Read a, Read b) => Read (These a b) Source # | |
| (Show a, Show b) => Show (These a b) Source # | |
| (Eq a, Eq b) => Eq (These a b) Source # | |
| (Ord a, Ord b) => Ord (These a b) Source # | |
A type with column representations used to select the
"right" representation when specializing the toColumn function.
Constructors
| RBoxed | |
| RUnboxed | |
| RNullableBoxed |
type family Unboxable a :: Bool where ... Source #
All unboxable types (according to the vector package).
Equations
| Unboxable Int = 'True | |
| Unboxable Int8 = 'True | |
| Unboxable Int16 = 'True | |
| Unboxable Int32 = 'True | |
| Unboxable Int64 = 'True | |
| Unboxable Word = 'True | |
| Unboxable Word8 = 'True | |
| Unboxable Word16 = 'True | |
| Unboxable Word32 = 'True | |
| Unboxable Word64 = 'True | |
| Unboxable Char = 'True | |
| Unboxable Bool = 'True | |
| Unboxable Double = 'True | |
| Unboxable Float = 'True | |
| Unboxable _1 = 'False |
type family Numeric a :: Bool where ... Source #
Equations
| Numeric Integer = 'True | |
| Numeric Int = 'True | |
| Numeric Int8 = 'True | |
| Numeric Int16 = 'True | |
| Numeric Int32 = 'True | |
| Numeric Int64 = 'True | |
| Numeric Word = 'True | |
| Numeric Word8 = 'True | |
| Numeric Word16 = 'True | |
| Numeric Word32 = 'True | |
| Numeric Word64 = 'True | |
| Numeric Double = 'True | |
| Numeric Float = 'True | |
| Numeric _1 = 'False |
sUnbox :: SBoolI (Unboxable a) => SBool (Unboxable a) Source #
Runtime witness for whether a is unboxable.
type family IntegralTypes a :: Bool where ... Source #
Equations
| IntegralTypes Integer = 'True | |
| IntegralTypes Int = 'True | |
| IntegralTypes Int8 = 'True | |
| IntegralTypes Int16 = 'True | |
| IntegralTypes Int32 = 'True | |
| IntegralTypes Int64 = 'True | |
| IntegralTypes Word = 'True | |
| IntegralTypes Word8 = 'True | |
| IntegralTypes Word16 = 'True | |
| IntegralTypes Word32 = 'True | |
| IntegralTypes Word64 = 'True | |
| IntegralTypes _1 = 'False |
sIntegral :: SBoolI (IntegralTypes a) => SBool (IntegralTypes a) Source #
type IntegralIf a = When (IntegralTypes a) (Integral a) Source #
type family FloatingTypes a :: Bool where ... Source #
Equations
| FloatingTypes Float = 'True | |
| FloatingTypes Double = 'True | |
| FloatingTypes _1 = 'False |
sFloating :: SBoolI (FloatingTypes a) => SBool (FloatingTypes a) Source #
type FloatingIf a = When (FloatingTypes a) (Real a, Fractional a) Source #
type family Promote a b where ... Source #
Numeric type promotion: resolves the common type for mixed arithmetic. Double dominates over Float/Int; Float dominates over Int; same types stay unchanged.
type family PromoteDiv a b where ... Source #
Like Promote, but integral × integral → Double for use with ./ .
Double/Float still dominate; any two integral types (same or mixed) become Double.
Equations
| PromoteDiv Double _1 = Double | |
| PromoteDiv _1 Double = Double | |
| PromoteDiv Float _1 = Float | |
| PromoteDiv _1 Float = Float | |
| PromoteDiv _1 _2 = Double |