traverse-code 0.1.1 → 0.1.1.1
raw patch · 3 files changed
+16/−17 lines, 3 files
Files
- CHANGELOG.md +8/−0
- src/Language/Haskell/TH/TraverseCode.hs +5/−11
- traverse-code.cabal +3/−6
CHANGELOG.md view
@@ -1,5 +1,13 @@ # Revision history for traverse-code +## 0.1.1.1 -- 2022-01-22++This release mostly exists to try to get Hackage to generate good+documentation links; I couldn't do it building docs myself.++* Remove unnecessary proxy type.+* Remove stale comments.+ ## 0.1.1 -- 2022-01-22 * Lots more instances.
src/Language/Haskell/TH/TraverseCode.hs view
@@ -1,11 +1,8 @@-{-# options_ghc -Wall #-} {-# language TemplateHaskellQuotes #-} {-# language FlexibleContexts #-} {-# language FlexibleInstances #-} {-# language ScopedTypeVariables #-}-{-# language KindSignatures #-} {-# language DataKinds #-}-{-# language TypeApplications #-} {-# language TypeOperators #-} {-# language EmptyCase #-} {-# language DefaultSignatures #-}@@ -21,7 +18,6 @@ import Language.Haskell.TH.Syntax (Code, Lift (..), Exp (..), Quote, Name) import qualified Language.Haskell.TH.Syntax as TH import Language.Haskell.TH.Lib (conE)-import Data.Kind (Type) -- for instances import qualified Data.Functor.Product as FProd@@ -70,13 +66,11 @@ class GTraverseCode f where gtraverseCode :: Quote m => (a -> Code m b) -> f a -> m Exp -data Goop (d :: Meta) (f :: Type -> Type) a = Goop- instance (Datatype c, GTraverseCodeCon f) => GTraverseCode (D1 c f) where- gtraverseCode f (M1 x) = gtraverseCodeCon pkg modl f x+ gtraverseCode f m@(M1 x) = gtraverseCodeCon pkg modl f x where- pkg = packageName (Goop @c @f)- modl = moduleName (Goop @c @f)+ pkg = packageName m+ modl = moduleName m class GTraverseCodeCon f where gtraverseCodeCon :: Quote m => String -> String -> (a -> Code m b) -> f a -> m Exp@@ -90,9 +84,9 @@ gtraverseCodeCon pkg modl f (R1 y) = gtraverseCodeCon pkg modl f y instance (Constructor c, GTraverseCodeFields f) => GTraverseCodeCon (C1 c f) where- gtraverseCodeCon pkg modl f (M1 x) = gtraverseCodeFields (conE conN) f x+ gtraverseCodeCon pkg modl f m@(M1 x) = gtraverseCodeFields (conE conN) f x where- conBase = conName (Goop @c @f)+ conBase = conName m conN :: Name conN = TH.mkNameG_d pkg modl conBase
traverse-code.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.2 name: traverse-code-version: 0.1.1+version: 0.1.1.1 synopsis: General data structure lifting for Template Haskell tested-with: GHC ==9.0.1 || ==9.2.1@@ -13,14 +13,13 @@ homepage: https://github.com/treeowl/traverse-code -- A URL where users can report bugs.--- bug-reports:+bug-reports: https://github.com/treeowl/traverse-code/issues license: BSD-3-Clause license-file: LICENSE author: David Feuer maintainer: David.Feuer@gmail.com --- A copyright notice.--- copyright:+copyright: 2022 David Feuer category: Language extra-source-files: CHANGELOG.md @@ -35,8 +34,6 @@ other-extensions: TemplateHaskellQuotes - -- TODO: figure out a base version; make things work with- -- older Template Haskell build-depends: base >=4.15.0.0 && < 4.17 , template-haskell >= 2.16 , containers