CallStack naming
Simon Peyton Jones
simonpj at microsoft.com
Wed Jan 20 10:32:20 UTC 2016
| foo x :: AppendsCallStack => a -> a
Remove the "x"!
S
| -----Original Message-----
| From: ghc-devs [mailto:ghc-devs-bounces at haskell.org] On Behalf Of
| Joachim Breitner
| Sent: 20 January 2016 09:08
| To: ghc-devs at haskell.org
| Subject: Re: CallStack naming
|
| Hi,
|
| Am Mittwoch, den 20.01.2016, 00:39 -0500 schrieb Richard Eisenberg:
| > 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?
|
| I tried to construct this using what we have right now:
|
| ==> AppendCallStack.hs <==
| {-# LANGUAGE ConstraintKinds, ImplicitParams #-} module
| AppendCallStack (AppendsCallStack) where
|
| import GHC.Stack
|
| type AppendsCallStack = ?x::CallStack
|
| ==> Bar.hs <==
| module Bar where
|
| import AppendCallStack
|
| foo x :: AppendsCallStack => a -> a
| foo x = error "Test"
|
| But with GHC-7.10 I get
|
| [1 of 2] Compiling AppendCallStack ( AppendCallStack.hs,
| AppendCallStack.o )
| [2 of 2] Compiling Bar ( Bar.hs, Bar.o )
| Bar.hs:5:1:
| Invalid type signature: foo x :: AppendsCallStack => a -> a
| Should be of form <variable> :: <type>
|
| although the constraint seems to be a constraint all right:
|
| *AppendCallStack> :kind AppendsCallStack
| AppendsCallStack :: GHC.Prim.Constraint
|
| and with GHC HEAD I get
|
| [1 of 2] Compiling AppendCallStack ( AppendCallStack.hs,
| AppendCallStack.o )
|
| AppendCallStack.hs:6:1: error:
| • Illegal implicit parameter ‘?x::CallStack’
| • In the type synonym declaration for ‘AppendsCallStack’
|
| Too bad...
|
| Greetings,
| Joachim
|
| --
| Joachim “nomeata” Breitner
| mail at joachim-breitner.de •
| https://na01.safelinks.protection.outlook.com/?url=http%3a%2f%2fwww.jo
| achim-
| breitner.de%2f&data=01%7c01%7csimonpj%40064d.mgd.microsoft.com%7cd5d44
| 2348f364bcc8a0108d321792a7c%7c72f988bf86f141af91ab2d7cd011db47%7c1&sda
| ta=5KAXu5980%2bc4CchVNfWyo1mlD6D8%2bQKn9Qjp6ypv0eE%3d
| Jabber: nomeata at joachim-breitner.de • GPG-Key: 0xF0FBF51F
| Debian Developer: nomeata at debian.org
More information about the ghc-devs
mailing list