← All packages
prettyprinter1.7.2
A modern, easy to use, well-documented, extensible pretty-printer.
Open the imported Cabal file ↗
- author
- Phil Wadler, Daan Leijen, Max Bolingbroke, Edward Kmett, David Luposchainsky, Simon Jakobi
- bug-reports
- http://github.com/quchen/prettyprinter/issues
- build-type
- Simple
- cabal-version
- >= 1.10
- category
- User Interfaces, Text
- extra-source-files
- README.md , CHANGELOG.md , misc/version-compatibility-macros.h
- homepage
- http://github.com/quchen/prettyprinter
- license
- BSD2
- license-file
- LICENSE.md
- maintainer
- Simon Jakobi <simon.jakobi@gmail.com>, David Luposchainsky <dluposchainsky at google>
- name
- prettyprinter
- synopsis
- A modern, easy to use, well-documented, extensible pretty-printer.
- tested-with
- GHC==9.14.1, GHC==9.12.2, GHC==9.10.3, GHC==9.8.4, GHC==9.6.7, GHC==9.4.8, GHC==9.2.8, GHC==9.0.2, GHC==8.10.7, GHC==8.8.4, GHC==8.6.5, GHC==8.4.4, GHC==8.2.2, GHC==8.0.2
- version
- 1.7.2
Show the complete metadata as JSON
{
"schemaVersion": 1,
"name": "prettyprinter",
"version": "1.7.2",
"cabalVersion": "1.10",
"buildType": "Simple",
"fields": {
"author": [
"Phil Wadler, Daan Leijen, Max Bolingbroke, Edward Kmett, David Luposchainsky, Simon Jakobi"
],
"bug-reports": [
"http://github.com/quchen/prettyprinter/issues"
],
"build-type": [
"Simple"
],
"cabal-version": [
">= 1.10"
],
"category": [
"User Interfaces, Text"
],
"description": [
"A modern, easy to use, well-documented, extensible pretty-printer. For more see README.md"
],
"extra-source-files": [
"README.md\n, CHANGELOG.md\n, misc/version-compatibility-macros.h"
],
"homepage": [
"http://github.com/quchen/prettyprinter"
],
"license": [
"BSD2"
],
"license-file": [
"LICENSE.md"
],
"maintainer": [
"Simon Jakobi <simon.jakobi@gmail.com>, David Luposchainsky <dluposchainsky at google>"
],
"name": [
"prettyprinter"
],
"synopsis": [
"A modern, easy to use, well-documented, extensible pretty-printer."
],
"tested-with": [
"GHC==9.14.1, GHC==9.12.2, GHC==9.10.3, GHC==9.8.4, GHC==9.6.7, GHC==9.4.8, GHC==9.2.8, GHC==9.0.2, GHC==8.10.7, GHC==8.8.4, GHC==8.6.5, GHC==8.4.4, GHC==8.2.2, GHC==8.0.2"
],
"version": [
"1.7.2"
]
},
"components": [
{
"kind": "library",
"name": "main",
"tree": {
"data": {
"buildable": null,
"exposedModules": [
"Prettyprinter",
"Prettyprinter.Internal",
"Prettyprinter.Internal.Debug",
"Prettyprinter.Internal.Type",
"Prettyprinter.Render.String",
"Prettyprinter.Render.Text",
"Prettyprinter.Render.Tutorials.StackMachineTutorial",
"Prettyprinter.Render.Tutorials.TreeRenderingTutorial",
"Prettyprinter.Render.Util.Panic",
"Prettyprinter.Render.Util.SimpleDocTree",
"Prettyprinter.Render.Util.StackMachine",
"Prettyprinter.Util",
"Prettyprinter.Symbols.Unicode",
"Prettyprinter.Symbols.Ascii",
"Data.Text.Prettyprint.Doc",
"Data.Text.Prettyprint.Doc.Internal",
"Data.Text.Prettyprint.Doc.Internal.Debug",
"Data.Text.Prettyprint.Doc.Internal.Type",
"Data.Text.Prettyprint.Doc.Render.String",
"Data.Text.Prettyprint.Doc.Render.Text",
"Data.Text.Prettyprint.Doc.Render.Tutorials.StackMachineTutorial",
"Data.Text.Prettyprint.Doc.Render.Tutorials.TreeRenderingTutorial",
"Data.Text.Prettyprint.Doc.Render.Util.Panic",
"Data.Text.Prettyprint.Doc.Render.Util.SimpleDocTree",
"Data.Text.Prettyprint.Doc.Render.Util.StackMachine",
"Data.Text.Prettyprint.Doc.Util",
"Data.Text.Prettyprint.Doc.Symbols.Unicode",
"Data.Text.Prettyprint.Doc.Symbols.Ascii"
],
"otherModules": [],
"dependencies": [
{
"package": "base",
"range": ">=4.9 && <5",
"libraries": [
"main"
]
}
],
"fields": {}
},
"branches": [
{
"condition": {
"flag": "text"
},
"then": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [],
"dependencies": [
{
"package": "text",
"range": ">=1.2",
"libraries": [
"main"
]
}
],
"fields": {}
},
"branches": []
},
"else": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [
"Data.Text",
"Data.Text.IO",
"Data.Text.Lazy",
"Data.Text.Lazy.Builder"
],
"dependencies": [],
"fields": {}
},
"branches": []
}
}
]
}
},
{
"kind": "executable",
"name": "generate_readme",
"tree": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [
"MultilineTh"
],
"dependencies": [
{
"package": "base",
"range": ">=4.9 && <5",
"libraries": [
"main"
]
},
{
"package": "prettyprinter",
"range": "-any",
"libraries": [
"main"
]
},
{
"package": "text",
"range": "-any",
"libraries": [
"main"
]
},
{
"package": "template-haskell",
"range": ">=2.9",
"libraries": [
"main"
]
}
],
"fields": {}
},
"branches": [
{
"condition": {
"and": [
{
"flag": "buildreadme"
},
{
"flag": "text"
}
]
},
"then": {
"data": {
"buildable": true,
"exposedModules": [],
"otherModules": [],
"dependencies": [],
"fields": {}
},
"branches": []
},
"else": {
"data": {
"buildable": false,
"exposedModules": [],
"otherModules": [],
"dependencies": [],
"fields": {}
},
"branches": []
}
}
]
}
},
{
"kind": "test-suite",
"name": "doctest",
"tree": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [],
"dependencies": [
{
"package": "base",
"range": ">=4.9 && <5",
"libraries": [
"main"
]
},
{
"package": "doctest",
"range": ">=0.9",
"libraries": [
"main"
]
},
{
"package": "prettyprinter",
"range": "-any",
"libraries": [
"main"
]
},
{
"package": "QuickCheck",
"range": ">=2.5",
"libraries": [
"main"
]
}
],
"fields": {
"type": [
"exitcode-stdio-1.0"
]
}
},
"branches": []
}
},
{
"kind": "test-suite",
"name": "testsuite",
"tree": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [
"StripTrailingSpace"
],
"dependencies": [
{
"package": "base",
"range": "-any",
"libraries": [
"main"
]
},
{
"package": "prettyprinter",
"range": "-any",
"libraries": [
"main"
]
},
{
"package": "pgp-wordlist",
"range": ">=0.1",
"libraries": [
"main"
]
},
{
"package": "bytestring",
"range": "-any",
"libraries": [
"main"
]
},
{
"package": "quickcheck-instances",
"range": ">=0.3.17",
"libraries": [
"main"
]
},
{
"package": "tasty",
"range": ">=0.10",
"libraries": [
"main"
]
},
{
"package": "tasty-hunit",
"range": ">=0.9",
"libraries": [
"main"
]
},
{
"package": "tasty-quickcheck",
"range": ">=0.8",
"libraries": [
"main"
]
},
{
"package": "text",
"range": "-any",
"libraries": [
"main"
]
}
],
"fields": {
"type": [
"exitcode-stdio-1.0"
]
}
},
"branches": [
{
"condition": {
"not": {
"flag": "text"
}
},
"then": {
"data": {
"buildable": false,
"exposedModules": [],
"otherModules": [],
"dependencies": [],
"fields": {}
},
"branches": []
},
"else": null
}
]
}
},
{
"kind": "benchmark",
"name": "fusion",
"tree": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [],
"dependencies": [
{
"package": "base",
"range": ">=4.9 && <5",
"libraries": [
"main"
]
},
{
"package": "prettyprinter",
"range": "-any",
"libraries": [
"main"
]
},
{
"package": "tasty-bench",
"range": ">=0.2",
"libraries": [
"main"
]
},
{
"package": "mtl",
"range": ">=2.1",
"libraries": [
"main"
]
},
{
"package": "random",
"range": ">=1.0",
"libraries": [
"main"
]
},
{
"package": "text",
"range": "-any",
"libraries": [
"main"
]
},
{
"package": "ansi-wl-pprint",
"range": ">=0.6",
"libraries": [
"main"
]
}
],
"fields": {
"type": [
"exitcode-stdio-1.0"
]
}
},
"branches": [
{
"condition": {
"not": {
"flag": "text"
}
},
"then": {
"data": {
"buildable": false,
"exposedModules": [],
"otherModules": [],
"dependencies": [],
"fields": {}
},
"branches": []
},
"else": null
}
]
}
},
{
"kind": "benchmark",
"name": "faster-unsafe-text",
"tree": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [],
"dependencies": [
{
"package": "base",
"range": ">=4.9 && <5",
"libraries": [
"main"
]
},
{
"package": "prettyprinter",
"range": "-any",
"libraries": [
"main"
]
},
{
"package": "tasty-bench",
"range": ">=0.2",
"libraries": [
"main"
]
},
{
"package": "text",
"range": "-any",
"libraries": [
"main"
]
}
],
"fields": {
"type": [
"exitcode-stdio-1.0"
]
}
},
"branches": [
{
"condition": {
"not": {
"flag": "text"
}
},
"then": {
"data": {
"buildable": false,
"exposedModules": [],
"otherModules": [],
"dependencies": [],
"fields": {}
},
"branches": []
},
"else": null
}
]
}
},
{
"kind": "benchmark",
"name": "large-output",
"tree": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [],
"dependencies": [
{
"package": "base",
"range": ">=4.9 && <5",
"libraries": [
"main"
]
},
{
"package": "base-compat",
"range": ">=0.9.3 && <0.15",
"libraries": [
"main"
]
},
{
"package": "prettyprinter",
"range": "-any",
"libraries": [
"main"
]
},
{
"package": "ansi-wl-pprint",
"range": "-any",
"libraries": [
"main"
]
},
{
"package": "tasty-bench",
"range": ">=0.2",
"libraries": [
"main"
]
},
{
"package": "QuickCheck",
"range": ">=2.8",
"libraries": [
"main"
]
},
{
"package": "containers",
"range": "-any",
"libraries": [
"main"
]
},
{
"package": "text",
"range": "-any",
"libraries": [
"main"
]
},
{
"package": "deepseq",
"range": "-any",
"libraries": [
"main"
]
}
],
"fields": {
"type": [
"exitcode-stdio-1.0"
]
}
},
"branches": [
{
"condition": {
"not": {
"compiler": "ghc",
"range": ">=7.6"
}
},
"then": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [],
"dependencies": [
{
"package": "ghc-prim",
"range": "-any",
"libraries": [
"main"
]
}
],
"fields": {}
},
"branches": []
},
"else": null
},
{
"condition": {
"not": {
"compiler": "ghc",
"range": ">=8.0"
}
},
"then": {
"data": {
"buildable": null,
"exposedModules": [],
"otherModules": [],
"dependencies": [
{
"package": "semigroups",
"range": "-any",
"libraries": [
"main"
]
}
],
"fields": {}
},
"branches": []
},
"else": null
},
{
"condition": {
"not": {
"flag": "text"
}
},
"then": {
"data": {
"buildable": false,
"exposedModules": [],
"otherModules": [],
"dependencies": [],
"fields": {}
},
"branches": []
},
"else": null
}
]
}
}
],
"setupDependencies": [],
"flags": [
{
"name": "buildreadme",
"default": false,
"manual": false,
"description": "Build the readme generator"
},
{
"name": "text",
"default": true,
"manual": true,
"description": "While it's a core value of @prettyprinter@ to use @Text@, there are rare\ncircumstances (mostly when @prettyprinter@ arises as a dependency of\ntest suites of packages like @bytestring@ or @text@ themselves) when\nthis is inconvenient. In this case one can disable this flag, so that\n@prettyprinter@ fallbacks to @String@."
}
],
"sourceRepositories": [
{
"kind": "head",
"fields": {
"location": [
"https://github.com/quchen/prettyprinter"
],
"type": [
"git"
]
}
}
],
"warnings": [],
"sourceUrl": "https://hackage.haskell.org/package/prettyprinter-1.7.2/prettyprinter.cabal",
"sha256": "e3a802ea939d465b2e37b9fa09d8e5bb88b5775d6d62dd2ec6ca32b63416656d",
"importedAt": "2026-10-14T12:42:59.697Z",
"dependencies": [
{
"package": "base",
"range": ">=4.9 && <5",
"libraries": [
"main"
],
"component": "library:main",
"conditions": []
},
{
"package": "text",
"range": ">=1.2",
"libraries": [
"main"
],
"component": "library:main",
"conditions": [
{
"flag": "text"
}
]
},
{
"package": "base",
"range": ">=4.9 && <5",
"libraries": [
"main"
],
"component": "executable:generate_readme",
"conditions": []
},
{
"package": "prettyprinter",
"range": "-any",
"libraries": [
"main"
],
"component": "executable:generate_readme",
"conditions": []
},
{
"package": "text",
"range": "-any",
"libraries": [
"main"
],
"component": "executable:generate_readme",
"conditions": []
},
{
"package": "template-haskell",
"range": ">=2.9",
"libraries": [
"main"
],
"component": "executable:generate_readme",
"conditions": []
},
{
"package": "base",
"range": ">=4.9 && <5",
"libraries": [
"main"
],
"component": "test-suite:doctest",
"conditions": []
},
{
"package": "doctest",
"range": ">=0.9",
"libraries": [
"main"
],
"component": "test-suite:doctest",
"conditions": []
},
{
"package": "prettyprinter",
"range": "-any",
"libraries": [
"main"
],
"component": "test-suite:doctest",
"conditions": []
},
{
"package": "QuickCheck",
"range": ">=2.5",
"libraries": [
"main"
],
"component": "test-suite:doctest",
"conditions": []
},
{
"package": "base",
"range": "-any",
"libraries": [
"main"
],
"component": "test-suite:testsuite",
"conditions": []
},
{
"package": "prettyprinter",
"range": "-any",
"libraries": [
"main"
],
"component": "test-suite:testsuite",
"conditions": []
},
{
"package": "pgp-wordlist",
"range": ">=0.1",
"libraries": [
"main"
],
"component": "test-suite:testsuite",
"conditions": []
},
{
"package": "bytestring",
"range": "-any",
"libraries": [
"main"
],
"component": "test-suite:testsuite",
"conditions": []
},
{
"package": "quickcheck-instances",
"range": ">=0.3.17",
"libraries": [
"main"
],
"component": "test-suite:testsuite",
"conditions": []
},
{
"package": "tasty",
"range": ">=0.10",
"libraries": [
"main"
],
"component": "test-suite:testsuite",
"conditions": []
},
{
"package": "tasty-hunit",
"range": ">=0.9",
"libraries": [
"main"
],
"component": "test-suite:testsuite",
"conditions": []
},
{
"package": "tasty-quickcheck",
"range": ">=0.8",
"libraries": [
"main"
],
"component": "test-suite:testsuite",
"conditions": []
},
{
"package": "text",
"range": "-any",
"libraries": [
"main"
],
"component": "test-suite:testsuite",
"conditions": []
},
{
"package": "base",
"range": ">=4.9 && <5",
"libraries": [
"main"
],
"component": "benchmark:fusion",
"conditions": []
},
{
"package": "prettyprinter",
"range": "-any",
"libraries": [
"main"
],
"component": "benchmark:fusion",
"conditions": []
},
{
"package": "tasty-bench",
"range": ">=0.2",
"libraries": [
"main"
],
"component": "benchmark:fusion",
"conditions": []
},
{
"package": "mtl",
"range": ">=2.1",
"libraries": [
"main"
],
"component": "benchmark:fusion",
"conditions": []
},
{
"package": "random",
"range": ">=1.0",
"libraries": [
"main"
],
"component": "benchmark:fusion",
"conditions": []
},
{
"package": "text",
"range": "-any",
"libraries": [
"main"
],
"component": "benchmark:fusion",
"conditions": []
},
{
"package": "ansi-wl-pprint",
"range": ">=0.6",
"libraries": [
"main"
],
"component": "benchmark:fusion",
"conditions": []
},
{
"package": "base",
"range": ">=4.9 && <5",
"libraries": [
"main"
],
"component": "benchmark:faster-unsafe-text",
"conditions": []
},
{
"package": "prettyprinter",
"range": "-any",
"libraries": [
"main"
],
"component": "benchmark:faster-unsafe-text",
"conditions": []
},
{
"package": "tasty-bench",
"range": ">=0.2",
"libraries": [
"main"
],
"component": "benchmark:faster-unsafe-text",
"conditions": []
},
{
"package": "text",
"range": "-any",
"libraries": [
"main"
],
"component": "benchmark:faster-unsafe-text",
"conditions": []
},
{
"package": "base",
"range": ">=4.9 && <5",
"libraries": [
"main"
],
"component": "benchmark:large-output",
"conditions": []
},
{
"package": "base-compat",
"range": ">=0.9.3 && <0.15",
"libraries": [
"main"
],
"component": "benchmark:large-output",
"conditions": []
},
{
"package": "prettyprinter",
"range": "-any",
"libraries": [
"main"
],
"component": "benchmark:large-output",
"conditions": []
},
{
"package": "ansi-wl-pprint",
"range": "-any",
"libraries": [
"main"
],
"component": "benchmark:large-output",
"conditions": []
},
{
"package": "tasty-bench",
"range": ">=0.2",
"libraries": [
"main"
],
"component": "benchmark:large-output",
"conditions": []
},
{
"package": "QuickCheck",
"range": ">=2.8",
"libraries": [
"main"
],
"component": "benchmark:large-output",
"conditions": []
},
{
"package": "containers",
"range": "-any",
"libraries": [
"main"
],
"component": "benchmark:large-output",
"conditions": []
},
{
"package": "text",
"range": "-any",
"libraries": [
"main"
],
"component": "benchmark:large-output",
"conditions": []
},
{
"package": "deepseq",
"range": "-any",
"libraries": [
"main"
],
"component": "benchmark:large-output",
"conditions": []
},
{
"package": "ghc-prim",
"range": "-any",
"libraries": [
"main"
],
"component": "benchmark:large-output",
"conditions": [
{
"not": {
"compiler": "ghc",
"range": ">=7.6"
}
}
]
},
{
"package": "semigroups",
"range": "-any",
"libraries": [
"main"
],
"component": "benchmark:large-output",
"conditions": [
{
"not": {
"compiler": "ghc",
"range": ">=8.0"
}
}
]
}
],
"exposedModules": [
"Prettyprinter",
"Prettyprinter.Internal",
"Prettyprinter.Internal.Debug",
"Prettyprinter.Internal.Type",
"Prettyprinter.Render.String",
"Prettyprinter.Render.Text",
"Prettyprinter.Render.Tutorials.StackMachineTutorial",
"Prettyprinter.Render.Tutorials.TreeRenderingTutorial",
"Prettyprinter.Render.Util.Panic",
"Prettyprinter.Render.Util.SimpleDocTree",
"Prettyprinter.Render.Util.StackMachine",
"Prettyprinter.Util",
"Prettyprinter.Symbols.Unicode",
"Prettyprinter.Symbols.Ascii",
"Data.Text.Prettyprint.Doc",
"Data.Text.Prettyprint.Doc.Internal",
"Data.Text.Prettyprint.Doc.Internal.Debug",
"Data.Text.Prettyprint.Doc.Internal.Type",
"Data.Text.Prettyprint.Doc.Render.String",
"Data.Text.Prettyprint.Doc.Render.Text",
"Data.Text.Prettyprint.Doc.Render.Tutorials.StackMachineTutorial",
"Data.Text.Prettyprint.Doc.Render.Tutorials.TreeRenderingTutorial",
"Data.Text.Prettyprint.Doc.Render.Util.Panic",
"Data.Text.Prettyprint.Doc.Render.Util.SimpleDocTree",
"Data.Text.Prettyprint.Doc.Render.Util.StackMachine",
"Data.Text.Prettyprint.Doc.Util",
"Data.Text.Prettyprint.Doc.Symbols.Unicode",
"Data.Text.Prettyprint.Doc.Symbols.Ascii"
],
"documents": {
"readme": {
"status": "available",
"sha256": "070dab14d9f9c197edbfb38115f293bf12d59e13a6e1b4b9c24b5912b31e1587",
"error": null,
"checkedAt": "2026-10-14T12:43:00.553Z"
},
"changelog": {
"status": "available",
"sha256": "00256eaf6645b8178ff4d732e3763923969bf2207e421eee602706be04c0848a",
"error": null,
"checkedAt": "2026-10-14T12:43:00.561Z"
}
},
"documentation": null,
"versions": [
{
"version": "1.7.2",
"imported_at": "2026-10-14T12:42:59.697Z"
}
]
}