data-lens-light 0.1.2.2 → 0.1.2.3
raw patch · 3 files changed
+30/−6 lines, 3 filesdep ~template-haskellnew-uploaderPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: template-haskell
API changes (from Hackage documentation)
+ Data.Lens.Light: infixl 9 ^.
+ Data.Lens.Light: infixr 4 !%=
- Data.Lens.Light: vanLaarhoven :: Functor f => Lens a b -> (b -> f b) -> (a -> f a)
+ Data.Lens.Light: vanLaarhoven :: Functor f => Lens a b -> (b -> f b) -> a -> f a
Files
- CHANGELOG.md +6/−0
- data-lens-light.cabal +1/−1
- src/Data/Lens/Light/Template.hs +23/−5
CHANGELOG.md view
@@ -1,6 +1,12 @@ Changes ======= +Version 0.1.2.3+---------------++Fix build with ghc 9++ Version 0.1.2.2 ---------------
data-lens-light.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/ name: data-lens-light-version: 0.1.2.2+version: 0.1.2.3 synopsis: Simple lenses, minimum dependencies description: See <https://github.com/feuerbach/data-lens-light/blob/master/README.md> homepage: https://github.com/feuerbach/data-lens-light
src/Data/Lens/Light/Template.hs view
@@ -81,6 +81,12 @@ _ -> fail $ errmsg t decMakeLens t reified namer +#if MIN_VERSION_template_haskell(2,17,0)+type TyVarBndr' = TyVarBndr ()+#else+type TyVarBndr' = TyVarBndr+#endif+ decMakeLens :: Name -> Dec -> (String -> Maybe String) -> Q [Dec] decMakeLens t dec namer = do (params, cons) <- case dec of@@ -104,7 +110,7 @@ ++ "\n nameMakeLens, remember accessors are" ++ "\n only generated for fields starting with an underscore" - makeAccs :: [TyVarBndr] -> [VarStrictType] -> Q [Dec]+ makeAccs :: [TyVarBndr'] -> [VarStrictType] -> Q [Dec] makeAccs params vars = liftM (concat . catMaybes) $ mapM (\ (name,_,ftype) -> makeAccFromName name params ftype) vars @@ -113,15 +119,19 @@ n <- namer (occString occ) return $ Name (mkOccName n) NameS - makeAccFromName :: Name -> [TyVarBndr] -> Type -> Q (Maybe [Dec])+ makeAccFromName :: Name -> [TyVarBndr'] -> Type -> Q (Maybe [Dec]) makeAccFromName name params ftype = case transformName name of Nothing -> return Nothing Just n -> liftM Just $ makeAcc name params ftype n - makeAcc ::Name -> [TyVarBndr] -> Type -> Name -> Q [Dec]+ makeAcc :: Name -> [TyVarBndr'] -> Type -> Name -> Q [Dec] makeAcc name params ftype accName = do+#if MIN_VERSION_template_haskell(2,17,0)+ let params' = map (\x -> case x of (PlainTV n _) -> n; (KindedTV n _ _) -> n) params+#else let params' = map (\x -> case x of (PlainTV n) -> n; (KindedTV n _) -> n) params+#endif let appliedT = foldl AppT (ConT t) (map VarT params') body <- [| lens@@ -130,8 +140,16 @@ $( return $ RecUpdE (VarE 's) [(name, VarE 'x)] ) ) |] return- [ SigD accName (ForallT (map PlainTV params')- [] (AppT (AppT (ConT ''Lens) appliedT) ftype))+ [ SigD accName (ForallT+ (map+#if MIN_VERSION_template_haskell(2,17,0)+ (flip PlainTV SpecifiedSpec)+#else+ PlainTV+#endif+ params')+ []+ (AppT (AppT (ConT ''Lens) appliedT) ftype)) , ValD (VarP accName) (NormalB body) [] ]