packages feed

hs2ats 0.2.0.4 → 0.2.1.0

raw patch · 2 files changed

+14/−9 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

hs2ats.cabal view
@@ -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
src/Language/ATS/Generate.hs view
@@ -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