Not being able to :print an exception would be quite annoying. Do TypeReps need to be cyclic?
Observable sharing can be done with StableName, but that would be a bit pile of hassle in the printer. Maybe exceptions warrant a special case. Cheers Simon On 29 October 2017 at 20:40, David Feuer <[email protected]> wrote: > The :sprint, :print, and :force commands in GHCi fall into infinite > loops when confronted by cyclical data. This bit me hard in > https://phabricator.haskell.org/D4085 because that produces cyclical > TypeReps, which is trouble for (e.g.) the test break011 which tries to > :force a SomeException (which wraps an Exception dictionary, which has > a Typeable constraint). I could try coming up with a fix myself, but > I'm rather curious whether some of the work you (or others) have > already done on observing GHC data graphs could be yanked into GHCi > itself for this purpose. We want > > 1. To be able to display cyclical data in some sensible way. > > > x = "hi" : x > > x `seq` () > > :print x > > should print some useful representation of x. > > 2. To be able to force cyclical data without looping. > > > x = "hi" : x > > :force x > > should print a useful representation of x. > _______________________________________________ > ghc-devs mailing list > [email protected] > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs >
_______________________________________________ ghc-devs mailing list [email protected] http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
