diff --git a/simple-units.cabal b/simple-units.cabal
--- a/simple-units.cabal
+++ b/simple-units.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 1bf2ea2a4041479d0c14336601f236f12e4c746191ab5dff6a13b335a3e29fef
+-- hash: d6f127891744fc332ebbf4a673910fb2099711e9821adfba9c313c6b961cb175
 
 name:           simple-units
-version:        1.0.0.0
+version:        1.0.1.0
 synopsis:       Simple arithmetic with SI units using type-checked dimensional analysis.
 description:    Please see the README on GitHub at <https://github.com/groscoe/simple-units#readme>
 category:       Numeric, Numerical
diff --git a/src/Units/Simple.hs b/src/Units/Simple.hs
--- a/src/Units/Simple.hs
+++ b/src/Units/Simple.hs
@@ -18,9 +18,9 @@
   , (./)
 
   -- *Base SI Units
-  -- |Smart constructors for quantities in all the base SI Units.
-  -- The constructors are provided in both unitary (non-ticked) and
-  -- function (ticked) forms.
+  -- |Smart constructors for quantities in all the base SI Units, plus grams
+  -- (see "SI Prefixes"). The constructors are provided in both unitary
+  -- (non-ticked) and function (ticked) forms.
   --
   -- Examples:
   --
@@ -34,6 +34,8 @@
   , meter'
   , kilogram
   , kilogram'
+  , gram
+  , gram'
   , second
   , second'
   , ampere
@@ -44,6 +46,53 @@
   , mole'
   , candela
   , candela'
+
+  -- *SI Prefixes
+  -- |The 20 base SI prefixes representing powers of 10.
+  -- Reference: <https://physics.nist.gov/cuu/Units/prefixes.html>
+  --
+  -- __Note:__ Though smart constructors for kilograms are provided, it is
+  -- recommended to use the prefixes with the 'gram' and 'gram'' constructors.
+  , yocto
+  , yocto'
+  , zepto
+  , zepto'
+  , atto
+  , atto'
+  , femto
+  , femto'
+  , pico
+  , pico'
+  , nano
+  , nano'
+  , micro
+  , micro'
+  , milli
+  , milli'
+  , centi
+  , centi'
+  , deci
+  , deci'
+  , deka
+  , deka'
+  , hecto
+  , hecto'
+  , kilo
+  , kilo'
+  , mega
+  , mega'
+  , giga
+  , giga'
+  , tera
+  , tera'
+  , peta
+  , peta'
+  , exa
+  , exa'
+  , zetta
+  , zetta'
+  , yotta
+  , yotta'
   ) where
 
 
@@ -54,9 +103,9 @@
 type SingleUnit (u :: Unit) = '( '[ '(u, 1)], '[])
 type Adimensional = '( '[], '[])
 
--- | A quantity with no associated dimension. Can be multiplied or divided
--- by any other quantity, but can only be added to or subtracted from
--- other adimensional quantities.
+-- | A 'Quantity' with no associated dimension. Can be multiplied or divided
+-- by any other 'Quantity', but can only be added to or subtracted from
+-- another adimensional 'Quantity'.
 --
 -- >>> 2*adim + 4*adim
 -- 6 <adimensional>
@@ -69,12 +118,17 @@
 adim :: Num a => Quantity Adimensional a
 adim = Quantity 1
 
+-- SI units
 meter :: Num a => Quantity (SingleUnit 'Meter) a
 meter = Quantity 1
 
 kilogram :: Num a => Quantity (SingleUnit 'Kilogram) a
 kilogram = Quantity 1
 
+-- |A constructor for 1/1000th of a kilogram, to use with SI prefixes.
+gram :: Fractional a => Quantity (SingleUnit 'Kilogram) a
+gram = Quantity 1e-3
+
 second :: Num a => Quantity (SingleUnit 'Second) a
 second = Quantity 1
 
@@ -99,6 +153,10 @@
 kilogram' :: Num a => a -> Quantity (SingleUnit 'Kilogram) a
 kilogram' = Quantity
 
+-- |A constructor for 1/1000th of a kilogram, to use with SI prefixes.
+gram' :: Fractional a => a -> Quantity (SingleUnit 'Kilogram) a
+gram' = (*1e-3) . Quantity
+
 second' :: Num a => a -> Quantity (SingleUnit 'Second) a
 second' = Quantity
 
@@ -113,3 +171,124 @@
 
 candela' :: Num a => a -> Quantity (SingleUnit 'Candela) a
 candela' = Quantity
+
+-- SI prefixes
+yocto :: Fractional a => Quantity us a -> Quantity us a
+yocto = (* 1e-24)
+
+yocto' :: Fractional a => (a -> Quantity us a) -> a -> Quantity us a
+yocto' constructor = yocto . constructor
+
+zepto :: Fractional a => Quantity us a -> Quantity us a
+zepto = (* 1e-21)
+
+zepto' :: Fractional a => (a -> Quantity us a) -> a -> Quantity us a
+zepto' constructor = zepto . constructor
+
+atto :: Fractional a => Quantity us a -> Quantity us a
+atto = (* 1e-18)
+
+atto' :: Fractional a => (a -> Quantity us a) -> a -> Quantity us a
+atto' constructor = atto . constructor
+
+femto :: Fractional a => Quantity us a -> Quantity us a
+femto = (* 1e-15)
+
+femto' :: Fractional a => (a -> Quantity us a) -> a -> Quantity us a
+femto' constructor = femto . constructor
+
+pico :: Fractional a => Quantity us a -> Quantity us a
+pico = (* 1e-12)
+
+pico' :: Fractional a => (a -> Quantity us a) -> a -> Quantity us a
+pico' constructor = pico . constructor
+
+nano :: Fractional a => Quantity us a -> Quantity us a
+nano = (* 1e-9)
+
+nano' :: Fractional a => (a -> Quantity us a) -> a -> Quantity us a
+nano' constructor = nano . constructor
+
+micro :: Fractional a => Quantity us a -> Quantity us a
+micro = (* 1e-6)
+
+micro' :: Fractional a => (a -> Quantity us a) -> a -> Quantity us a
+micro' constructor = micro . constructor
+
+milli :: Fractional a => Quantity us a -> Quantity us a
+milli = (* 1e-3)
+
+milli' :: Fractional a => (a -> Quantity us a) -> a -> Quantity us a
+milli' constructor = milli . constructor
+
+centi :: Fractional a => Quantity us a -> Quantity us a
+centi = (* 1e-2)
+
+centi' :: Fractional a => (a -> Quantity us a) -> a -> Quantity us a
+centi' constructor = centi . constructor
+
+deci :: Fractional a => Quantity us a -> Quantity us a
+deci = (* 1e-1)
+
+deci' :: Fractional a => (a -> Quantity us a) -> a -> Quantity us a
+deci' constructor = deci . constructor
+
+deka :: Num a => Quantity us a -> Quantity us a
+deka = (* 10)
+
+deka' :: Num a => (a -> Quantity us a) -> a -> Quantity us a
+deka' constructor = deka . constructor
+
+hecto :: Num a => Quantity us a -> Quantity us a
+hecto = (* 100)
+
+hecto' :: Num a => (a -> Quantity us a) -> a -> Quantity us a
+hecto' constructor = hecto . constructor
+
+kilo :: Num a => Quantity us a -> Quantity us a
+kilo = (* 1000)
+
+kilo' :: Num a => (a -> Quantity us a) -> a -> Quantity us a
+kilo' constructor = kilo . constructor
+
+mega :: Num a => Quantity us a -> Quantity us a
+mega = (* 1000000)
+
+mega' :: Num a => (a -> Quantity us a) -> a -> Quantity us a
+mega' constructor = mega . constructor
+
+giga :: Num a => Quantity us a -> Quantity us a
+giga = (* 1000000000)
+
+giga' :: Num a => (a -> Quantity us a) -> a -> Quantity us a
+giga' constructor = giga . constructor
+
+tera :: Num a => Quantity us a -> Quantity us a
+tera = (* 1000000000000)
+
+tera' :: Num a => (a -> Quantity us a) -> a -> Quantity us a
+tera' constructor = tera . constructor
+
+peta :: Num a => Quantity us a -> Quantity us a
+peta = (* 1000000000000000)
+
+peta' :: Num a => (a -> Quantity us a) -> a -> Quantity us a
+peta' constructor = peta . constructor
+
+exa :: Num a => Quantity us a -> Quantity us a
+exa = (* 1000000000000000000)
+
+exa' :: Num a => (a -> Quantity us a) -> a -> Quantity us a
+exa' constructor = exa . constructor
+
+zetta :: Num a => Quantity us a -> Quantity us a
+zetta = (* 1000000000000000000000)
+
+zetta' :: Num a => (a -> Quantity us a) -> a -> Quantity us a
+zetta' constructor = zetta . constructor
+
+yotta :: Num a => Quantity us a -> Quantity us a
+yotta = (* 1000000000000000000000000)
+
+yotta' :: Num a => (a -> Quantity us a) -> a -> Quantity us a
+yotta' constructor = yotta . constructor
diff --git a/src/Units/Simple/Arithmetic.hs b/src/Units/Simple/Arithmetic.hs
--- a/src/Units/Simple/Arithmetic.hs
+++ b/src/Units/Simple/Arithmetic.hs
@@ -96,8 +96,8 @@
 --
 -- Examples:
 --
--- >>> 2*meter .+ 3*meter
--- 5 m
+-- >>> 2 * kilo meter .+ 3 * kilo meter
+-- 5000 m
 -- >>> 2*meter .+ 1*second
 -- <BLANKLINE>
 -- <interactive>:16:1-19: error:
diff --git a/src/Units/Simple/Quantity.hs b/src/Units/Simple/Quantity.hs
--- a/src/Units/Simple/Quantity.hs
+++ b/src/Units/Simple/Quantity.hs
@@ -31,9 +31,9 @@
 -- >>> 2 :: Quantity (SingleUnit 'Second) Rational
 -- 2 % 1 s
 --
--- Associated units are represented through a phantom parameter of the @Units@ kind synonym.
+-- Associated units are represented through a phantom parameter of the 'Units' kind synonym.
 -- These are currently implemented as a type-level pair of lists representing the power
--- to which each unit is raised. Units can be inspected through @showUnits@.
+-- to which each unit is raised. Units can be inspected through 'showUnits'.
 --
 -- New constructors may be written by combining the provided ones, such as
 --
@@ -45,21 +45,21 @@
 -- >>> g -- gravitational constant
 -- 6.67408e-11 m^3/kg*s^2
 -- >>> let gravity m1 m2 r = g .* (m1 * kilogram) .* (m2 * kilogram) ./ (r*meter .* r*meter)
--- >>> let earth_mass = 5.972e24 * kilogram
--- >>> let mars_mass = 6.417e23 * kilogram
--- >>> let earth_radius = 6371e3 * meter
--- >>> let mars_radius = 3389.5e3 * meter
+-- >>> let earth_mass = 5.972e24 * kilo gram
+-- >>> let mars_mass = 6.417e23 * kilo gram
+-- >>> let earth_radius = 6371 * kilo meter
+-- >>> let mars_radius = 3389.5 * kilo meter
 -- >>> let weight_on_earth mass = gravity mass earth_mass earth_radius
 -- >>> let weight_on_mars mass = gravity mass mars_mass mars_radius
--- >>> weight_on_earth (80 * kilogram)
+-- >>> weight_on_earth (80 * kilo gram)
 -- 785.5719790179963 kg*m/s^2
--- >>> weight_on_mars (80 * kilogram)
+-- >>> weight_on_mars (80 * kilo gram)
 -- 298.22370259533704 kg*m/s^2
--- >>> fromQuantity $ weight_on_mars 1 / (fromQuantity $ weight_on_earth 1)
+-- >>> weight_on_mars 1 / weight_on_earth 1
 -- 0.3796261966575378
 newtype Quantity (us :: Units) a =
   Quantity {
-    fromQuantity :: a -- ^Unwraps a @Quantity@, losing all unit information
+    fromQuantity :: a -- ^Unwraps a 'Quantity', losing all unit information
   }
   deriving ( Eq
            , Ord
diff --git a/src/Units/Simple/Unit.hs b/src/Units/Simple/Unit.hs
--- a/src/Units/Simple/Unit.hs
+++ b/src/Units/Simple/Unit.hs
@@ -56,7 +56,7 @@
 
 type UnitRepr (us :: Units) = UnitRepr' (Eval (Fst us)) (Eval (Snd us))
 
--- | A string representation of "Units". Useful for debugging.
+-- | A string representation of 'Units'. Useful for debugging.
 showUnits :: forall us. KnownSymbol (UnitRepr us) => String
 showUnits = symbolVal (Proxy @(UnitRepr us))
 
