diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,10 @@
+2.1.6
+-----
+
+* Add `ToParamSchema` and `ToSchema` instances for `Fixed` (see [#121](https://github.com/GetShopTV/swagger2/pull/121)) and `Natural` (see [#123](https://github.com/GetShopTV/swagger2/pull/123));
+* Fix instance for `NominalDiffTime` (see [#121](https://github.com/GetShopTV/swagger2/pull/121));
+* Fix build for `aeson-1.2.2.0` (see [#125](https://github.com/GetShopTV/swagger2/pull/125)).
+
 2.1.5
 -----
 
diff --git a/src/Data/Swagger/Internal/ParamSchema.hs b/src/Data/Swagger/Internal/ParamSchema.hs
--- a/src/Data/Swagger/Internal/ParamSchema.hs
+++ b/src/Data/Swagger/Internal/ParamSchema.hs
@@ -22,7 +22,7 @@
 module Data.Swagger.Internal.ParamSchema where
 
 import Control.Lens
-import Data.Aeson
+import Data.Aeson (ToJSON (..))
 import Data.Proxy
 import GHC.Generics
 
@@ -31,6 +31,7 @@
 import Data.Monoid
 import Data.Set (Set)
 import Data.Scientific
+import Data.Fixed (HasResolution(..), Fixed, Pico)
 import qualified Data.Text as T
 import qualified Data.Text.Lazy as TL
 import Data.Time
@@ -38,6 +39,7 @@
 import qualified Data.Vector.Primitive as VP
 import qualified Data.Vector.Storable as VS
 import qualified Data.Vector.Unboxed as VU
+import Numeric.Natural
 import Data.Word
 import Data.UUID.Types (UUID)
 
@@ -124,6 +126,12 @@
 instance ToParamSchema Integer where
   toParamSchema _ = mempty & type_ .~ SwaggerInteger
 
+instance ToParamSchema Natural where
+  toParamSchema _ = mempty
+    & type_            .~ SwaggerInteger
+    & minimum_         ?~ 0
+    & exclusiveMinimum ?~ False
+
 instance ToParamSchema Int    where toParamSchema = toParamSchemaBoundedIntegral
 instance ToParamSchema Int8   where toParamSchema = toParamSchemaBoundedIntegral
 instance ToParamSchema Int16  where toParamSchema = toParamSchemaBoundedIntegral
@@ -159,6 +167,11 @@
 instance ToParamSchema Scientific where
   toParamSchema _ = mempty & type_ .~ SwaggerNumber
 
+instance HasResolution a => ToParamSchema (Fixed a) where
+  toParamSchema _ = mempty
+    & type_      .~ SwaggerNumber
+    & multipleOf ?~ (recip . fromInteger $ resolution (Proxy :: Proxy a))
+
 instance ToParamSchema Double where
   toParamSchema _ = mempty
     & type_  .~ SwaggerNumber
@@ -197,7 +210,7 @@
   toParamSchema _ = timeParamSchema "yyyy-mm-ddThh:MM:ssZ"
 
 instance ToParamSchema NominalDiffTime where
-  toParamSchema _ = toParamSchema (Proxy :: Proxy Integer)
+  toParamSchema _ = toParamSchema (Proxy :: Proxy Pico)
 
 instance ToParamSchema T.Text where
   toParamSchema _ = toParamSchema (Proxy :: Proxy String)
@@ -302,3 +315,5 @@
 
 data Proxy3 a b c = Proxy3
 
+-- $setup
+-- >>> import Data.Aeson (encode)
diff --git a/src/Data/Swagger/Internal/Schema.hs b/src/Data/Swagger/Internal/Schema.hs
--- a/src/Data/Swagger/Internal/Schema.hs
+++ b/src/Data/Swagger/Internal/Schema.hs
@@ -32,7 +32,7 @@
 
 import Control.Monad
 import Control.Monad.Writer
-import Data.Aeson
+import Data.Aeson (ToJSON (..), ToJSONKey (..), ToJSONKeyFunction (..), Value (..))
 import Data.Char
 import Data.Data (Data)
 import Data.Foldable (traverse_)
@@ -47,6 +47,7 @@
 import Data.Map (Map)
 import Data.Proxy
 import Data.Scientific (Scientific)
+import Data.Fixed (Fixed, HasResolution, Pico)
 import Data.Set (Set)
 import qualified Data.Text as T
 import qualified Data.Text.Lazy as TL
@@ -55,6 +56,7 @@
 import qualified Data.Vector.Primitive as VP
 import qualified Data.Vector.Storable as VS
 import qualified Data.Vector.Unboxed as VU
+import Numeric.Natural
 import Data.Word
 import GHC.Generics
 import qualified Data.UUID.Types as UUID
@@ -418,6 +420,7 @@
 instance OVERLAPPING_ ToSchema String where declareNamedSchema = plain . paramSchemaToSchema
 instance ToSchema Bool    where declareNamedSchema = plain . paramSchemaToSchema
 instance ToSchema Integer where declareNamedSchema = plain . paramSchemaToSchema
+instance ToSchema Natural where declareNamedSchema = plain . paramSchemaToSchema
 instance ToSchema Int     where declareNamedSchema = plain . paramSchemaToSchema
 instance ToSchema Int8    where declareNamedSchema = plain . paramSchemaToSchema
 instance ToSchema Int16   where declareNamedSchema = plain . paramSchemaToSchema
@@ -437,6 +440,8 @@
 instance ToSchema Double      where declareNamedSchema = plain . paramSchemaToSchema
 instance ToSchema Float       where declareNamedSchema = plain . paramSchemaToSchema
 
+instance HasResolution a => ToSchema (Fixed a) where declareNamedSchema = plain . paramSchemaToSchema
+
 instance ToSchema a => ToSchema (Maybe a) where
   declareNamedSchema _ = declareNamedSchema (Proxy :: Proxy a)
 
@@ -480,7 +485,7 @@
     & example ?~ toJSON (ZonedTime (LocalTime (fromGregorian 2016 7 22) (TimeOfDay 7 40 0)) (hoursToTimeZone 3))
 
 instance ToSchema NominalDiffTime where
-  declareNamedSchema _ = declareNamedSchema (Proxy :: Proxy Integer)
+  declareNamedSchema _ = declareNamedSchema (Proxy :: Proxy Pico)
 
 -- |
 -- >>> toSchema (Proxy :: Proxy UTCTime) ^. format
@@ -791,3 +796,4 @@
 
 -- $setup
 -- >>> import Data.Swagger
+-- >>> import Data.Aeson (encode)
diff --git a/swagger2.cabal b/swagger2.cabal
--- a/swagger2.cabal
+++ b/swagger2.cabal
@@ -1,5 +1,5 @@
 name:                swagger2
-version:             2.1.5
+version:             2.1.6
 synopsis:            Swagger 2.0 data model
 description:
   This library is inteded to be used for decoding and encoding Swagger 2.0 API
@@ -69,6 +69,8 @@
                      , unordered-containers
                      , vector
                      , uuid-types >=1.0.2 && <1.1
+  if !impl(ghc >= 7.10)
+     build-depends:    nats >=1.1.1 && <1.2
   default-language:    Haskell2010
 
 test-suite spec
diff --git a/test/Data/Swagger/ParamSchemaSpec.hs b/test/Data/Swagger/ParamSchemaSpec.hs
--- a/test/Data/Swagger/ParamSchemaSpec.hs
+++ b/test/Data/Swagger/ParamSchemaSpec.hs
@@ -5,7 +5,7 @@
 {-# LANGUAGE QuasiQuotes #-}
 module Data.Swagger.ParamSchemaSpec where
 
-import Data.Aeson
+import Data.Aeson (Value)
 import Data.Aeson.QQ
 import Data.Char
 import Data.Proxy
diff --git a/test/Data/Swagger/SchemaSpec.hs b/test/Data/Swagger/SchemaSpec.hs
--- a/test/Data/Swagger/SchemaSpec.hs
+++ b/test/Data/Swagger/SchemaSpec.hs
@@ -8,7 +8,7 @@
 import Prelude.Compat
 
 import Control.Lens ((^.))
-import Data.Aeson
+import Data.Aeson (Value)
 import Data.Aeson.QQ
 import Data.Char
 import qualified Data.HashMap.Strict.InsOrd as InsOrdHashMap
