HListPP-0.2: HListPP.cabal
name: HListPP
version: 0.2
synopsis: A preprocessor for HList labelable labels
description: A preprocessor that replaces @`longDescriptiveName@ with
.
> hLens' (Label :: Label "longDescriptiveName")
.
Use with ghc flags @-F -pgmF HListPP@, which can
be added per-file with a pragma:
.
> ❴-# OPTIONS_GHC -F -pgmF HListPP #-❵ -- change braces to ascii (haddock doesn't allow literal comments in files)
.
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 pos
.
Instead 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
.
A blank library is included in this package to make
it possible to depend on HListPP
homepage: http://code.haskell.org/~aavogt/HListPP
license: BSD3
license-file: LICENSE
author: Adam Vogt <vogt.adam@gmail.com>
maintainer: Adam Vogt <vogt.adam@gmail.com>
category: Development
build-type: Simple
cabal-version: >=1.10
extra-source-files: ChangeLog
library
default-language: Haskell2010
executable HListPP
main-is: HListPP.hs
other-extensions: QuasiQuotes, ViewPatterns
build-depends: base >=4.6 && <4.8,
applicative-quoters >=0.1 && <0.2,
regex-applicative >=0.3 && <0.4
default-language: Haskell2010