diff --git a/CHANGES.md b/CHANGES.md
new file mode 100644
--- /dev/null
+++ b/CHANGES.md
@@ -0,0 +1,4 @@
+Version 1.0
+-----------
+
+ * First release, contains implementations for SI.
diff --git a/Data/Metrology/SI.hs b/Data/Metrology/SI.hs
new file mode 100644
--- /dev/null
+++ b/Data/Metrology/SI.hs
@@ -0,0 +1,25 @@
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Data.Metrology.SI
+-- Copyright   :  (C) 2013 Richard Eisenberg
+-- License     :  BSD-style (see LICENSE)
+-- Maintainer  :  Richard Eisenberg (eir@cis.upenn.edu)
+-- Stability   :  experimental
+-- Portability :  non-portable
+--
+-- This module exports unit, type, and prefix definitions according to the SI
+-- system of units. The definitions were taken from here:
+-- <http://www.bipm.org/en/si/> and here:
+-- <http://www.bipm.org/utils/common/documents/jcgm/JCGM_200_2012.pdf>.
+--
+-- This module exports the monomorphic version of the definitions. For
+-- polymorphic versions, use 'Data.Metrology.SI.Poly'.
+-----------------------------------------------------------------------------
+
+module Data.Metrology.SI (
+  module Data.Metrology.SI.Mono
+  ) where
+
+import Data.Metrology.SI.Mono
+
+
diff --git a/Data/Metrology/SI/Dims.hs b/Data/Metrology/SI/Dims.hs
new file mode 100644
--- /dev/null
+++ b/Data/Metrology/SI/Dims.hs
@@ -0,0 +1,72 @@
+{-# LANGUAGE TypeOperators #-}
+
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Data.Metrology.SI.Dims
+-- Copyright   :  (C) 2013 Richard Eisenberg
+-- License     :  BSD-style (see LICENSE)
+-- Maintainer  :  Richard Eisenberg (eir@cis.upenn.edu)
+-- Stability   :  experimental
+-- Portability :  non-portable
+--
+-- This module defines SI dimensions. The names of SI dimensions conform to
+-- <http://www.bipm.org/utils/common/documents/jcgm/JCGM_200_2012.pdf>.
+-----------------------------------------------------------------------------
+
+module Data.Metrology.SI.Dims where
+
+import Data.Metrology
+
+data Length = Length
+instance Dimension Length
+
+data Mass = Mass
+instance Dimension Mass
+
+data Time = Time
+instance Dimension Time
+
+data Current = Current
+instance Dimension Current
+
+data Temperature = Temperature
+instance Dimension Temperature
+
+data AmountOfSubstance = AmountOfSubstance
+instance Dimension AmountOfSubstance
+
+data LuminousIntensity = LuminousIntensity
+instance Dimension LuminousIntensity
+
+type Area                = Length            :^ Two
+type Volume              = Length            :^ Three
+type Velocity            = Length            :/ Time
+type Acceleration        = Velocity          :/ Time
+type Wavenumber          = Length            :^ MOne
+type Density             = Mass              :/ Volume
+type SurfaceDensity      = Mass              :/ Area
+type SpecificVolume      = Volume            :/ Mass
+type CurrentDensity      = Current           :/ Area
+type MagneticStrength    = Current           :/ Length
+type Concentration       = AmountOfSubstance          :/ Volume
+type Luminance           = LuminousIntensity        :/ Area
+
+type Frequency           = Time              :^ MOne
+type Force               = Mass              :* Acceleration
+type Pressure            = Force             :/ Area
+type Energy              = Force             :* Length
+type Power               = Energy            :/ Time
+type Charge              = Current           :* Time
+type ElectricPotential   = Power             :/ Current
+type Capacitance         = Charge            :/ ElectricPotential
+type Resistance          = ElectricPotential :/ Current
+type Conductance         = Current           :/ ElectricPotential
+type MagneticFlux        = ElectricPotential :* Time
+type MagneticFluxDensity = MagneticFlux      :/ Area
+type Inductance          = MagneticFlux      :/ Current
+type LuminousFlux        = LuminousIntensity
+type Illuminance         = LuminousIntensity :/ Area
+type Kerma               = Area              :/ (Time :^ Two)
+type CatalyticActivity   = AmountOfSubstance :/ Time
+
+type Momentum            = Mass              :* Velocity
diff --git a/Data/Metrology/SI/Mono.hs b/Data/Metrology/SI/Mono.hs
new file mode 100644
--- /dev/null
+++ b/Data/Metrology/SI/Mono.hs
@@ -0,0 +1,25 @@
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Data.Metrology.SI.Mono
+-- Copyright   :  (C) 2013 Richard Eisenberg
+-- License     :  BSD-style (see LICENSE)
+-- Maintainer  :  Richard Eisenberg (eir@cis.upenn.edu)
+-- Stability   :  experimental
+-- Portability :  non-portable
+--
+-- This module exports definitions for the SI system, with the intent
+-- of using these definitions in a monomorphic manner -- that is,
+-- with the DefaultLCSU.
+-----------------------------------------------------------------------------
+
+module Data.Metrology.SI.Mono (
+  module Data.Metrology.SI.MonoTypes,
+  module Data.Metrology.SI.Units,
+  module Data.Metrology.SI.Prefixes
+  ) where
+
+import Data.Metrology.SI.MonoTypes
+import Data.Metrology.SI.Units
+import Data.Metrology.SI.Prefixes
+
+
diff --git a/Data/Metrology/SI/MonoTypes.hs b/Data/Metrology/SI/MonoTypes.hs
new file mode 100644
--- /dev/null
+++ b/Data/Metrology/SI/MonoTypes.hs
@@ -0,0 +1,68 @@
+{-# LANGUAGE TypeFamilies, TypeOperators #-}
+
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Data.Metrology.SI.MonoTypes
+-- Copyright   :  (C) 2013 Richard Eisenberg
+-- License     :  BSD-style (see LICENSE)
+-- Maintainer  :  Richard Eisenberg (eir@cis.upenn.edu)
+-- Stability   :  experimental
+-- Portability :  non-portable
+--
+-- This module defines type synonyms for SI units, using a Double as the
+-- internal representation.
+-----------------------------------------------------------------------------
+
+module Data.Metrology.SI.MonoTypes where
+
+import Data.Metrology
+import Data.Metrology.SI.Units
+import Data.Metrology.SI.Prefixes ( Kilo )
+import qualified Data.Metrology.SI.Dims as D
+
+type instance DefaultUnitOfDim D.Length            = Meter
+type instance DefaultUnitOfDim D.Mass              = Kilo :@ Gram
+type instance DefaultUnitOfDim D.Time              = Second
+type instance DefaultUnitOfDim D.Current           = Ampere
+type instance DefaultUnitOfDim D.Temperature       = Kelvin
+type instance DefaultUnitOfDim D.AmountOfSubstance = Mole
+type instance DefaultUnitOfDim D.LuminousIntensity = Lumen
+
+type Length              = MkQu_D D.Length
+type Mass                = MkQu_D D.Mass
+type Time                = MkQu_D D.Time
+type Current             = MkQu_D D.Current
+type Temperature         = MkQu_D D.Temperature
+type AmountOfSubstance   = MkQu_D D.AmountOfSubstance
+type LuminousIntensity   = MkQu_D D.LuminousIntensity
+
+type Area                = MkQu_D D.Area
+type Volume              = MkQu_D D.Volume
+type Velocity            = MkQu_D D.Velocity
+type Acceleration        = MkQu_D D.Acceleration
+type Wavenumber          = MkQu_D D.Wavenumber
+type Density             = MkQu_D D.Density
+type SurfaceDensity      = MkQu_D D.SurfaceDensity
+type SpecificVolume      = MkQu_D D.SpecificVolume
+type CurrentDensity      = MkQu_D D.CurrentDensity
+type MagneticStrength    = MkQu_D D.MagneticStrength
+type Concentration       = MkQu_D D.Concentration
+type Luminance           = MkQu_D D.Luminance
+type Frequency           = MkQu_D D.Frequency
+type Force               = MkQu_D D.Force
+type Pressure            = MkQu_D D.Pressure
+type Energy              = MkQu_D D.Energy
+type Power               = MkQu_D D.Power
+type Charge              = MkQu_D D.Charge
+type ElectricPotential   = MkQu_D D.ElectricPotential
+type Capacitance         = MkQu_D D.Capacitance
+type Resistance          = MkQu_D D.Resistance
+type Conductance         = MkQu_D D.Conductance
+type MagneticFlux        = MkQu_D D.MagneticFlux
+type MagneticFluxDensity = MkQu_D D.MagneticFluxDensity
+type Inductance          = MkQu_D D.Inductance
+type LuminousFlux        = MkQu_D D.LuminousFlux
+type Illuminance         = MkQu_D D.Illuminance
+type Kerma               = MkQu_D D.Kerma
+type CatalyticActivity   = MkQu_D D.CatalyticActivity
+type Momentum            = MkQu_D D.Momentum
diff --git a/Data/Metrology/SI/Poly.hs b/Data/Metrology/SI/Poly.hs
new file mode 100644
--- /dev/null
+++ b/Data/Metrology/SI/Poly.hs
@@ -0,0 +1,37 @@
+{-# LANGUAGE TypeOperators, DataKinds #-}
+
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Data.Metrology.SI.Poly
+-- Copyright   :  (C) 2013 Richard Eisenberg
+-- License     :  BSD-style (see LICENSE)
+-- Maintainer  :  Richard Eisenberg (eir@cis.upenn.edu)
+-- Stability   :  experimental
+-- Portability :  non-portable
+--
+-- This module exports definitions for the SI system, with the intent
+-- of using these definitions in a polymorphic manner -- that is,
+-- with multiple LCSUs.
+-----------------------------------------------------------------------------
+
+module Data.Metrology.SI.Poly (
+  SI,
+  module Data.Metrology.SI.PolyTypes,
+  module Data.Metrology.SI.Prefixes,
+  module Data.Metrology.SI.Units
+  ) where
+
+import Data.Metrology.SI.PolyTypes
+import Data.Metrology.SI.Prefixes
+import Data.Metrology.SI.Units
+import qualified Data.Metrology.SI.Dims as D
+import Data.Metrology
+
+type SI = MkLCSU '[ (D.Length, Meter)
+                  , (D.Mass, Kilo :@ Gram)
+                  , (D.Time, Second)
+                  , (D.Current, Ampere)
+                  , (D.Temperature, Kelvin)
+                  , (D.AmountOfSubstance, Mole)
+                  , (D.LuminousIntensity, Lumen)
+                  ]
diff --git a/Data/Metrology/SI/PolyTypes.hs b/Data/Metrology/SI/PolyTypes.hs
new file mode 100644
--- /dev/null
+++ b/Data/Metrology/SI/PolyTypes.hs
@@ -0,0 +1,58 @@
+{-# LANGUAGE TypeOperators, DataKinds #-}
+
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Data.Metrology.SI.PolyTypes
+-- Copyright   :  (C) 2013 Richard Eisenberg
+-- License     :  BSD-style (see LICENSE)
+-- Maintainer  :  Richard Eisenberg (eir@cis.upenn.edu)
+-- Stability   :  experimental
+-- Portability :  non-portable
+--
+-- This module defines type synonyms for dimensions based on the seven
+-- SI dimensions, for arbitrary choice of system of units and numerical values.
+-----------------------------------------------------------------------------
+
+module Data.Metrology.SI.PolyTypes where
+
+import Data.Metrology
+import qualified Data.Metrology.SI.Dims as D
+
+type Length              = MkQu_DLN D.Length              
+type Mass                = MkQu_DLN D.Mass                
+type Time                = MkQu_DLN D.Time                
+type Current             = MkQu_DLN D.Current             
+type Temperature         = MkQu_DLN D.Temperature         
+type AmountOfSubstance   = MkQu_DLN D.AmountOfSubstance   
+type LuminousIntensity   = MkQu_DLN D.LuminousIntensity   
+
+type Area                = MkQu_DLN D.Area                
+type Volume              = MkQu_DLN D.Volume              
+type Velocity            = MkQu_DLN D.Velocity            
+type Acceleration        = MkQu_DLN D.Acceleration        
+type Wavenumber          = MkQu_DLN D.Wavenumber          
+type Density             = MkQu_DLN D.Density             
+type SurfaceDensity      = MkQu_DLN D.SurfaceDensity      
+type SpecificVolume      = MkQu_DLN D.SpecificVolume      
+type CurrentDensity      = MkQu_DLN D.CurrentDensity      
+type MagneticStrength    = MkQu_DLN D.MagneticStrength    
+type Concentration       = MkQu_DLN D.Concentration       
+type Luminance           = MkQu_DLN D.Luminance           
+type Frequency           = MkQu_DLN D.Frequency           
+type Force               = MkQu_DLN D.Force               
+type Pressure            = MkQu_DLN D.Pressure            
+type Energy              = MkQu_DLN D.Energy              
+type Power               = MkQu_DLN D.Power               
+type Charge              = MkQu_DLN D.Charge              
+type ElectricPotential   = MkQu_DLN D.ElectricPotential   
+type Capacitance         = MkQu_DLN D.Capacitance         
+type Resistance          = MkQu_DLN D.Resistance          
+type Conductance         = MkQu_DLN D.Conductance         
+type MagneticFlux        = MkQu_DLN D.MagneticFlux        
+type MagneticFluxDensity = MkQu_DLN D.MagneticFluxDensity 
+type Inductance          = MkQu_DLN D.Inductance          
+type LuminousFlux        = MkQu_DLN D.LuminousFlux        
+type Illuminance         = MkQu_DLN D.Illuminance         
+type Kerma               = MkQu_DLN D.Kerma               
+type CatalyticActivity   = MkQu_DLN D.CatalyticActivity   
+type Momentum            = MkQu_DLN D.Momentum            
diff --git a/Data/Metrology/SI/Prefixes.hs b/Data/Metrology/SI/Prefixes.hs
new file mode 100644
--- /dev/null
+++ b/Data/Metrology/SI/Prefixes.hs
@@ -0,0 +1,217 @@
+{-# LANGUAGE TypeOperators #-}
+
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Data.Metrology.SI.Prefixes
+-- Copyright   :  (C) 2013 Richard Eisenberg
+-- License     :  BSD-style (see LICENSE)
+-- Maintainer  :  Richard Eisenberg (eir@cis.upenn.edu)
+-- Stability   :  experimental
+-- Portability :  non-portable
+--
+-- Defines prefixes from the SI standard at <http://www.bipm.org/en/si/>
+-----------------------------------------------------------------------------
+
+module Data.Metrology.SI.Prefixes where
+
+import Data.Metrology
+
+-- | 10^1
+data Deca = Deca
+instance UnitPrefix Deca where
+  multiplier _ = 1e1
+instance Show Deca where
+  show _ = "da"
+
+deca :: unit -> Deca :@ unit
+deca = (Deca :@)
+
+-- | 10^2
+data Hecto = Hecto
+instance UnitPrefix Hecto where
+  multiplier _ = 1e2
+instance Show Hecto where
+  show _ = "h"
+
+hecto :: unit -> Hecto :@ unit
+hecto = (Hecto :@)
+
+-- | 10^3
+data Kilo = Kilo
+instance UnitPrefix Kilo where
+  multiplier _ = 1e3
+instance Show Kilo where
+  show _ = "k"
+
+kilo :: unit -> Kilo :@ unit
+kilo = (Kilo :@)
+
+-- | 10^6
+data Mega = Mega
+instance UnitPrefix Mega where
+  multiplier _ = 1e6
+instance Show Mega where
+  show _ = "M"
+
+mega :: unit -> Mega :@ unit
+mega = (Mega :@)
+
+-- | 10^9
+data Giga = Giga
+instance UnitPrefix Giga where
+  multiplier _ = 1e9
+instance Show Giga where
+  show _ = "G"
+
+giga :: unit -> Giga :@ unit
+giga = (Giga :@)
+
+-- | 10^12
+data Tera = Tera
+instance UnitPrefix Tera where
+  multiplier _ = 1e12
+instance Show Tera where
+  show _ = "T"
+
+tera :: unit -> Tera :@ unit
+tera = (Tera :@)
+
+-- | 10^15
+data Peta = Peta
+instance UnitPrefix Peta where
+  multiplier _ = 1e15
+instance Show Peta where
+  show _ = "P"
+
+peta :: unit -> Peta :@ unit
+peta = (Peta :@)
+
+-- | 10^18
+data Exa = Exa
+instance UnitPrefix Exa where
+  multiplier _ = 1e18
+instance Show Exa where
+  show _ = "E"
+
+exa :: unit -> Exa :@ unit
+exa = (Exa :@)
+
+-- | 10^21
+data Zetta = Zetta
+instance UnitPrefix Zetta where
+  multiplier _ = 1e21
+instance Show Zetta where
+  show _ = "Z"
+
+zetta :: unit -> Zetta :@ unit
+zetta = (Zetta :@)
+
+-- | 10^24
+data Yotta = Yotta
+instance UnitPrefix Yotta where
+  multiplier _ = 1e24
+instance Show Yotta where
+  show _ = "Y"
+
+yotta :: unit -> Yotta :@ unit
+yotta = (Yotta :@)
+
+-- | 10^-1
+data Deci = Deci
+instance UnitPrefix Deci where
+  multiplier _ = 1e-1
+instance Show Deci where
+  show _ = "d"
+
+deci :: unit -> Deci :@ unit
+deci = (Deci :@)
+
+-- | 10^-2
+data Centi = Centi
+instance UnitPrefix Centi where
+  multiplier _ = 1e-2
+instance Show Centi where
+  show _ = "c"
+
+centi :: unit -> Centi :@ unit
+centi = (Centi :@)
+
+-- | 10^-3
+data Milli = Milli
+instance UnitPrefix Milli where
+  multiplier _ = 1e-3
+instance Show Milli where
+  show _ = "m"
+
+milli :: unit -> Milli :@ unit
+milli = (Milli :@)
+
+-- | 10^-6
+data Micro = Micro
+instance UnitPrefix Micro where
+  multiplier _ = 1e-6
+instance Show Micro where
+  show _ = "μ"
+
+micro :: unit -> Micro :@ unit
+micro = (Micro :@)
+
+-- | 10^-9
+data Nano = Nano
+instance UnitPrefix Nano where
+  multiplier _ = 1e-9
+instance Show Nano where
+  show _ = "n"
+
+nano :: unit -> Nano :@ unit
+nano = (Nano :@)
+
+-- | 10^-12
+data Pico = Pico
+instance UnitPrefix Pico where
+  multiplier _ = 1e-12
+instance Show Pico where
+  show _ = "p"
+
+pico :: unit -> Pico :@ unit
+pico = (Pico :@)
+
+-- | 10^-15
+data Femto = Femto
+instance UnitPrefix Femto where
+  multiplier _ = 1e-15
+instance Show Femto where
+  show _ = "f"
+
+femto :: unit -> Femto :@ unit
+femto = (Femto :@)
+
+-- | 10^-18
+data Atto = Atto
+instance UnitPrefix Atto where
+  multiplier _ = 1e-18
+instance Show Atto where
+  show _ = "a"
+
+atto :: unit -> Atto :@ unit
+atto = (Atto :@)
+
+-- | 10^-21
+data Zepto = Zepto
+instance UnitPrefix Zepto where
+  multiplier _ = 1e-21
+instance Show Zepto where
+  show _ = "z"
+
+zepto :: unit -> Zepto :@ unit
+zepto = (Zepto :@)
+
+-- | 10^-24
+data Yocto = Yocto
+instance UnitPrefix Yocto where
+  multiplier _ = 1e-24
+instance Show Yocto where
+  show _ = "y"
+
+yocto :: unit -> Yocto :@ unit
+yocto = (Yocto :@)
diff --git a/Data/Metrology/SI/Units.hs b/Data/Metrology/SI/Units.hs
new file mode 100644
--- /dev/null
+++ b/Data/Metrology/SI/Units.hs
@@ -0,0 +1,196 @@
+{-# LANGUAGE TypeFamilies, TypeOperators #-}
+
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Data.Metrology.SI.Units
+-- Copyright   :  (C) 2013 Richard Eisenberg
+-- License     :  BSD-style (see LICENSE)
+-- Maintainer  :  Richard Eisenberg (eir@cis.upenn.edu)
+-- Stability   :  experimental
+-- Portability :  non-portable
+--
+-- This module exports unit definitions according to the SI system of units.
+-- The definitions were taken from here: <http://www.bipm.org/en/si/>.
+--
+-- There is one deviation from the definition at that site: To work better
+-- with prefixes, the unit of mass is 'Gram'.
+-----------------------------------------------------------------------------
+
+module Data.Metrology.SI.Units where
+
+import Data.Metrology
+import Data.Metrology.SI.Dims
+import Data.Metrology.SI.Prefixes ( Centi )
+
+data Meter = Meter
+instance Unit Meter where
+  type BaseUnit Meter = Canonical
+  type DimOfUnit Meter = Length
+instance Show Meter where
+  show _ = "m"
+
+data Gram = Gram
+instance Unit Gram where
+  type BaseUnit Gram = Canonical
+  type DimOfUnit Gram = Mass
+instance Show Gram where
+  show _ = "g"
+
+data Second = Second
+instance Unit Second where
+  type BaseUnit Second = Canonical
+  type DimOfUnit Second = Time
+instance Show Second where
+  show _ = "s"
+
+data Ampere = Ampere
+instance Unit Ampere where
+  type BaseUnit Ampere = Canonical
+  type DimOfUnit Ampere = Current
+instance Show Ampere where
+  show _ = "A"
+
+data Kelvin = Kelvin
+instance Unit Kelvin where
+  type BaseUnit Kelvin = Canonical
+  type DimOfUnit Kelvin = Temperature
+instance Show Kelvin where
+  show _ = "K"
+
+data Mole = Mole
+instance Unit Mole where
+  type BaseUnit Mole = Canonical
+  type DimOfUnit Mole = AmountOfSubstance
+instance Show Mole where
+  show _ = "mol"
+
+data Candela = Candela
+instance Unit Candela where
+  type BaseUnit Candela = Canonical
+  type DimOfUnit Candela = LuminousIntensity
+instance Show Candela where
+  show _ = "cd"
+
+data Hertz = Hertz
+instance Unit Hertz where
+  type BaseUnit Hertz = Number :/ Second
+instance Show Hertz where
+  show _ = "Hz"
+
+-- | This is not in the SI standard, but is used widely.
+data Liter = Liter
+instance Unit Liter where
+  type BaseUnit Liter = (Centi :@ Meter) :^ Three
+  conversionRatio _ = 1000
+instance Show Liter where
+  show _ = "l"
+
+data Newton = Newton
+instance Unit Newton where
+  type BaseUnit Newton = Gram :* Meter :/ (Second :^ Two)
+  conversionRatio _ = 1000
+instance Show Newton where
+  show _ = "N"
+
+data Pascal = Pascal
+instance Unit Pascal where
+  type BaseUnit Pascal = Newton :/ (Meter :^ Two)
+instance Show Pascal where
+  show _ = "Pa"
+
+data Joule = Joule
+instance Unit Joule where
+  type BaseUnit Joule = Newton :* Meter
+instance Show Joule where
+  show _ = "J"
+
+data Watt = Watt
+instance Unit Watt where
+  type BaseUnit Watt = Joule :/ Second
+instance Show Watt where
+  show _ = "W"
+
+data Coulomb = Coulomb
+instance Unit Coulomb where
+  type BaseUnit Coulomb = Ampere :* Second
+instance Show Coulomb where
+  show _ = "C"
+
+data Volt = Volt
+instance Unit Volt where
+  type BaseUnit Volt = Watt :/ Ampere
+instance Show Volt where
+  show _ = "V"
+
+data Farad = Farad
+instance Unit Farad where
+  type BaseUnit Farad = Coulomb :/ Volt
+instance Show Farad where
+  show _ = "F"
+
+data Ohm = Ohm
+instance Unit Ohm where
+  type BaseUnit Ohm = Volt :/ Ampere
+instance Show Ohm where
+  show _ = "Ω"
+
+data Siemens = Siemens
+instance Unit Siemens where
+  type BaseUnit Siemens = Ampere :/ Volt
+instance Show Siemens where
+  show _ = "S"
+
+data Weber = Weber
+instance Unit Weber where
+  type BaseUnit Weber = Volt :* Second
+instance Show Weber where
+  show _ = "Wb"
+
+data Tesla = Tesla
+instance Unit Tesla where
+  type BaseUnit Tesla = Weber :/ (Meter :^ Two)
+instance Show Tesla where
+  show _ = "T"
+
+data Henry = Henry
+instance Unit Henry where
+  type BaseUnit Henry = Weber :/ Ampere
+instance Show Henry where
+  show _ = "H"
+
+data Lumen = Lumen
+instance Unit Lumen where
+  type BaseUnit Lumen = Candela
+instance Show Lumen where
+  show _ = "lm"
+
+data Lux = Lux
+instance Unit Lux where
+  type BaseUnit Lux = Lumen :/ (Meter :^ Two)
+instance Show Lux where
+  show _ = "lx"
+
+data Becquerel = Becquerel
+instance Unit Becquerel where
+  type BaseUnit Becquerel = Number :/ Second
+instance Show Becquerel where
+  show _ = "Bq"
+
+data Gray = Gray
+instance Unit Gray where
+  type BaseUnit Gray = (Meter :^ Two) :/ (Second :^ Two)
+instance Show Gray where
+  show _ = "Gy"
+
+data Sievert = Sievert
+instance Unit Sievert where
+  type BaseUnit Sievert = (Meter :^ Two) :/ (Second :^ Two)
+instance Show Sievert where
+  show _ = "Sv"
+
+data Katal = Katal
+instance Unit Katal where
+  type BaseUnit Katal = Mole :/ Second
+instance Show Katal where
+  show _ = "kat"
+
diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,27 @@
+Copyright (c) 2013, Richard Eisenberg
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation
+and/or other materials provided with the distribution.
+
+3. Neither the name of the author nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,8 @@
+`units-defs`
+============
+
+This package provides system definitions for use with the separate
+`units` package. See the individual modules for details.
+
+User contributions to this package are strongly encouraged. Please
+submit pull requests!
diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,2 @@
+import Distribution.Simple
+main = defaultMain
diff --git a/units-defs.cabal b/units-defs.cabal
new file mode 100644
--- /dev/null
+++ b/units-defs.cabal
@@ -0,0 +1,45 @@
+name:           units-defs
+version:        1.0
+cabal-version:  >= 1.10
+synopsis:       Definitions for use with the units package
+homepage:       http://github.com/goldfirere/units-defs
+category:       Physics
+author:         Richard Eisenberg <eir@cis.upenn.edu>, Takayuki Muranushi <muranushi@gmail.com>
+maintainer:     Richard Eisenberg <eir@cis.upenn.edu>, Takayuki Muranushi <muranushi@gmail.com>
+bug-reports:    https://github.com/goldfirere/units-defs/issues
+stability:      experimental
+extra-source-files: README.md, CHANGES.md
+license:        BSD3
+license-file:   LICENSE
+build-type:     Simple
+description:
+
+    This package provides system definitions for use with the separate
+    @units@ package. See the individual modules for details.
+
+    User contributions to this package are strongly encouraged. Please
+    submit pull requests!
+
+source-repository this
+  type:     git
+  location: https://github.com/goldfirere/units-defs.git
+  tag:      v1.0
+
+library
+  build-depends:      
+      base >= 4.7 && < 5,
+      units >= 2.0 && < 3
+  exposed-modules:
+    Data.Metrology.SI,
+    Data.Metrology.SI.Mono,
+    Data.Metrology.SI.Poly,
+    Data.Metrology.SI.Prefixes,
+    Data.Metrology.SI.MonoTypes, 
+    Data.Metrology.SI.Units,
+    Data.Metrology.SI.Dims,
+    Data.Metrology.SI.PolyTypes
+--    Data.Metrology.Imperial.Types
+--    Data.Metrology.Imperial.Units
+
+  default-language:   Haskell2010
+
