diff --git a/hs2ats.cabal b/hs2ats.cabal
--- a/hs2ats.cabal
+++ b/hs2ats.cabal
@@ -1,5 +1,5 @@
 name:                hs2ats
-version:             0.2.1.0
+version:             0.2.1.1
 synopsis:            Create ATS types from Haskell types
 description:         This package enables scanning Haskell source files for data types and then generating [ATS](http://www.ats-lang.org/) types from them.
 homepage:            https://github.com/vmchale/hs2ats#readme
diff --git a/src/Language/ATS/Generate.hs b/src/Language/ATS/Generate.hs
--- a/src/Language/ATS/Generate.hs
+++ b/src/Language/ATS/Generate.hs
@@ -45,23 +45,25 @@
 qnameToString (QNamed _ _ s) = Right $ convertConventions s
 qnameToString _              = unsupported "qnameToString"
 
+stringTypeConv :: String -> ErrM String
+stringTypeConv "Maybe"   = Right "Option_vt"
+stringTypeConv "Integer" = Right "Intinf"
+stringTypeConv "String"  = Right "Strptr1"
+stringTypeConv "CString" = Right "Strptr1"
+stringTypeConv "Word"    = Right "uint"
+stringTypeConv "CUInt"   = Right "uint"
+stringTypeConv _         = unsupported "stringTypeConv"
+
 toStringATS' :: QName a -> ErrM ATS.Type
-toStringATS' (QNamed _ _ "Int")     = Right ATS.Int
-toStringATS' (QNamed _ _ "CInt")    = Right ATS.Int
-toStringATS' (QNamed _ _ "Float")   = Right ATS.Float
-toStringATS' (QNamed _ _ "CFloat")  = Right ATS.Float
-toStringATS' (QNamed _ _ "Integer") = Right $ Named (Unqualified "Intinf")
-toStringATS' (QNamed _ _ "String")  = Right $ Named (Unqualified "Strptr1")
-toStringATS' (QNamed _ _ "CString") = Right $ Named (Unqualified "Strptr1")
-toStringATS' (QNamed _ _ "Bool")    = Right ATS.Bool
-toStringATS' (QNamed _ _ "CBool")   = Right ATS.Bool
-toStringATS' (QNamed _ _ "Word")    = Right $ Named (Unqualified "uint")
-toStringATS' (QNamed _ _ "CUInt")   = Right $ Named (Unqualified "uint")
-toStringATS' (QNamed _ _ "Double")  = Right ATS.Double
-toStringATS' (QNamed _ _ "CDouble") = Right ATS.Double
-toStringATS' _                      = unsupported "toStringATS'"
+toStringATS' (QNamed _ _ "Int")    = Right ATS.Int
+toStringATS' (QNamed _ _ "CInt")   = Right ATS.Int
+toStringATS' (QNamed _ _ "Float")  = Right ATS.Float
+toStringATS' (QNamed _ _ "CFloat") = Right ATS.Float
+toStringATS' (QNamed _ _ "Bool")   = Right ATS.Bool
+toStringATS' (QNamed _ _ "CBool")  = Right ATS.Bool
+toStringATS' (QNamed _ _ s)        = Named . Unqualified <$> stringTypeConv s
+toStringATS' _                     = unsupported "toStringATS'"
 
--- TODO ignore StorableWrapper :)
 typeToType :: HS.Type a -> ErrM ATS.Type
 typeToType (TyCon _ qn)                       = toStringATS' qn
 typeToType (TyVar _ n)                        = Right $ Named $ Unqualified (toStringATS n)
@@ -142,7 +144,8 @@
 
 extends :: ParseMode
 extends = defaultParseMode
-    { extensions = [EnableExtension StandaloneDeriving] }
+    { extensions = [EnableExtension StandaloneDeriving]
+    , fixities = Just $ infixr_ 1 ["<=<"] }
 
 -- | Given a string containing Haskell, return a string containing ATS and
 -- a list of warnings.
