RE: [Template-haskell] Re: template-haskell names in 6.3
Dear Template Haskell folk I've now arranged that nameBase (mkName "Foo.baz") == "baz" nameModule (MkName "Foo.baz") == "Foo" as you might expect. There is a difference between the result of calling mkName, and a quoted name e.g 'map. The former is dynamically bound and the latter is lexically bound. Because there's a difference, I've made them print differently in the pretty printer Foo.baz for the dynamically bound one Foo:baz for the lexically scoped one This might break someone's code. Maybe they should both print as "Foo.baz"? There is no Haddock documentation to speak of in the TH libraries. Would someone (Ian?) like to add some? Simon | -----Original Message----- | From: Keean Schupke [mailto:k.schupke@imperial.ac.uk] | Sent: 21 December 2004 15:31 | To: Simon Peyton-Jones | Cc: template-haskell@haskell.org | Subject: Re: [Template-haskell] Re: template-haskell names in 6.3 | | It won't make a difference right now, so you can leave it out for now, | but I think it should work... | | Keean. | | Simon Peyton-Jones wrote: | | >aha, that's a good question. | > | >Hmm. It probably ought to work (though it won't today). Would it make | >a difference? | > | >S | > | >| -----Original Message----- | >| From: Keean Schupke [mailto:k.schupke@imperial.ac.uk] | >| Sent: 21 December 2004 14:03 | >| To: Simon Peyton-Jones | >| Cc: template-haskell@haskell.org | >| Subject: Re: [Template-haskell] Re: template-haskell names in 6.3 | >| | >| So does this work? | >| | >| nameModule (mkName "Foo.Bar") | >| | >| Keean. | > | > | >
On Tue, 2004-12-21 at 17:05 +0000, Simon Peyton-Jones wrote:
There is a difference between the result of calling mkName, and a quoted name e.g 'map. The former is dynamically bound and the latter is lexically bound.
Because there's a difference, I've made them print differently in the pretty printer
Foo.baz for the dynamically bound one Foo:baz for the lexically scoped one
This might break someone's code. Maybe they should both print as "Foo.baz"?
Since lexically scoped is the normal situation perhaps it should get the ordinary Foo.baz syntax and the dynamically bound variables should get the other syntax. Actually, for non-qualified variables there is still no syntactic difference between dynamically and statically scoped ones so it begs the question of why a syntactic difference is needed for the qualified case (or perhaps if a syntactic difference in the non-qualified would be a good idea). Duncan
participants (2)
-
Duncan Coutts -
Simon Peyton-Jones