physics-0.1.2.1: dimensions, quantities and constants

Safe HaskellNone
LanguageHaskell2010

Physics.Units.Type

Documentation

data Exponent Source #

Constructors

Positive Nat 
Negative Nat 

type P4 = Positive 4 Source #

type P3 = Positive 3 Source #

type P2 = Positive 2 Source #

type P1 = Positive 1 Source #

type Z = Positive 0 Source #

type N1 = Negative 1 Source #

type N2 = Negative 2 Source #

type N3 = Negative 3 Source #

type N4 = Negative 4 Source #

newtype SI (metre :: Exponent) (kilogram :: Exponent) (second :: Exponent) (ampere :: Exponent) (kelvin :: Exponent) (mole :: Exponent) (candela :: Exponent) x Source #

Constructors

SI x 
Instances
Functor (SI metre kilogram second ampere kelvin mole candela) Source # 
Instance details

Defined in Physics.Units.Type

Methods

fmap :: (a -> b) -> SI metre kilogram second ampere kelvin mole candela a -> SI metre kilogram second ampere kelvin mole candela b #

(<$) :: a -> SI metre kilogram second ampere kelvin mole candela b -> SI metre kilogram second ampere kelvin mole candela a #

Applicative (SI metre kilogram second ampere kelvin mole candela) Source # 
Instance details

Defined in Physics.Units.Type

Methods

pure :: a -> SI metre kilogram second ampere kelvin mole candela a #

(<*>) :: SI metre kilogram second ampere kelvin mole candela (a -> b) -> SI metre kilogram second ampere kelvin mole candela a -> SI metre kilogram second ampere kelvin mole candela b #

liftA2 :: (a -> b -> c) -> SI metre kilogram second ampere kelvin mole candela a -> SI metre kilogram second ampere kelvin mole candela b -> SI metre kilogram second ampere kelvin mole candela c #

(*>) :: SI metre kilogram second ampere kelvin mole candela a -> SI metre kilogram second ampere kelvin mole candela b -> SI metre kilogram second ampere kelvin mole candela b #

(<*) :: SI metre kilogram second ampere kelvin mole candela a -> SI metre kilogram second ampere kelvin mole candela b -> SI metre kilogram second ampere kelvin mole candela a #

Foldable (SI metre kilogram second ampere kelvin mole candela) Source # 
Instance details

Defined in Physics.Units.Type

Methods

fold :: Monoid m => SI metre kilogram second ampere kelvin mole candela m -> m #

foldMap :: Monoid m => (a -> m) -> SI metre kilogram second ampere kelvin mole candela a -> m #

foldr :: (a -> b -> b) -> b -> SI metre kilogram second ampere kelvin mole candela a -> b #

foldr' :: (a -> b -> b) -> b -> SI metre kilogram second ampere kelvin mole candela a -> b #

foldl :: (b -> a -> b) -> b -> SI metre kilogram second ampere kelvin mole candela a -> b #

foldl' :: (b -> a -> b) -> b -> SI metre kilogram second ampere kelvin mole candela a -> b #

foldr1 :: (a -> a -> a) -> SI metre kilogram second ampere kelvin mole candela a -> a #

foldl1 :: (a -> a -> a) -> SI metre kilogram second ampere kelvin mole candela a -> a #

toList :: SI metre kilogram second ampere kelvin mole candela a -> [a] #

null :: SI metre kilogram second ampere kelvin mole candela a -> Bool #

length :: SI metre kilogram second ampere kelvin mole candela a -> Int #

elem :: Eq a => a -> SI metre kilogram second ampere kelvin mole candela a -> Bool #

maximum :: Ord a => SI metre kilogram second ampere kelvin mole candela a -> a #

minimum :: Ord a => SI metre kilogram second ampere kelvin mole candela a -> a #

sum :: Num a => SI metre kilogram second ampere kelvin mole candela a -> a #

product :: Num a => SI metre kilogram second ampere kelvin mole candela a -> a #

Traversable (SI metre kilogram second ampere kelvin mole candela) Source # 
Instance details

Defined in Physics.Units.Type

Methods

traverse :: Applicative f => (a -> f b) -> SI metre kilogram second ampere kelvin mole candela a -> f (SI metre kilogram second ampere kelvin mole candela b) #

sequenceA :: Applicative f => SI metre kilogram second ampere kelvin mole candela (f a) -> f (SI metre kilogram second ampere kelvin mole candela a) #

mapM :: Monad m => (a -> m b) -> SI metre kilogram second ampere kelvin mole candela a -> m (SI metre kilogram second ampere kelvin mole candela b) #

sequence :: Monad m => SI metre kilogram second ampere kelvin mole candela (m a) -> m (SI metre kilogram second ampere kelvin mole candela a) #

Bounded x => Bounded (SI metre kilogram second ampere kelvin mole candela x) Source # 
Instance details

Defined in Physics.Units.Type

Methods

minBound :: SI metre kilogram second ampere kelvin mole candela x #

maxBound :: SI metre kilogram second ampere kelvin mole candela x #

Enum x => Enum (SI metre kilogram second ampere kelvin mole candela x) Source # 
Instance details

Defined in Physics.Units.Type

Methods

succ :: SI metre kilogram second ampere kelvin mole candela x -> SI metre kilogram second ampere kelvin mole candela x #

pred :: SI metre kilogram second ampere kelvin mole candela x -> SI metre kilogram second ampere kelvin mole candela x #

toEnum :: Int -> SI metre kilogram second ampere kelvin mole candela x #

fromEnum :: SI metre kilogram second ampere kelvin mole candela x -> Int #

enumFrom :: SI metre kilogram second ampere kelvin mole candela x -> [SI metre kilogram second ampere kelvin mole candela x] #

enumFromThen :: SI metre kilogram second ampere kelvin mole candela x -> SI metre kilogram second ampere kelvin mole candela x -> [SI metre kilogram second ampere kelvin mole candela x] #

enumFromTo :: SI metre kilogram second ampere kelvin mole candela x -> SI metre kilogram second ampere kelvin mole candela x -> [SI metre kilogram second ampere kelvin mole candela x] #

enumFromThenTo :: SI metre kilogram second ampere kelvin mole candela x -> SI metre kilogram second ampere kelvin mole candela x -> SI metre kilogram second ampere kelvin mole candela x -> [SI metre kilogram second ampere kelvin mole candela x] #

Eq x => Eq (SI metre kilogram second ampere kelvin mole candela x) Source # 
Instance details

Defined in Physics.Units.Type

Methods

(==) :: SI metre kilogram second ampere kelvin mole candela x -> SI metre kilogram second ampere kelvin mole candela x -> Bool #

(/=) :: SI metre kilogram second ampere kelvin mole candela x -> SI metre kilogram second ampere kelvin mole candela x -> Bool #

Ord x => Ord (SI metre kilogram second ampere kelvin mole candela x) Source # 
Instance details

Defined in Physics.Units.Type

Methods

compare :: SI metre kilogram second ampere kelvin mole candela x -> SI metre kilogram second ampere kelvin mole candela x -> Ordering #

(<) :: SI metre kilogram second ampere kelvin mole candela x -> SI metre kilogram second ampere kelvin mole candela x -> Bool #

(<=) :: SI metre kilogram second ampere kelvin mole candela x -> SI metre kilogram second ampere kelvin mole candela x -> Bool #

(>) :: SI metre kilogram second ampere kelvin mole candela x -> SI metre kilogram second ampere kelvin mole candela x -> Bool #

(>=) :: SI metre kilogram second ampere kelvin mole candela x -> SI metre kilogram second ampere kelvin mole candela x -> Bool #

max :: SI metre kilogram second ampere kelvin mole candela x -> SI metre kilogram second ampere kelvin mole candela x -> SI metre kilogram second ampere kelvin mole candela x #

min :: SI metre kilogram second ampere kelvin mole candela x -> SI metre kilogram second ampere kelvin mole candela x -> SI metre kilogram second ampere kelvin mole candela x #

Read x => Read (SI metre kilogram second ampere kelvin mole candela x) Source # 
Instance details

Defined in Physics.Units.Type

Methods

readsPrec :: Int -> ReadS (SI metre kilogram second ampere kelvin mole candela x) #

readList :: ReadS [SI metre kilogram second ampere kelvin mole candela x] #

readPrec :: ReadPrec (SI metre kilogram second ampere kelvin mole candela x) #

readListPrec :: ReadPrec [SI metre kilogram second ampere kelvin mole candela x] #

(Show x, KnownSymbol z, z ~ AppendSymbol (ShowUnit "m" metre) (AppendSymbol (ShowUnit "kg" kilogram) (AppendSymbol (ShowUnit "s" second) (AppendSymbol (ShowUnit "A" ampere) (AppendSymbol (ShowUnit "K" kelvin) (AppendSymbol (ShowUnit "mol" mole) (ShowUnit "cd" candela))))))) => Show (SI metre kilogram second ampere kelvin mole candela x) Source # 
Instance details

Defined in Physics.Units.Type

Methods

showsPrec :: Int -> SI metre kilogram second ampere kelvin mole candela x -> ShowS #

show :: SI metre kilogram second ampere kelvin mole candela x -> String #

showList :: [SI metre kilogram second ampere kelvin mole candela x] -> ShowS #

Generic (SI metre kilogram second ampere kelvin mole candela x) Source # 
Instance details

Defined in Physics.Units.Type

Associated Types

type Rep (SI metre kilogram second ampere kelvin mole candela x) :: * -> * #

Methods

from :: SI metre kilogram second ampere kelvin mole candela x -> Rep (SI metre kilogram second ampere kelvin mole candela x) x0 #

to :: Rep (SI metre kilogram second ampere kelvin mole candela x) x0 -> SI metre kilogram second ampere kelvin mole candela x #

type Rep (SI metre kilogram second ampere kelvin mole candela x) Source # 
Instance details

Defined in Physics.Units.Type

type Rep (SI metre kilogram second ampere kelvin mole candela x) = D1 (MetaData "SI" "Physics.Units.Type" "physics-0.1.2.1-1Jofw2n6nvZ2Vf7qG4M8tC" True) (C1 (MetaCons "SI" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 x)))

type family ShowUnit u e where ... Source #

Equations

ShowUnit u (Positive 0) = "" 
ShowUnit u e = AppendSymbol " " (AppendSymbol u (ShowExponent e)) 

type family ShowExponent a where ... Source #

type family ShowNatural a where ... Source #

Equations

ShowNatural 0 = "\8304" 
ShowNatural 1 = "\185" 
ShowNatural 2 = "\178" 
ShowNatural 3 = "\179" 
ShowNatural 4 = "\8308" 
ShowNatural 5 = "\8309" 
ShowNatural 6 = "\8310" 
ShowNatural 7 = "\8311" 
ShowNatural 8 = "\8312" 
ShowNatural 9 = "\8313" 
ShowNatural n = AppendSymbol (ShowNatural (Div n 10)) (ShowNatural (Mod n 10)) 

newtype Planck (metre :: Exponent) (kilogram :: Exponent) (second :: Exponent) (coulomb :: Exponent) (kelvin :: Exponent) x Source #

Constructors

Planck x 
Instances
Functor (Planck metre kilogram second coulomb kelvin) Source # 
Instance details

Defined in Physics.Units.Type

Methods

fmap :: (a -> b) -> Planck metre kilogram second coulomb kelvin a -> Planck metre kilogram second coulomb kelvin b #

(<$) :: a -> Planck metre kilogram second coulomb kelvin b -> Planck metre kilogram second coulomb kelvin a #

Applicative (Planck metre kilogram second coulomb kelvin) Source # 
Instance details

Defined in Physics.Units.Type

Methods

pure :: a -> Planck metre kilogram second coulomb kelvin a #

(<*>) :: Planck metre kilogram second coulomb kelvin (a -> b) -> Planck metre kilogram second coulomb kelvin a -> Planck metre kilogram second coulomb kelvin b #

liftA2 :: (a -> b -> c) -> Planck metre kilogram second coulomb kelvin a -> Planck metre kilogram second coulomb kelvin b -> Planck metre kilogram second coulomb kelvin c #

(*>) :: Planck metre kilogram second coulomb kelvin a -> Planck metre kilogram second coulomb kelvin b -> Planck metre kilogram second coulomb kelvin b #

(<*) :: Planck metre kilogram second coulomb kelvin a -> Planck metre kilogram second coulomb kelvin b -> Planck metre kilogram second coulomb kelvin a #

Foldable (Planck metre kilogram second coulomb kelvin) Source # 
Instance details

Defined in Physics.Units.Type

Methods

fold :: Monoid m => Planck metre kilogram second coulomb kelvin m -> m #

foldMap :: Monoid m => (a -> m) -> Planck metre kilogram second coulomb kelvin a -> m #

foldr :: (a -> b -> b) -> b -> Planck metre kilogram second coulomb kelvin a -> b #

foldr' :: (a -> b -> b) -> b -> Planck metre kilogram second coulomb kelvin a -> b #

foldl :: (b -> a -> b) -> b -> Planck metre kilogram second coulomb kelvin a -> b #

foldl' :: (b -> a -> b) -> b -> Planck metre kilogram second coulomb kelvin a -> b #

foldr1 :: (a -> a -> a) -> Planck metre kilogram second coulomb kelvin a -> a #

foldl1 :: (a -> a -> a) -> Planck metre kilogram second coulomb kelvin a -> a #

toList :: Planck metre kilogram second coulomb kelvin a -> [a] #

null :: Planck metre kilogram second coulomb kelvin a -> Bool #

length :: Planck metre kilogram second coulomb kelvin a -> Int #

elem :: Eq a => a -> Planck metre kilogram second coulomb kelvin a -> Bool #

maximum :: Ord a => Planck metre kilogram second coulomb kelvin a -> a #

minimum :: Ord a => Planck metre kilogram second coulomb kelvin a -> a #

sum :: Num a => Planck metre kilogram second coulomb kelvin a -> a #

product :: Num a => Planck metre kilogram second coulomb kelvin a -> a #

Traversable (Planck metre kilogram second coulomb kelvin) Source # 
Instance details

Defined in Physics.Units.Type

Methods

traverse :: Applicative f => (a -> f b) -> Planck metre kilogram second coulomb kelvin a -> f (Planck metre kilogram second coulomb kelvin b) #

sequenceA :: Applicative f => Planck metre kilogram second coulomb kelvin (f a) -> f (Planck metre kilogram second coulomb kelvin a) #

mapM :: Monad m => (a -> m b) -> Planck metre kilogram second coulomb kelvin a -> m (Planck metre kilogram second coulomb kelvin b) #

sequence :: Monad m => Planck metre kilogram second coulomb kelvin (m a) -> m (Planck metre kilogram second coulomb kelvin a) #

Bounded x => Bounded (Planck metre kilogram second coulomb kelvin x) Source # 
Instance details

Defined in Physics.Units.Type

Methods

minBound :: Planck metre kilogram second coulomb kelvin x #

maxBound :: Planck metre kilogram second coulomb kelvin x #

Enum x => Enum (Planck metre kilogram second coulomb kelvin x) Source # 
Instance details

Defined in Physics.Units.Type

Methods

succ :: Planck metre kilogram second coulomb kelvin x -> Planck metre kilogram second coulomb kelvin x #

pred :: Planck metre kilogram second coulomb kelvin x -> Planck metre kilogram second coulomb kelvin x #

toEnum :: Int -> Planck metre kilogram second coulomb kelvin x #

fromEnum :: Planck metre kilogram second coulomb kelvin x -> Int #

enumFrom :: Planck metre kilogram second coulomb kelvin x -> [Planck metre kilogram second coulomb kelvin x] #

enumFromThen :: Planck metre kilogram second coulomb kelvin x -> Planck metre kilogram second coulomb kelvin x -> [Planck metre kilogram second coulomb kelvin x] #

enumFromTo :: Planck metre kilogram second coulomb kelvin x -> Planck metre kilogram second coulomb kelvin x -> [Planck metre kilogram second coulomb kelvin x] #

enumFromThenTo :: Planck metre kilogram second coulomb kelvin x -> Planck metre kilogram second coulomb kelvin x -> Planck metre kilogram second coulomb kelvin x -> [Planck metre kilogram second coulomb kelvin x] #

Eq x => Eq (Planck metre kilogram second coulomb kelvin x) Source # 
Instance details

Defined in Physics.Units.Type

Methods

(==) :: Planck metre kilogram second coulomb kelvin x -> Planck metre kilogram second coulomb kelvin x -> Bool #

(/=) :: Planck metre kilogram second coulomb kelvin x -> Planck metre kilogram second coulomb kelvin x -> Bool #

Ord x => Ord (Planck metre kilogram second coulomb kelvin x) Source # 
Instance details

Defined in Physics.Units.Type

Methods

compare :: Planck metre kilogram second coulomb kelvin x -> Planck metre kilogram second coulomb kelvin x -> Ordering #

(<) :: Planck metre kilogram second coulomb kelvin x -> Planck metre kilogram second coulomb kelvin x -> Bool #

(<=) :: Planck metre kilogram second coulomb kelvin x -> Planck metre kilogram second coulomb kelvin x -> Bool #

(>) :: Planck metre kilogram second coulomb kelvin x -> Planck metre kilogram second coulomb kelvin x -> Bool #

(>=) :: Planck metre kilogram second coulomb kelvin x -> Planck metre kilogram second coulomb kelvin x -> Bool #

max :: Planck metre kilogram second coulomb kelvin x -> Planck metre kilogram second coulomb kelvin x -> Planck metre kilogram second coulomb kelvin x #

min :: Planck metre kilogram second coulomb kelvin x -> Planck metre kilogram second coulomb kelvin x -> Planck metre kilogram second coulomb kelvin x #

Read x => Read (Planck metre kilogram second coulomb kelvin x) Source # 
Instance details

Defined in Physics.Units.Type

Methods

readsPrec :: Int -> ReadS (Planck metre kilogram second coulomb kelvin x) #

readList :: ReadS [Planck metre kilogram second coulomb kelvin x] #

readPrec :: ReadPrec (Planck metre kilogram second coulomb kelvin x) #

readListPrec :: ReadPrec [Planck metre kilogram second coulomb kelvin x] #

(Show x, KnownSymbol z, z ~ AppendSymbol (ShowUnit "m\8346" metre) (AppendSymbol (ShowUnit "kg\8346" kilogram) (AppendSymbol (ShowUnit "s\8346" second) (AppendSymbol (ShowUnit "C\8346" coulomb) (ShowUnit "K\8346" kelvin))))) => Show (Planck metre kilogram second coulomb kelvin x) Source # 
Instance details

Defined in Physics.Units.Type

Methods

showsPrec :: Int -> Planck metre kilogram second coulomb kelvin x -> ShowS #

show :: Planck metre kilogram second coulomb kelvin x -> String #

showList :: [Planck metre kilogram second coulomb kelvin x] -> ShowS #

Generic (Planck metre kilogram second coulomb kelvin x) Source # 
Instance details

Defined in Physics.Units.Type

Associated Types

type Rep (Planck metre kilogram second coulomb kelvin x) :: * -> * #

Methods

from :: Planck metre kilogram second coulomb kelvin x -> Rep (Planck metre kilogram second coulomb kelvin x) x0 #

to :: Rep (Planck metre kilogram second coulomb kelvin x) x0 -> Planck metre kilogram second coulomb kelvin x #

type Rep (Planck metre kilogram second coulomb kelvin x) Source # 
Instance details

Defined in Physics.Units.Type

type Rep (Planck metre kilogram second coulomb kelvin x) = D1 (MetaData "Planck" "Physics.Units.Type" "physics-0.1.2.1-1Jofw2n6nvZ2Vf7qG4M8tC" True) (C1 (MetaCons "Planck" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 x)))