packages feed

record 0.3.1 → 0.3.1.1

raw patch · 3 files changed

+14/−25 lines, 3 files

Files

library/Record.hs view
@@ -10,6 +10,7 @@  import BasePrelude import Language.Haskell.TH+import Language.Haskell.TH.Syntax import Language.Haskell.TH.Quote import qualified Record.Types as Types import qualified Record.Lens as Lens@@ -137,31 +138,19 @@  recordTypeNameByArity :: Int -> Maybe Name recordTypeNameByArity arity =-  fmap head $ mfilter (not . null) $ Just $-  drop (pred arity) $-  [-    ''Types.Record1, ''Types.Record2, ''Types.Record3, ''Types.Record4, -    ''Types.Record5, ''Types.Record6, ''Types.Record7, ''Types.Record8, -    ''Types.Record9, ''Types.Record10, ''Types.Record11, ''Types.Record12,-    ''Types.Record13, ''Types.Record14, ''Types.Record15, -    ''Types.Record16, ''Types.Record17, ''Types.Record18, ''Types.Record19, -    ''Types.Record20, ''Types.Record21, ''Types.Record22, -    ''Types.Record23, ''Types.Record24-  ]+  if arity > 24 || arity < 1+    then Nothing+    else Just (Name (OccName ("Record" <> show arity)) ns)+  where+    ns = case ''Types.Record1 of Name _ x -> x  recordConNameByArity :: Int -> Maybe Name recordConNameByArity arity =-  fmap head $ mfilter (not . null) $ Just $-  drop (pred arity) $-  [-    'Types.Record1, 'Types.Record2, 'Types.Record3, 'Types.Record4, -    'Types.Record5, 'Types.Record6, 'Types.Record7, 'Types.Record8, -    'Types.Record9, 'Types.Record10, 'Types.Record11, 'Types.Record12, -    'Types.Record12, 'Types.Record13, 'Types.Record14, 'Types.Record15, -    'Types.Record16, 'Types.Record17, 'Types.Record18, 'Types.Record19, -    'Types.Record20, 'Types.Record21, 'Types.Record22, 'Types.Record22, -    'Types.Record23, 'Types.Record24-  ]+  if arity > 24 || arity < 1+    then Nothing+    else Just (Name (OccName ("Record" <> show arity)) ns)+  where+    ns = case 'Types.Record1 of Name _ x -> x  renderType :: Parser.Type -> Either String Type renderType =
library/Record/Types.hs view
@@ -32,14 +32,14 @@ -- Here's how you can use it with tuples: -- -- >trd :: Field "3" v v' a' a => a -> v--- >trd = view . fieldLens (FieldName :: FieldName "3")+-- >trd = view . fieldLens (undefined :: FieldName "3") -- The function above will get you the third item of any tuple, which has it. class Field (n :: Symbol) a a' v v' | n a -> v, n a' -> v', n a v' -> a', n a' v -> a where   -- |   -- A polymorphic lens. E.g.:   --   -- >ageLens :: Field "age" v v' a' a => Lens a a' v v'-  -- >ageLens = fieldLens (FieldName :: FieldName "age")+  -- >ageLens = fieldLens (undefined :: FieldName "age")   fieldLens :: FieldName n -> Lens a a' v v'  -- |
record.cabal view
@@ -1,7 +1,7 @@ name:   record version:-  0.3.1+  0.3.1.1 synopsis:   First class records implemented with quasi-quotation description: