safecopy 0.8.4 → 0.8.5
raw patch · 2 files changed
+6/−3 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- safecopy.cabal +1/−1
- src/Data/SafeCopy/Derive.hs +5/−2
safecopy.cabal view
@@ -7,7 +7,7 @@ -- The package version. See the Haskell package versioning policy -- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for -- standards guiding when and how versions should be incremented.-Version: 0.8.4+Version: 0.8.5 -- A short (one-line) description of the package. Synopsis: Binary serialization with version control.
src/Data/SafeCopy/Derive.hs view
@@ -375,10 +375,13 @@ return ( bindS (varP funVar) (varE baseFun) : ds , (t, funVar) : fs ) where found = any ((== t) . fst) fs+ finish+ :: [(Type, Type)] -- "dictionary" from synonyms(or not) to real types+ -> ([StmtQ], [(Type, Name)]) -- statements+ -> ([StmtQ], Type -> Name) -- function body and name-generator finish typeList (ds, fs) = (reverse ds, getName) where getName typ = fromMaybe err $ lookup typ typeList >>= flip lookup fs err = error "mkSafeFunctions: never here"- -- We can't use a Data.Map because Type isn't a member of Ord =/... -- | Follow type synonyms. This allows us to see, for example, -- that @[Char]@ and @String@ are the same type and we just need@@ -416,7 +419,7 @@ typeName :: Type -> String typeName (VarT name) = nameBase name typeName (ConT name) = nameBase name-typeName (TupleT n) = '(' : replicate (n-1) ',' ++ ")"+typeName (TupleT n) = "Tuple" ++ show n typeName ArrowT = "Arrow" typeName ListT = "List" typeName (AppT t u) = typeName t ++ typeName u