diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,4 +1,12 @@
 # hs2ats
 
 This is a tool to convert Haskell types to ATS types. So far it works quite
-well, but documentation and error messages are nearly nonexistent.
+well, but documentation is sparse.
+
+Example use:
+
+```
+hs2ats --src DataTypes.hs --target generated_types.sats
+```
+
+Note also that `hs2ats` does not preserve strictness semantics.
diff --git a/hs2ats.cabal b/hs2ats.cabal
--- a/hs2ats.cabal
+++ b/hs2ats.cabal
@@ -1,5 +1,5 @@
 name:                hs2ats
-version:             0.2.0.1
+version:             0.2.0.3
 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
@@ -98,12 +98,16 @@
 qualConDeclToLeaf (EmptyQualCon _ cd) = Leaf [] <$> (over _head toUpper . convertConventions . fst <$> conDeclToType cd) <*> pure [] <*> (snd <$> conDeclToType cd)
 qualConDeclToLeaf _                   = unsupported "qualConDeclToLeaf"
 
+addNils :: [Arg] -> [Arg]
+addNils [] = [NoArgs]
+addNils x  = x
+
 -- TODO if it derives functor, use +
 asATSType :: Decl a -> ErrM Declaration
-asATSType (TypeDecl _ dh t) = ViewTypeDef undefined <$> (fst <$> asATSName dh) <*> (snd <$> asATSName dh) <*> typeToType t
-asATSType (DataDecl _ NewType{} _ dh [qcd] _)  = ViewTypeDef undefined <$> (fst <$> asATSName dh) <*> (snd <$> asATSName dh) <*> qualConDeclToType qcd
-asATSType (DataDecl _ DataType{} _ dh [qcd] _) = ViewTypeDef undefined <$> (fst <$> asATSName dh) <*> (snd <$> asATSName dh) <*> qualConDeclToType qcd
-asATSType (DataDecl _ DataType{} _ dh qcds _)  = SumViewType <$> (fst <$> asATSName dh) <*> (snd <$> asATSName dh) <*> mapM qualConDeclToLeaf (reverse qcds)
+asATSType (TypeDecl _ dh t) = ViewTypeDef undefined <$> (fst <$> asATSName dh) <*> (addNils . snd <$> asATSName dh) <*> typeToType t
+asATSType (DataDecl _ NewType{} _ dh [qcd] _)  = ViewTypeDef undefined <$> (fst <$> asATSName dh) <*> (addNils . snd <$> asATSName dh) <*> qualConDeclToType qcd
+asATSType (DataDecl _ DataType{} _ dh [qcd] _) = ViewTypeDef undefined <$> (fst <$> asATSName dh) <*> (addNils . snd <$> asATSName dh) <*> qualConDeclToType qcd
+asATSType (DataDecl _ DataType{} _ dh qcds _)  = SumViewType <$> (fst <$> asATSName dh) <*> (addNils . snd <$> asATSName dh) <*> mapM qualConDeclToLeaf (reverse qcds)
 asATSType _                                    = unsupported "asATSType"
 
 -- TODO GDataDecl and DataFamDecl
@@ -129,6 +133,8 @@
 extends = defaultParseMode
     { extensions = [EnableExtension StandaloneDeriving] }
 
+-- | Given a string containing Haskell, return a string containing ATS and
+-- a list of warnings.
 generateATS :: String -> ErrM (String, [GenerateError])
 generateATS hsSrc = modulePrint <$> case parseModuleWithMode extends hsSrc of
     ParseOk x            -> Right x
