diff --git a/hs2ats.cabal b/hs2ats.cabal
--- a/hs2ats.cabal
+++ b/hs2ats.cabal
@@ -1,5 +1,5 @@
 name:                hs2ats
-version:             0.2.0.4
+version:             0.2.1.0
 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
@@ -35,6 +35,9 @@
 pattern QNamed :: l -> l -> String -> QName l
 pattern QNamed x y s = UnQual x (Ident y s)
 
+pattern QStorable :: l -> l -> QName l
+pattern QStorable x y = UnQual x (Ident y "StorableWrapper")
+
 pattern EmptyQualCon :: l -> ConDecl l -> QualConDecl l
 pattern EmptyQualCon x cd = QualConDecl x Nothing Nothing cd
 
@@ -58,15 +61,17 @@
 toStringATS' (QNamed _ _ "CDouble") = Right ATS.Double
 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)
-typeToType (TyApp _ (TyCon _ qn) t'@TyCon{}) = Dependent <$> (Unqualified <$> qnameToString qn) <*> (pure <$> typeToType t')
-typeToType (TyApp _ t@TyApp{} t'@TyCon{})    = over typeCallArgs <$> fmap (:) (typeToType t') <*> typeToType t
-typeToType (TyParen _ t)                     = typeToType t
-typeToType (TyBang _ _ _ t)                  = typeToType t
-typeToType (TyList _ t)                      = Dependent (Unqualified "List_vt") <$> (pure <$> typeToType t)
-typeToType _                                 = Left $ Unsupported "typeToType"
+typeToType (TyCon _ qn)                       = toStringATS' qn
+typeToType (TyVar _ n)                        = Right $ Named $ Unqualified (toStringATS n)
+typeToType (TyApp _ (TyCon _ QStorable{}) t') = typeToType t'
+typeToType (TyApp _ (TyCon _ qn) t'@TyCon{})  = Dependent <$> (Unqualified <$> qnameToString qn) <*> (pure <$> typeToType t')
+typeToType (TyApp _ t@TyApp{} t'@TyCon{})     = over typeCallArgs <$> fmap (:) (typeToType t') <*> typeToType t
+typeToType (TyParen _ t)                      = typeToType t
+typeToType (TyBang _ _ _ t)                   = typeToType t
+typeToType (TyList _ t)                       = Dependent (Unqualified "List_vt") <$> (pure <$> typeToType t)
+typeToType _                                  = Left $ Unsupported "typeToType"
 
 fieldDeclToType :: FieldDecl a -> ErrM (String, ATS.Type)
 fieldDeclToType (FieldDecl _ [n] t) = (,) (toStringATS n) <$> typeToType t
