# HListPP: A preprocessor for HList labelable labels

[ bsd3, development, program ] [ Propose Tags ]

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

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