Make GHCi print the entire result of an interactive 'bind' statement
Suppose
foo :: Int -> IO (Maybe Int, Bool)
Then here's a GHCi interaction:
Prelude> foo 3
(Just 3,True) -- Entire result printed
Prelude> (Just x, _) <- foo 3
3 -- Value of x printed
Prelude> (Just x, y) <- foo 3
-- Nothing at all printed
Prelude> (_, _) <- foo 3
-- Nothing at all printed
Prelude>
GHCi prints the result of a bind, p <- e
, if and only if the pattern p
binds exactly one variable. This is a bit odd; you get no info if it binds more than one.
A different and simpler behaviour would be to print the entire result every time. That is, all the commands above would print (Just 3, True)
.
I'm recording this ticket so that we remember the suggestion. I don't know for sure if it's a good one. Add comments if you have an opinion
Trac metadata
Trac field | Value |
---|---|
Version | 6.6.1 |
Type | FeatureRequest |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | Unknown |
Architecture | Unknown |