index.md
November 18, 2019 ยท View on GitHub
-
Explains the core idea of the formatter that makes it so cool.
-
Looking at how the data is tranformed should give the reader a good idea of the high-level design, given that Brittany essentially performs a
Text -> Texttransformation. -
An explanation of the
BriDocdatatype focussed on (potential) contributors that wish to add support for more syntactical constructs. -
Specifying the semantics of the different (smart) constructors of the
BriDoctype. -
A closer look at how we achieve exactprinting, i.e. keeping comments and certain whitespace (empty lines) as they appear in the input source code.
-
Brittany uses the following (randomly deemed noteworthy) libraries:
ghc-exactprint(andghc) for parsing of haskell source;uniplatefor efficient transformations on the recursiveBriDocdatatype; this powers the main computational work done by Brittany;monad-memofor explicit function memoization;multistateas an alternative to an unwieldly transformer stack;butcherfor parsing commandline arguments (as an alternative tooptparse-applicative)yamlto handle config file;safeandunsafe(heh).