diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,12 @@
 
 ## Unreleased changes
 
+## 0.3.2.0
+
+- Fix support for the Aeson option `omitNothingFields`
+- Add instances for some more numeric Haskell types: `Float`, `Int8`, `Int16`, `Int32`, `Word8`, `Word16`, and `Word32`
+- Add instances for Elm `Array`s, which correspond to Haskell `Vector`s
+
 ## 0.3.1.0
 
 - Generate correct JSON coders for record constructors for types with multiple constructors (https://github.com/folq/haskell-to-elm/issues/7)
diff --git a/haskell-to-elm.cabal b/haskell-to-elm.cabal
--- a/haskell-to-elm.cabal
+++ b/haskell-to-elm.cabal
@@ -1,13 +1,13 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.34.1.
+-- This file has been generated from package.yaml by hpack version 0.34.3.
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: fe23343d3ed509c0df894e027c919960fc7a515239ad623bba6e7e3cfbb9cd6e
+-- hash: 6d0cc0620261f326ace9a05c03ea9574c7c4d9e535af48fa989eb0bf9411719e
 
 name:           haskell-to-elm
-version:        0.3.1.0
+version:        0.3.2.0
 synopsis:       Generate Elm types and JSON encoders and decoders from Haskell types
 description:    Please see the README on GitHub at <https://github.com/folq/haskell-to-elm#readme>
 category:       Elm, Compiler, Language
@@ -18,7 +18,8 @@
 copyright:      2019 Olle Fredriksson
 license:        BSD3
 license-file:   LICENSE
-tested-with:    GHC == 8.4.3, GHC == 8.6.5, GHC == 8.8.3
+tested-with:
+    GHC == 8.4.3, GHC == 8.6.5, GHC == 8.8.3
 build-type:     Simple
 extra-source-files:
     README.md
@@ -50,6 +51,7 @@
     , text >=1.2.0
     , time >=1.8.0
     , unordered-containers >=0.2.8
+    , vector >=0.12
   default-language: Haskell2010
 
 executable deriving-via-example
@@ -71,6 +73,7 @@
     , text >=1.2.0
     , time >=1.8.0
     , unordered-containers >=0.2.8
+    , vector >=0.12
   if !flag(examples)
     buildable: False
   default-language: Haskell2010
@@ -94,6 +97,7 @@
     , text >=1.2.0
     , time >=1.8.0
     , unordered-containers >=0.2.8
+    , vector >=0.12
   if !flag(examples)
     buildable: False
   default-language: Haskell2010
@@ -117,6 +121,7 @@
     , text >=1.2.0
     , time >=1.8.0
     , unordered-containers >=0.2.8
+    , vector >=0.12
   if !flag(examples)
     buildable: False
   default-language: Haskell2010
@@ -139,4 +144,5 @@
     , text >=1.2.0
     , time >=1.8.0
     , unordered-containers >=0.2.8
+    , vector >=0.12
   default-language: Haskell2010
diff --git a/src/Language/Haskell/To/Elm.hs b/src/Language/Haskell/To/Elm.hs
--- a/src/Language/Haskell/To/Elm.hs
+++ b/src/Language/Haskell/To/Elm.hs
@@ -5,7 +5,6 @@
 {-# language FlexibleContexts #-}
 {-# language FlexibleInstances #-}
 {-# language GADTs #-}
-{-# language KindSignatures #-}
 {-# language MultiParamTypeClasses #-}
 {-# language OverloadedStrings #-}
 {-# language PartialTypeSignatures #-}
@@ -22,13 +21,16 @@
 import Data.Foldable
 import Data.HashMap.Lazy (HashMap)
 import qualified Data.HashMap.Lazy as HashMap
+import qualified Data.Int as Int
 import qualified Data.Kind
 import Data.Maybe (catMaybes)
 import Data.Proxy
 import Data.String
 import Data.Text (Text)
 import Data.Time
+import Data.Vector (Vector)
 import Data.Void
+import qualified Data.Word as Word
 import qualified Generics.SOP as SOP
 import GHC.TypeLits
 
@@ -605,10 +607,12 @@
                 )
               , ( Pattern.Con "Maybe.Just" [Pattern.Var 0]
                 , Bound.toScope $
-                  fmap Bound.F $
-                  Expression.tuple
-                    (jsonFieldName fname)
-                    (Expression.App encoder (Expression.App (Expression.Proj $ elmField fname) e))
+                  Expression.List
+                  [ Bound.F <$>
+                    Expression.tuple
+                      (jsonFieldName fname)
+                      (Expression.App encoder (Expression.App (Expression.Proj $ elmField fname) e))
+                  ]
                 )
               ]
             ]
@@ -712,6 +716,8 @@
 
 -------------
 
+-- Int
+
 instance HasElmType Int where
   elmType =
     "Basics.Int"
@@ -724,6 +730,92 @@
   elmDecoder =
     "Json.Decode.int"
 
+-- Int8
+
+instance HasElmType Int.Int8 where
+  elmType =
+    "Basics.Int"
+
+instance HasElmEncoder Aeson.Value Int.Int8 where
+  elmEncoder =
+    "Json.Encode.int"
+
+instance HasElmDecoder Aeson.Value Int.Int8 where
+  elmDecoder =
+    "Json.Decode.int"
+
+-- Int16
+
+instance HasElmType Int.Int16 where
+  elmType =
+    "Basics.Int"
+
+instance HasElmEncoder Aeson.Value Int.Int16 where
+  elmEncoder =
+    "Json.Encode.int"
+
+instance HasElmDecoder Aeson.Value Int.Int16 where
+  elmDecoder =
+    "Json.Decode.int"
+
+-- Int32
+
+instance HasElmType Int.Int32 where
+  elmType =
+    "Basics.Int"
+
+instance HasElmEncoder Aeson.Value Int.Int32 where
+  elmEncoder =
+    "Json.Encode.int"
+
+instance HasElmDecoder Aeson.Value Int.Int32 where
+  elmDecoder =
+    "Json.Decode.int"
+
+-- Word8
+
+instance HasElmType Word.Word8 where
+  elmType =
+    "Basics.Int"
+
+instance HasElmEncoder Aeson.Value Word.Word8 where
+  elmEncoder =
+    "Json.Encode.int"
+
+instance HasElmDecoder Aeson.Value Word.Word8 where
+  elmDecoder =
+    "Json.Decode.int"
+
+-- Word16
+
+instance HasElmType Word.Word16 where
+  elmType =
+    "Basics.Int"
+
+instance HasElmEncoder Aeson.Value Word.Word16 where
+  elmEncoder =
+    "Json.Encode.int"
+
+instance HasElmDecoder Aeson.Value Word.Word16 where
+  elmDecoder =
+    "Json.Decode.int"
+
+-- Word32
+
+instance HasElmType Word.Word32 where
+  elmType =
+    "Basics.Int"
+
+instance HasElmEncoder Aeson.Value Word.Word32 where
+  elmEncoder =
+    "Json.Encode.int"
+
+instance HasElmDecoder Aeson.Value Word.Word32 where
+  elmDecoder =
+    "Json.Decode.int"
+
+-- Double
+
 instance HasElmType Double where
   elmType =
     "Basics.Float"
@@ -736,6 +828,22 @@
   elmDecoder =
     "Json.Decode.float"
 
+-- Float
+
+instance HasElmType Float where
+  elmType =
+    "Basics.Float"
+
+instance HasElmEncoder Aeson.Value Float where
+  elmEncoder =
+    "Json.Encode.float"
+
+instance HasElmDecoder Aeson.Value Float where
+  elmDecoder =
+    "Json.Decode.float"
+
+-- Bool
+
 instance HasElmType Bool where
   elmType =
     "Basics.Bool"
@@ -748,6 +856,8 @@
   elmDecoder =
     "Json.Decode.bool"
 
+-- Text
+
 instance HasElmType Text where
   elmType =
     "String.String"
@@ -768,10 +878,38 @@
   elmEncoder =
     "String.fromInt"
 
+instance HasElmEncoder Text Int.Int8 where
+  elmEncoder =
+    "String.fromInt"
+
+instance HasElmEncoder Text Int.Int16 where
+  elmEncoder =
+    "String.fromInt"
+
+instance HasElmEncoder Text Int.Int32 where
+  elmEncoder =
+    "String.fromInt"
+
+instance HasElmEncoder Text Word.Word8 where
+  elmEncoder =
+    "String.fromInt"
+
+instance HasElmEncoder Text Word.Word16 where
+  elmEncoder =
+    "String.fromInt"
+
+instance HasElmEncoder Text Word.Word32 where
+  elmEncoder =
+    "String.fromInt"
+
 instance HasElmEncoder Text Double where
   elmEncoder =
     "String.fromFloat"
 
+instance HasElmEncoder Text Float where
+  elmEncoder =
+    "String.fromFloat"
+
 instance HasElmEncoder Aeson.Value Text where
   elmEncoder =
     "Json.Encode.string"
@@ -780,6 +918,8 @@
   elmDecoder =
     "Json.Decode.string"
 
+-- Char
+
 instance HasElmType Char where
   elmType =
     "Char.Char"
@@ -804,6 +944,8 @@
           ]
       )
 
+-- UTCTime
+
 instance HasElmType UTCTime where
   elmType =
     "Time.Posix"
@@ -816,6 +958,8 @@
   elmDecoder =
     "Iso8601.decoder"
 
+-- Maybe
+
 instance HasElmEncoder a b => HasElmEncoder (Maybe a) (Maybe b) where
   elmEncoder = Expression.App "Maybe.map" (elmEncoder @a @b)
 
@@ -831,6 +975,22 @@
   elmDecoder =
     Expression.App "Json.Decode.nullable" (elmDecoder @Aeson.Value @a)
 
+-- Vector
+
+instance HasElmType a => HasElmType (Vector a) where
+  elmType =
+    Type.App "Array.Array" (elmType @a)
+
+instance HasElmEncoder Aeson.Value a => HasElmEncoder Aeson.Value (Vector a) where
+  elmEncoder =
+    Expression.App "Json.Encode.array" (elmEncoder @Aeson.Value @a)
+
+instance HasElmDecoder Aeson.Value a => HasElmDecoder Aeson.Value (Vector a) where
+  elmDecoder =
+    Expression.App "Json.Decode.array" (elmDecoder @Aeson.Value @a)
+
+-- List
+
 instance HasElmType a => HasElmType [a] where
   elmType =
     Type.App "List.List" (elmType @a)
@@ -842,6 +1002,8 @@
 instance HasElmDecoder Aeson.Value a => HasElmDecoder Aeson.Value [a] where
   elmDecoder =
     Expression.App "Json.Decode.list" (elmDecoder @Aeson.Value @a)
+
+-- Tuple
 
 instance (HasElmType a, HasElmType b) => HasElmType (a, b) where
   elmType =
