packages feed

fclabels 2.0.0.1 → 2.0.0.2

raw patch · 2 files changed

+8/−5 lines, 2 files

Files

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 ..]  -------------------------------------------------------------------------------