dynamic-pp-0.1.0: dynamic-pp.cabal
Name: dynamic-pp
Category: Text
Version: 0.1.0
License: BSD3
License-File: LICENSE
Author: Eric McCorkle
Maintainer: Eric McCorkle <emc2@metricspace.net>
Stability: Alpha
Synopsis: A pretty-print library that employs a dynamic programming algorithm for optimal rendering.
Homepage: https://github.com/emc2/dynamic-pp
Bug-Reports: https://github.com/emc2/dynamic-pp/issues
Copyright: Copyright (c) 2015 Eric McCorkle. All rights reserved.
Description:
This library provides pretty-print operators similar to the set provided by the Wadler-Leijin pretty-printer.
The main difference, however, is that it utilizes a dynamic programming algorithm for rendering. This slightly
reduces the available combinators, but provides a layout engine that optimizes documents, minimizing their
over-wrap and line count.
.
The dynamic programming algorithm has pathological cases that cause it to run in quadratic time; however,
typical use on code-like programs should see better run times. In general, documents with many uses of the
choose combinator will require more time to render.
.
This library also provides two simpler rendering engines for uses where the full optimal layout engine is not
necessary. These engines are much simpler and consume fewer resources.
Build-type: Simple
Cabal-version: >= 1.16
Source-Repository head
Type: git
Location: git@github.com:emc2/dynamic-pp.git
Test-Suite UnitTest
default-language: Haskell2010
type: exitcode-stdio-1.0
Main-Is: UnitTest.hs
hs-source-dirs: src test
build-depends: base >= 4.4.0 && < 5, Cabal >= 1.16.0, hashable, bytestring,
utf8-string, blaze-builder, ansi-terminal, unordered-containers,
HUnit-Plus
ghc-options: -fhpc
Library
default-language: Haskell2010
hs-source-dirs: src
build-depends: base >= 4.4.0 && < 5, Cabal >= 1.16.0, hashable, bytestring,
utf8-string, blaze-builder, ansi-terminal, unordered-containers
exposed-modules: Text.Format