packages feed

multirec 0.7.3 → 0.7.4

raw patch · 2 files changed

+11/−5 lines, 2 filesdep ~template-haskell

Dependency ranges changed: template-haskell

Files

multirec.cabal view
@@ -1,5 +1,5 @@ name:                 multirec-version:              0.7.3+version:              0.7.4 license:              BSD3 license-file:         LICENSE author:               Alexey Rodriguez,@@ -81,4 +81,4 @@                       Generics.MultiRec.TEq    build-depends:      base >= 3.0 && < 5,-                      template-haskell >= 2.4 && < 2.9+                      template-haskell >= 2.4 && < 2.10
src/Generics/MultiRec/TH.hs view
@@ -2,6 +2,7 @@ {-# LANGUAGE GADTs           #-} {-# LANGUAGE KindSignatures  #-} {-# LANGUAGE PatternGuards   #-}+{-# LANGUAGE CPP             #-}  ----------------------------------------------------------------------------- -- |@@ -94,12 +95,17 @@     sum a b = conT ''(:+:) `appT` a `appT` b  derivePFInstance :: Name -> [Name] -> [(Name, [Name])] -> Q [Dec]-derivePFInstance n ps nps =-    return <$>-    tySynInstD ''PF [foldl appT (conT n) (map varT ps)] (foldr1 sum (map (pfType (map fst nps) ps) nps))+derivePFInstance n ps nps = return <$> myTySynInst   where     sum :: Q Type -> Q Type -> Q Type     sum a b = conT ''(:+:) `appT` a `appT` b+    tys = [foldl appT (conT n) (map varT ps)]+    ty  = foldr1 sum (map (pfType (map fst nps) ps) nps)+#if __GLASGOW_HASKELL__ > 706+    myTySynInst = tySynInstD ''PF (tySynEqn tys ty)+#else+    myTySynInst = tySynInstD ''PF tys ty+#endif  -- | Derive only the 'El' instances. Not needed if 'deriveAll' -- is used.