-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | dimensions, quantities and constants -- -- Library to work with typed SI dimensions and common physical functions -- and constants. @package physics @version 0.1.2.1 module Physics.Units.Prefixes yotta :: (Num x, Functor f, z ~ f x) => z -> z zetta :: (Num x, Functor f, z ~ f x) => z -> z exa :: (Num x, Functor f, z ~ f x) => z -> z peta :: (Num x, Functor f, z ~ f x) => z -> z tera :: (Num x, Functor f, z ~ f x) => z -> z giga :: (Num x, Functor f, z ~ f x) => z -> z mega :: (Num x, Functor f, z ~ f x) => z -> z kilo :: (Num x, Functor f, z ~ f x) => z -> z hecto :: (Num x, Functor f, z ~ f x) => z -> z deca :: (Num x, Functor f, z ~ f x) => z -> z deci :: (Fractional x, Functor f, z ~ f x) => z -> z centi :: (Fractional x, Functor f, z ~ f x) => z -> z milli :: (Fractional x, Functor f, z ~ f x) => z -> z micro :: (Fractional x, Functor f, z ~ f x) => z -> z nano :: (Fractional x, Functor f, z ~ f x) => z -> z pico :: (Fractional x, Functor f, z ~ f x) => z -> z femto :: (Fractional x, Functor f, z ~ f x) => z -> z atto :: (Fractional x, Functor f, z ~ f x) => z -> z zepto :: (Fractional x, Functor f, z ~ f x) => z -> z yocto :: (Fractional x, Functor f, z ~ f x) => z -> z module Physics.Units.Type data Exponent Positive :: Nat -> Exponent Negative :: Nat -> Exponent type P4 = 'Positive 4 type P3 = 'Positive 3 type P2 = 'Positive 2 type P1 = 'Positive 1 type Z = 'Positive 0 type N1 = 'Negative 1 type N2 = 'Negative 2 type N3 = 'Negative 3 type N4 = 'Negative 4 newtype SI (metre :: Exponent) (kilogram :: Exponent) (second :: Exponent) (ampere :: Exponent) (kelvin :: Exponent) (mole :: Exponent) (candela :: Exponent) x SI :: x -> SI x newtype Planck (metre :: Exponent) (kilogram :: Exponent) (second :: Exponent) (coulomb :: Exponent) (kelvin :: Exponent) x Planck :: x -> Planck x instance Data.Traversable.Traversable (Physics.Units.Type.Planck metre kilogram second coulomb kelvin) instance Data.Foldable.Foldable (Physics.Units.Type.Planck metre kilogram second coulomb kelvin) instance GHC.Generics.Generic (Physics.Units.Type.Planck metre kilogram second coulomb kelvin x) instance GHC.Enum.Bounded x => GHC.Enum.Bounded (Physics.Units.Type.Planck metre kilogram second coulomb kelvin x) instance GHC.Read.Read x => GHC.Read.Read (Physics.Units.Type.Planck metre kilogram second coulomb kelvin x) instance GHC.Enum.Enum x => GHC.Enum.Enum (Physics.Units.Type.Planck metre kilogram second coulomb kelvin x) instance GHC.Base.Functor (Physics.Units.Type.Planck metre kilogram second coulomb kelvin) instance GHC.Classes.Ord x => GHC.Classes.Ord (Physics.Units.Type.Planck metre kilogram second coulomb kelvin x) instance GHC.Classes.Eq x => GHC.Classes.Eq (Physics.Units.Type.Planck metre kilogram second coulomb kelvin x) instance Data.Traversable.Traversable (Physics.Units.Type.SI metre kilogram second ampere kelvin mole candela) instance Data.Foldable.Foldable (Physics.Units.Type.SI metre kilogram second ampere kelvin mole candela) instance GHC.Generics.Generic (Physics.Units.Type.SI metre kilogram second ampere kelvin mole candela x) instance GHC.Enum.Bounded x => GHC.Enum.Bounded (Physics.Units.Type.SI metre kilogram second ampere kelvin mole candela x) instance GHC.Read.Read x => GHC.Read.Read (Physics.Units.Type.SI metre kilogram second ampere kelvin mole candela x) instance GHC.Enum.Enum x => GHC.Enum.Enum (Physics.Units.Type.SI metre kilogram second ampere kelvin mole candela x) instance GHC.Base.Functor (Physics.Units.Type.SI metre kilogram second ampere kelvin mole candela) instance GHC.Classes.Ord x => GHC.Classes.Ord (Physics.Units.Type.SI metre kilogram second ampere kelvin mole candela x) instance GHC.Classes.Eq x => GHC.Classes.Eq (Physics.Units.Type.SI metre kilogram second ampere kelvin mole candela x) instance GHC.Base.Applicative (Physics.Units.Type.Planck metre kilogram second coulomb kelvin) instance (GHC.Show.Show x, GHC.TypeLits.KnownSymbol z, z ~ GHC.TypeLits.AppendSymbol (Physics.Units.Type.ShowUnit "m\8346" metre) (GHC.TypeLits.AppendSymbol (Physics.Units.Type.ShowUnit "kg\8346" kilogram) (GHC.TypeLits.AppendSymbol (Physics.Units.Type.ShowUnit "s\8346" second) (GHC.TypeLits.AppendSymbol (Physics.Units.Type.ShowUnit "C\8346" coulomb) (Physics.Units.Type.ShowUnit "K\8346" kelvin))))) => GHC.Show.Show (Physics.Units.Type.Planck metre kilogram second coulomb kelvin x) instance (GHC.Show.Show x, GHC.TypeLits.KnownSymbol z, z ~ GHC.TypeLits.AppendSymbol (Physics.Units.Type.ShowUnit "m" metre) (GHC.TypeLits.AppendSymbol (Physics.Units.Type.ShowUnit "kg" kilogram) (GHC.TypeLits.AppendSymbol (Physics.Units.Type.ShowUnit "s" second) (GHC.TypeLits.AppendSymbol (Physics.Units.Type.ShowUnit "A" ampere) (GHC.TypeLits.AppendSymbol (Physics.Units.Type.ShowUnit "K" kelvin) (GHC.TypeLits.AppendSymbol (Physics.Units.Type.ShowUnit "mol" mole) (Physics.Units.Type.ShowUnit "cd" candela))))))) => GHC.Show.Show (Physics.Units.Type.SI metre kilogram second ampere kelvin mole candela x) instance GHC.Base.Applicative (Physics.Units.Type.SI metre kilogram second ampere kelvin mole candela) module Physics.Units.Planck.Derived type Siemens = Planck N2 N1 P1 P2 Z siemens :: Num a => Siemens a type Farad = Planck N2 N1 P2 P2 Z farad :: Num a => Farad a type Pascal = Planck N1 P1 N2 Z Z pascal :: Num a => Pascal a type Hertz = Planck Z Z N1 Z Z hertz :: Num a => Hertz a type Becquerel = Planck Z Z N1 Z Z becquerel :: Num a => Becquerel a type Ampere = Planck Z Z N1 P1 Z ampere :: Num a => Ampere a type Radian = Planck Z Z Z Z Z radian :: Num a => Radian a type Steradian = Planck Z Z Z Z Z steradian :: Num a => Steradian a type Tesla = Planck Z P1 N1 N1 Z tesla :: Num a => Tesla a type Newton = Planck P1 P1 N2 Z Z newton :: Num a => Newton a type Gray = Planck P2 Z N2 Z Z gray :: Num a => Gray a type Sievert = Planck P2 Z N2 Z Z sievert :: Num a => Sievert a type Watt = Planck P2 P1 N3 Z Z watt :: Num a => Watt a type Volt = Planck P2 P1 N2 N1 Z volt :: Num a => Volt a type Joule = Planck P2 P1 N2 Z Z joule :: Num a => Joule a type Ohm = Planck P2 P1 N1 N2 Z ohm :: Num a => Ohm a type Weber = Planck P2 P1 N1 N1 Z weber :: Num a => Weber a type Henry = Planck P2 P1 Z N2 Z henry :: Num a => Henry a module Physics.Units.Planck.Base type One = Planck Z Z Z Z Z one :: Num a => One a type Metre = Planck P1 Z Z Z Z metre :: Num a => Metre a type Kilogram = Planck Z P1 Z Z Z kilogram :: Num a => Kilogram a type Second = Planck Z Z P1 Z Z second :: Num a => Second a type Coulomb = Planck Z Z Z P1 Z coulomb :: Num a => Coulomb a type Kelvin = Planck Z Z Z Z P1 kelvin :: Num a => Kelvin a module Physics.Units.Derived type Siemens = SI N2 N1 P3 P2 Z Z Z siemens :: Num a => Siemens a type Farad = SI N2 N1 P4 P2 Z Z Z farad :: Num a => Farad a type Lux = SI N2 Z Z Z Z Z P1 lux :: Num a => Lux a type Pascal = SI N1 P1 N2 Z Z Z Z pascal :: Num a => Pascal a type Hertz = SI Z Z N1 Z Z Z Z hertz :: Num a => Hertz a type Becquerel = SI Z Z N1 Z Z Z Z becquerel :: Num a => Becquerel a type Katal = SI Z Z N1 Z Z P1 Z katal :: Num a => Katal a type Radian = SI Z Z Z Z Z Z Z radian :: Num a => Radian a type Steradian = SI Z Z Z Z Z Z Z steradian :: Num a => Steradian a type Lumen = SI Z Z Z Z Z Z P1 lumen :: Num a => Lumen a type Coulomb = SI Z Z P1 P1 Z Z Z coulomb :: Num a => Coulomb a type Tesla = SI Z P1 N2 N1 Z Z Z tesla :: Num a => Tesla a type Newton = SI P1 P1 N2 Z Z Z Z newton :: Num a => Newton a type Gray = SI P2 Z N2 Z Z Z Z gray :: Num a => Gray a type Sievert = SI P2 Z N2 Z Z Z Z sievert :: Num a => Sievert a type Ohm = SI P2 P1 N3 N2 Z Z Z ohm :: Num a => Ohm a type Volt = SI P2 P1 N3 N1 Z Z Z volt :: Num a => Volt a type Watt = SI P2 P1 N3 Z Z Z Z watt :: Num a => Watt a type Henry = SI P2 P1 N2 N2 Z Z Z henry :: Num a => Henry a type Weber = SI P2 P1 N2 N1 Z Z Z weber :: Num a => Weber a type Joule = SI P2 P1 N2 Z Z Z Z joule :: Num a => Joule a module Physics.Units.Base type One = SI Z Z Z Z Z Z Z one :: Num a => One a type Metre = SI P1 Z Z Z Z Z Z metre :: Num a => Metre a type Kilogram = SI Z P1 Z Z Z Z Z kilogram :: Num a => Kilogram a type Second = SI Z Z P1 Z Z Z Z second :: Num a => Second a type Ampere = SI Z Z Z P1 Z Z Z ampere :: Num a => Ampere a type Kelvin = SI Z Z Z Z P1 Z Z kelvin :: Num a => Kelvin a type Mole = SI Z Z Z Z Z P1 Z mole :: Num a => Mole a type Candela = SI Z Z Z Z Z Z P1 candela :: Num a => Candela a module Physics.Units.Arithmetic value :: Coercible (f a) a => f a -> a unit :: (Num a, Functor f) => f b -> f a (*<) :: (Num x, Functor f, z ~ f x) => x -> z -> z infixl 7 *< (>/) :: (Fractional x, Functor f, z ~ f x) => z -> x -> z infixl 7 >/ (/<) :: (Fractional x, Functor f, Coercible (f x) ((f ^- 1) x)) => x -> f x -> (f ^- 1) x infixl 7 /< (>*<) :: (Num x, Coercible (f x) x, Coercible (f' x) x, Applicative (f >*< f')) => f x -> f' x -> (f >*< f') x infixl 7 >*< (>/<) :: (Fractional x, Coercible (f x) x, Coercible (f' x) x, Applicative (f >/< f')) => f x -> f' x -> (f >/< f') x infixl 7 >/< (>+<) :: (Num x, Applicative f, z ~ f x) => z -> z -> z infixl 6 >+< (>-<) :: (Num x, Applicative f, z ~ f x) => z -> z -> z infixl 6 >-< nthRoot :: (KnownNat n, Floating x, Functor f, Coercible (f x) (NthRoot n f x)) => Proxy n -> f x -> NthRoot n f x type SquareRoot d = NthRoot 2 d squareRoot :: (Coercible (f x) (SquareRoot f x), Floating x, Functor f) => f x -> SquareRoot f x type CubeRoot d = NthRoot 3 d cubeRoot :: (Coercible (f x) (CubeRoot f x), Floating x, Functor f) => f x -> CubeRoot f x hypercube :: (KnownNat n, Num x, Functor f, Coercible (f x) ((f ^+ n) x)) => Proxy n -> f x -> (f ^+ n) x type Square d = d ^+ 2 square :: (Coercible (f x) (Square f x), Num x, Functor f) => f x -> Square f x type Cube d = d ^+ 3 cube :: (Coercible (f x) (Cube f x), Num x, Functor f) => f x -> Cube f x type Tesseract d = d ^+ 4 tesseract :: (Coercible (f x) (Tesseract f x), Num x, Functor f) => f x -> Tesseract f x type Penteract d = d ^+ 5 penteract :: (Coercible (f x) (Penteract f x), Num x, Functor f) => f x -> Penteract f x module Physics.Units.Planck module Physics.Units.Constants.Measured weakMixingAngle :: Fractional a => One a gravitationalConstant :: Fractional a => (Cube Metre >/< Kilogram >/< Square Second) a wienDisplacementLawConstant :: Fractional a => (Metre >*< Kelvin) a protonMass :: Fractional a => Kilogram a electronRelativeMass :: Fractional a => One a fineStructureConstant :: Fractional a => One a rydbergConstant :: Fractional a => (One >/< Metre) a module Physics.Units.Constants hyperfineSplittingFrequencyOfCaesium133 :: Num a => (One >/< Second) a lightspeed :: Num a => (Metre >/< Second) a planckConstant :: Fractional a => (Kilogram >*< Square Metre >/< Second) a elementaryCharge :: Fractional a => (Ampere >*< Second) a boltzmannConstant :: Fractional a => (Kilogram >*< Square Metre >/< Square Second >/< Kelvin) a avogadroConstant :: Num a => (One >/< Mole) a luminousEfficacy :: Num a => (Candela >*< Cube Second >/< Kilogram >/< Square Metre) a secondRadiationConstant :: Fractional a => (Metre >*< Kelvin) a molarPlanckConstant :: Fractional a => (Joule >*< Second >/< Mole) a firstRadiationConstant :: Floating a => (Watt >*< Square Metre) a firstRadiationConstantForSpectralRadiance :: Floating a => (Watt >*< Square Metre) a efimovFactor :: Fractional a => One a conductanceQuantum :: Fractional a => Siemens a inverseConductanceQuantum :: Fractional a => Ohm a reducedPlanckConstant :: Floating a => (Joule >*< Second) a josephsonConstant :: Fractional a => (One >/< Volt >/< Second) a magneticFluxQuantum :: Fractional a => Weber a vonKlitzingConstant :: Fractional a => Ohm a faradayConstant :: Fractional a => (Coulomb >/< Mole) a gasConstant :: Fractional a => (Joule >/< Mole >/< Kelvin) a stefanBoltzmannConstant :: Floating a => (Watt >/< Square Metre >/< Tesseract Kelvin) a electronVolt :: Fractional a => Joule a planckLength :: Floating a => Metre a planckMass :: Floating a => Kilogram a planckTime :: Floating a => Second a planckCharge :: Floating a => Coulomb a planckTemperature :: Floating a => Kelvin a magneticConstant :: Fractional a => (Newton >/< Square Ampere) a electricConstant :: Fractional a => (Farad >/< Metre) a impedanceOfVacuum :: Fractional a => Ohm a coulombConstant :: Floating a => (Kilogram >*< Cube Metre >/< Tesseract Second >/< Square Ampere) a bohrMagneton :: Floating a => (Joule >/< Tesla) a electronMass :: Fractional a => Kilogram a electronMolarMass :: Fractional a => (Kilogram >/< Mole) a unifiedAtomicMassUnit :: Fractional a => Kilogram a molarMassConstant :: Fractional a => (Kilogram >/< Mole) a atomicMassOfCarbon12 :: Fractional a => Kilogram a molarMassOfCarbon12 :: Fractional a => (Kilogram >/< Mole) a nuclearMagneton :: Floating a => (Joule >/< Tesla) a bohrRadius :: Floating a => Metre a classicalElectronRadius :: Floating a => Metre a hartreeEnergy :: Fractional a => Joule a quantumOfCirculation :: Fractional a => (Square Metre >/< Second) a thomsonCrossSection :: Floating a => Square Metre a module Physics.Units.Convert class ExpVal (x :: Exponent) expVal :: ExpVal x => Proxy x -> Integer fromSI :: forall x metre kilogram second ampere kelvin. (Floating x, ExpVal metre, ExpVal kilogram, ExpVal (Minus second ampere), ExpVal ampere, ExpVal kelvin) => SI metre kilogram second ampere kelvin Z Z x -> Planck metre kilogram (Minus second ampere) ampere kelvin x fromPlanck :: forall x metre kilogram second coulomb kelvin. (Floating x, ExpVal metre, ExpVal kilogram, ExpVal second, ExpVal coulomb, ExpVal kelvin) => Planck metre kilogram second coulomb kelvin x -> SI metre kilogram (Plus second coulomb) coulomb kelvin Z Z x instance GHC.TypeNats.KnownNat n => Physics.Units.Convert.ExpVal ('Physics.Units.Type.Positive n) instance GHC.TypeNats.KnownNat n => Physics.Units.Convert.ExpVal ('Physics.Units.Type.Negative n) module Physics.Units