dataframe-core-2.4.0.0: Core data structures for the dataframe library.
Safe HaskellNone
LanguageHaskell2010

DataFrame.Internal.Types

Synopsis

Documentation

type Columnable' a = (Typeable a, Show a, Eq a) Source #

data These a b Source #

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.

Constructors

This a 
That b 
These a b 

Instances

Instances details
Foldable (These a) Source # 
Instance details

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] #

null :: These a a0 -> Bool #

length :: These a a0 -> Int #

elem :: Eq a0 => a0 -> These a a0 -> Bool #

maximum :: Ord a0 => These a a0 -> a0 #

minimum :: Ord a0 => These a a0 -> a0 #

sum :: Num a0 => These a a0 -> a0 #

product :: Num a0 => These a a0 -> a0 #

Traversable (These a) Source # 
Instance details

Defined in DataFrame.Internal.Types

Methods

traverse :: Applicative f => (a0 -> f b) -> These a a0 -> f (These a b) #

sequenceA :: Applicative f => These a (f a0) -> f (These a a0) #

mapM :: Monad m => (a0 -> m b) -> These a a0 -> m (These a b) #

sequence :: Monad m => These a (m a0) -> m (These a a0) #

Functor (These a) Source # 
Instance details

Defined in DataFrame.Internal.Types

Methods

fmap :: (a0 -> b) -> These a a0 -> These a b #

(<$) :: a0 -> These a b -> These a a0 #

(Read a, Read b) => Read (These a b) Source # 
Instance details

Defined in DataFrame.Internal.Types

(Show a, Show b) => Show (These a b) Source # 
Instance details

Defined in DataFrame.Internal.Types

Methods

showsPrec :: Int -> These a b -> ShowS #

show :: These a b -> String #

showList :: [These a b] -> ShowS #

(Eq a, Eq b) => Eq (These a b) Source # 
Instance details

Defined in DataFrame.Internal.Types

Methods

(==) :: These a b -> These a b -> Bool #

(/=) :: These a b -> These a b -> Bool #

(Ord a, Ord b) => Ord (These a b) Source # 
Instance details

Defined in DataFrame.Internal.Types

Methods

compare :: These a b -> These a b -> Ordering #

(<) :: These a b -> These a b -> Bool #

(<=) :: These a b -> These a b -> Bool #

(>) :: These a b -> These a b -> Bool #

(>=) :: These a b -> These a b -> Bool #

max :: These a b -> These a b -> These a b #

min :: These a b -> These a b -> These a b #

data Rep Source #

A type with column representations used to select the "right" representation when specializing the toColumn function.

type family If (cond :: Bool) (yes :: k) (no :: k) :: k where ... Source #

Type-level if statement.

Equations

If 'True (yes :: k) (_1 :: k) = yes 
If 'False (_1 :: k) (no :: k) = no 

type family Unboxable a :: Bool where ... Source #

All unboxable types (according to the vector package).

type family KindOf a :: Rep where ... Source #

Compute the column representation tag for any a.

data SBool (b :: Bool) where Source #

Type-level boolean for constraint/type comparison.

Constructors

STrue :: SBool 'True 
SFalse :: SBool 'False 

class SBoolI (b :: Bool) where Source #

The runtime witness for our type-level branching.

Methods

sbool :: SBool b Source #

Instances

Instances details
SBoolI 'False Source # 
Instance details

Defined in DataFrame.Internal.Types

Methods

sbool :: SBool 'False Source #

SBoolI 'True Source # 
Instance details

Defined in DataFrame.Internal.Types

Methods

sbool :: SBool 'True Source #

sUnbox :: SBoolI (Unboxable a) => SBool (Unboxable a) Source #

Runtime witness for whether a is unboxable.

type family When (flag :: Bool) c where ... Source #

Equations

When 'True c = c 
When 'False c = () 

type UnboxIf a = When (Unboxable a) (Unbox a) Source #

type family FloatingTypes a :: Bool where ... 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.