CallStack naming

Herbert Valerio Riedel hvriedel at gmail.com
Thu Jan 21 13:56:02 UTC 2016


On 2016-01-20 at 06:39:32 +0100, Richard Eisenberg wrote:
> I'm sure there's an easy answer to this, but I'm wondering: why is the
> CallStack feature implemented with implicit parameters instead of just
> a magical constraint? Whenever I use this feature, I don't want to
> have to enable -XImplicitParams and then make sure I get the name
> right. What would be wrong with, e.g.,
>
>> undefined :: AppendsCallStack => a
>
> Seems simpler. Is it problems with a nullary class?

Btw, would that, as a side-effect, make the currently shown
type-signature in GHCi a bit nicer than the current

,----
| GHCi, version 8.1.20160117: http://www.haskell.org/ghc/  :? for help
| Loaded GHCi configuration from /home/hvr/.ghci
|
| λ:1> :info error
| error :: forall (v :: GHC.Types.Levity) (a :: TYPE v). ?callStack::GHC.Stack.Types.CallStack => [Char] -> a 	-- Defined in ‘GHC.Err’
|
| λ:2> :info undefined 
| undefined :: forall (v :: GHC.Types.Levity) (a :: TYPE v). ?callStack::GHC.Stack.Types.CallStack => a 	-- Defined in ‘GHC.Err’
`----

...?



More information about the ghc-devs mailing list