fclabels 2.0.0.1 → 2.0.0.2
raw patch · 2 files changed
+8/−5 lines, 2 files
Files
- fclabels.cabal +3/−3
- src/Data/Label/Derive.hs +5/−2
fclabels.cabal view
@@ -1,5 +1,5 @@ Name: fclabels-Version: 2.0.0.1+Version: 2.0.0.2 Author: Sebastiaan Visser, Erik Hesselink, Chris Eidhof, Sjoerd Visscher with lots of help and feedback from others. Synopsis: First class accessor labels implemented as lenses.@@ -47,9 +47,9 @@ See "Data.Label.Base" and "Data.Label.Monadic" for more information. .- * /Changelog from 2.0 to 2.0.0.1/+ * /Changelog from 2.0.0.1 to 2.0.0.2/ .- > - Remove warnings on generated labels with OverloadedStrings.+ > - Fix deriving with data types with more than 24 fields. Maintainer: Sebastiaan Visser <code@fvisser.nl> Homepage: https://github.com/sebastiaanvisser/fclabels
src/Data/Label/Derive.hs view
@@ -438,7 +438,7 @@ RecC c fs -> let s = take (length fs) in (conP c (s pats), var) InfixC _ c _ -> (infixP (pats !! 0) c (pats !! 1), var) ForallC _ _ c -> case1 i c- where fresh = mkName . pure <$> delete 'f' ['a'..'z']+ where fresh = mkName <$> delete "f" freshNames pats1 = varP <$> fresh pats = replicate i wildP ++ [pats1 !! i] ++ repeat wildP var = varE (fresh !! i)@@ -463,13 +463,16 @@ , infixE (Just (vars !! 0)) (conE c) (Just (vars !! 1)) ) ForallC _ _ c -> case1 i c- where fresh = mkName . pure <$> delete 'f' (delete 'v' ['a'..'z'])+ where fresh = mkName <$> delete "f" (delete "v" freshNames) pats1 = varP <$> fresh pats = take i pats1 ++ [wildP] ++ drop (i + 1) pats1 vars1 = varE <$> fresh v = varE (mkName "v") vars = take i vars1 ++ [v] ++ drop (i + 1) vars1 apps f as = foldl appE f as++freshNames :: [String]+freshNames = map pure ['a'..'z'] ++ map (('a':) . show) [0 :: Integer ..] -------------------------------------------------------------------------------