I used debug-pp to instrument hlint with debug-hoed and debug (although I'm no longer able to instrument hlint with debug). During the process I ran into some issues and performance bottlenecks, which I've tried to address in this PR.
Changes
Switch to Text - debug traces can get pretty large and something more compact than String is required; we need Text to generate JSON anyway, so it seems like the obvious choice. Not user visible anyway.
Added debugRun - a wrapper for the main function that opens a web browser after the program is run.
Format call variables using <pre> for slightly nicer rendering and newline preservation
Fixes for the handling of var bindings in the TH wrapper - do we really want to wrap them all or only the lhss of where clauses ?
Fixes for the handling of type signatures - I don't think it is possible to add partial constraints (or Show constraints for that matter) to rank-2 arguments without breaking the callers.
Summary
I used debug-pp to instrument hlint with debug-hoed and
debug
(although I'm no longer able to instrument hlint with debug). During the process I ran into some issues and performance bottlenecks, which I've tried to address in this PR.Changes
Text
- debug traces can get pretty large and something more compact than String is required; we needText
to generate JSON anyway, so it seems like the obvious choice. Not user visible anyway.debugRun
- a wrapper for themain
function that opens a web browser after the program is run.<pre>
for slightly nicer rendering and newline preservationwhere
clauses ?Show
constraints for that matter) to rank-2 arguments without breaking the callers.toJSON
implementations.