packages feed

multirec 0.7.7 → 0.7.8

raw patch · 5 files changed

+111/−15 lines, 5 filesdep ~template-haskell

Dependency ranges changed: template-haskell

Files

+ examples/GRose.hs view
@@ -0,0 +1,47 @@+{-# LANGUAGE EmptyDataDecls        #-}+{-# LANGUAGE TemplateHaskell       #-}+{-# LANGUAGE GADTs                 #-}+{-# LANGUAGE KindSignatures        #-}+{-# LANGUAGE TypeFamilies          #-}+{-# LANGUAGE MultiParamTypeClasses #-}++module GRose where++-- Test case for Issue #1.++import Generics.MultiRec.Base+import Generics.MultiRec.TH++data GRose a = Leaf a | Node [GRose a]++data GRoseF :: * -> * -> * where+  GRose :: GRoseF a (GRose a)++$(deriveAll ''GRoseF)++-- Desired output:+--+-- data Leaf+-- data Node+--+-- instance Constructor Leaf where+--   conName _ = "Leaf"+-- instance Constructor Node where+--   conName _ = "Node"+--+-- type instance PF (GRoseF a) =+--   (:>:) ((:+:) (C Leaf (K a)) (C Node ((:.:) [] (I (GRose a))))) (GRose a)+--+-- instance El (GRoseF a) (GRose a) where+--   proof = GRose+--+-- instance Fam (GRoseF a) where+--+--   from GRose (Leaf f0) = Tag (L (C (K f0)))+--   from GRose (Node f0) = Tag (R (C ((D . (fmap (I . I0))) f0)))+--+--   to GRose (Tag (L (C f0))) = Leaf (unK f0)+--   to GRose (Tag (R (C f0))) = Node (((fmap (unI0 . unI)) . unD) f0)+--+-- instance EqS (GRoseF a) where+--   eqS GRose GRose = Just Refl
+ examples/J.hs view
@@ -0,0 +1,23 @@+{-# LANGUAGE GADTs                 #-}+{-# LANGUAGE KindSignatures        #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE TypeFamilies          #-}+{-# LANGUAGE TypeOperators         #-}+{-# LANGUAGE TypeSynonymInstances  #-}+{-# LANGUAGE EmptyDataDecls        #-}+{-# LANGUAGE TemplateHaskell       #-}+{-# LANGUAGE FlexibleInstances     #-}++module J where++import Generics.MultiRec.Base+import Generics.MultiRec.TH++-- Issue #4 test case++data J a = JJ (a, J a)++data AST :: * -> * -> * where+  J :: AST a (J a)++$(deriveAll ''AST)
+ examples/VarTypes.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE EmptyDataDecls        #-}+{-# LANGUAGE TemplateHaskell       #-}+{-# LANGUAGE GADTs                 #-}+{-# LANGUAGE KindSignatures        #-}+{-# LANGUAGE TypeFamilies          #-}+{-# LANGUAGE MultiParamTypeClasses #-}++module VarTypes where++import Generics.MultiRec.TH++data Type1 a b = CA a | CB b+data Type2 c   = CC c | CD+data Type3     = CE++data TypesF :: * -> * -> * -> * -> * where+  Type1 :: TypesF a b c (Type1 a b)+  Type2 :: TypesF a b c (Type2 c)+  Type3 :: TypesF a b c  Type3++$(deriveAll ''TypesF)+
multirec.cabal view
@@ -1,5 +1,5 @@ name:                 multirec-version:              0.7.7+version:              0.7.8 license:              BSD3 license-file:         LICENSE author:               Alexey Rodriguez,@@ -34,21 +34,12 @@   *  Alexey Rodriguez, Stefan Holdermans, Andres Löh, Johan Jeuring.      /Generic programming with fixed points for mutually recursive datatypes/.      ICFP 2009.- + stability:            experimental build-type:           Simple cabal-version:        >= 1.10-tested-with:          GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.1-extra-source-files:   examples/All.hs-                      examples/AST.hs-                      examples/ASTUse.hs-                      examples/ASTTHUse.hs-                      examples/ASTExamples.hs-                      examples/Single.hs-                      examples/SingleUse.hs-                      examples/SingleTHUse.hs-                      examples/SingleExamples.hs-                      CREDITS+tested-with:          GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.2, GHC == 8.2.2+extra-source-files:   CREDITS  source-repository head   type:               git@@ -83,11 +74,22 @@   default-language:   Haskell2010    build-depends:      base >= 3.0 && < 5,-                      template-haskell >= 2.4 && < 2.12+                      template-haskell >= 2.4 && < 2.13  test-suite examples   type:               exitcode-stdio-1.0   main-is:            All.hs+  other-modules:      AST+                      ASTExamples+                      ASTTHUse+                      ASTUse+                      GRose+                      J+                      Single+                      SingleExamples+                      SingleTHUse+                      SingleUse+                      VarTypes   hs-source-dirs:     examples   default-language:   Haskell2010   build-depends:      base >= 3.0 && < 5,
src/Generics/MultiRec/TH.hs view
@@ -240,7 +240,9 @@ -- the same name. mkData :: Con -> Q Dec mkData (NormalC n _) =-#if MIN_VERSION_template_haskell(2,11,0)+#if MIN_VERSION_template_haskell(2,12,0)+  dataD (cxt []) (remakeName n) [] Nothing [] []+#elif MIN_VERSION_template_haskell(2,11,0)   dataD (cxt []) (remakeName n) [] Nothing [] (cxt []) #else   dataD (cxt []) (remakeName n) [] [] []