HListPP: A preprocessor for HList labelable labels
A preprocessor that replaces `longDescriptiveName with
hLens' (Label :: Label "longDescriptiveName")
Use with ghc flags -F -pgmF HListPP. A file using HListPP
could start with something like
❴-# OPTIONS_GHC -F -pgmF HListPP #-❵ -- change braces to ascii (haddock doesn't allow literal comments in files) ❴-# LANGUAGE DataKinds #-❵ import Data.HList.CommonMain import Control.Lens
Then the labels can then be used in expressions with types like:
`x :: Lens (Record S) (Record T) a b `x :: Prism (Variant S) (Variant T) a b `a .==. "x" .*. `b .==. "y" .*. emptyRecord :: Record [ Tagged "a" String, Tagged "b" String ]
where S is a type-level list containing a Tagged "x" a
and T is a type-level list containing a Tagged "x" b.
Note that `labels is expanded to something that
takes up about 26 more columns. To avoid issues with
layout, put a newline after keywords that introduce
layout, at least if there are `labels in the same row.
In other words:
`character.`position.`x %= \ x -> let
     msg = "a really long message about x>0"
     pos = x - 5
   in if pos < 0
         then error msg
         else posInstead of
`character.`position.`x %= \ x -> let msg = "a really long message about x>0"
                                      pos = x - 5
                           in if pos < 0
                               then error msg
                               else pos
          
          
        Downloads
- HListPP-0.2.2.tar.gz [browse] (Cabal source package)
 - Package description (as included in the package)
 
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
| Versions [RSS] | 0.1, 0.2, 0.2.1, 0.2.2 | 
|---|---|
| Change log | ChangeLog | 
| Dependencies | base (>=4.9 && <5), regex-applicative (>=0.3 && <0.4) [details] | 
| License | BSD-3-Clause | 
| Author | Adam Vogt <vogt.adam@gmail.com> | 
| Maintainer | Adam Vogt <vogt.adam@gmail.com> | 
| Category | Development | 
| Home page | http://github.com/aavogt/HListPP | 
| Source repo | head: git clone http://github.com/aavogt/HListPP | 
| Uploaded | by AdamVogt at 2020-04-17T17:41:08Z | 
| Distributions | NixOS:0.2.2 | 
| Reverse Dependencies | 1 direct, 0 indirect [details] | 
| Executables | HListPP | 
| Downloads | 3143 total (10 in the last 30 days) | 
| Rating | (no votes yet) [estimated by Bayesian average] | 
| Your Rating | |
| Status | Docs not available [build log] Last success reported on 2020-04-17 [all 2 reports]  |