vector-th-unbox 0.2.1.5 → 0.2.1.6
raw patch · 2 files changed
+11/−9 lines, 2 filesdep ~basedep ~template-haskell
Dependency ranges changed: base, template-haskell
Files
- Data/Vector/Unboxed/Deriving.hs +10/−8
- vector-th-unbox.cabal +1/−1
Data/Vector/Unboxed/Deriving.hs view
@@ -116,18 +116,20 @@ ArrowT `AppT` typ `AppT` rep -> return ([], typ, rep) _ -> fail "Expecting a type of the form: cxts => typ -> rep" - s <- VarT <$> newName "s"+ let s = VarT (mkName "s") #if MIN_VERSION_template_haskell(2,11,0)- let bang = Bang NoSourceUnpackedness NoSourceStrictness+ let lazy = Bang NoSourceUnpackedness NoSourceStrictness # define MAYBE_KIND Nothing+# define MAYBE_OVERLAP Nothing #else- let bang = NotStrict+ let lazy = NotStrict # define MAYBE_KIND+# define MAYBE_OVERLAP #endif let newtypeMVector = NewtypeInstD [] ''MVector [s, typ] MAYBE_KIND- (NormalC mvName [(bang, ConT ''MVector `AppT` s `AppT` rep)]) []+ (NormalC mvName [(lazy, ConT ''MVector `AppT` s `AppT` rep)]) [] let mvCon = ConE mvName- let instanceMVector = InstanceD cxts+ let instanceMVector = InstanceD MAYBE_OVERLAP cxts (ConT ''M.MVector `AppT` ConT ''MVector `AppT` typ) $ concat [ wrap 'M.basicLength [mv] id , wrap 'M.basicUnsafeSlice [i, n, mv] (AppE mvCon)@@ -146,9 +148,9 @@ , wrap 'M.basicUnsafeGrow [mv, n] (liftE mvCon) ] let newtypeVector = NewtypeInstD [] ''Vector [typ] MAYBE_KIND- (NormalC vName [(bang, ConT ''Vector `AppT` rep)]) []+ (NormalC vName [(lazy, ConT ''Vector `AppT` rep)]) [] let vCon = ConE vName- let instanceVector = InstanceD cxts+ let instanceVector = InstanceD MAYBE_OVERLAP cxts (ConT ''G.Vector `AppT` ConT ''Vector `AppT` typ) $ concat [ wrap 'G.basicUnsafeFreeze [mv] (liftE vCon) , wrap 'G.basicUnsafeThaw [v] (liftE mvCon)@@ -158,7 +160,7 @@ , wrap 'G.basicUnsafeCopy [mv, v] id , wrap 'G.elemseq [v, a] id ] - return [ InstanceD cxts (ConT ''Unbox `AppT` typ) []+ return [ InstanceD MAYBE_OVERLAP cxts (ConT ''Unbox `AppT` typ) [] , newtypeMVector, instanceMVector , newtypeVector, instanceVector ]
vector-th-unbox.cabal view
@@ -1,5 +1,5 @@ name: vector-th-unbox-version: 0.2.1.5+version: 0.2.1.6 synopsis: Deriver for Data.Vector.Unboxed using Template Haskell description: A Template Haskell deriver for unboxed vectors, given a pair of coercion