[GHC] #8751: Show parenthesised output of expressions in ghci
GHC
ghc-devs at haskell.org
Sat Feb 8 17:24:36 UTC 2014
#8751: Show parenthesised output of expressions in ghci
------------------------------------+-------------------------------------
Reporter: Iceland_jack | Owner: Iceland_jack
Type: feature request | Status: new
Priority: normal | Milestone:
Component: GHCi | Version: 7.6.3
Keywords: | Operating System: Unknown/Multiple
Architecture: Unknown/Multiple | Type of failure: None/Unknown
Difficulty: Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: |
------------------------------------+-------------------------------------
Operator fixity can be a source of bugs (even for experienced
users!),[#point1 (1)] precedence levels may vary between languages and
then there are user-defined operators.
Attached is a patch for a ghci command allowing users to quickly
parenthesise expressions as a sanity check (and as an alternative to using
:info and parsing the result yourself). The command itself is activated
with `:paren`:
{{{
ghci> :paren 2 + 10 * 4 / 3
2 + ((10 * 4) / 3)
ghci> :paren \a b → a == b || b && a == (b == a) || b
\ a b -> (a == b) || ((b && (a == (b == a))) || b)
ghci> :paren 5 + 1 `mod` 2
5 + (1 `mod` 2)
ghci> :paren 5 * 1 `mod` 2
(5 * 1) `mod` 2
}}}
A friend of mine also pointed out that this could eventually be integrated
into `haskell-mode` where the user could temporarily replace an expression
with a parenthesised version or have different colours indicate different
levels of logical nesting.
[=#point1 (1)] [http://www.knosof.co.uk/cbook/accu06.html Developer
beliefs about binary operator precedence]
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8751>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list