[Template-haskell] Re: template-haskell names in 6.3

Simon Peyton-Jones simonpj at microsoft.com
Fri Dec 3 07:17:19 EST 2004


Reasonable idea.  I've added

	nameModule :: Name -> Maybe String
to join the existing
	nameBase :: Name -> String

The 'Maybe' is needed because not all names  have modules; in
particular, ones that are made with mkName or newName.

OK?

Simon

| -----Original Message-----
| From: template-haskell-bounces at haskell.org
[mailto:template-haskell-bounces at haskell.org] On
| Behalf Of Keean Schupke
| Sent: 03 December 2004 11:00
| To: Simon Peyton-Jones
| Cc: template-haskell at haskell.org
| Subject: [Template-haskell] Re: template-haskell names in 6.3
| 
| Simon Peyton-Jones wrote:
| 
| Right... I had a good look through the library source, but must have
| missed it...
| It seems the functions to build and extract the 'module' part of Names
| is not
| exported... is there any reason why it can't be?
| 
|     Keean.
| 
| >Acutally it's there already:
| >	qCurrentModule :: Q String
| >
| >Simon
| >
| >| -----Original Message-----
| >| From: Keean Schupke [mailto:k.schupke at imperial.ac.uk]
| >| Sent: 02 December 2004 17:37
| >| To: Simon Peyton-Jones
| >| Subject: Re: template-haskell names in 6.3
| >|
| >| Simon Peyton-Jones wrote:
| >|
| >| Okay I want a globaly unique label, so I want to prepend the module
| >name
| >| to the string...
| >|
| >| module SomeLib.MyModule where
| >|
| >| $(label "myLabel") -- splices: myLabel = "SomeLib.MyModule.myLabel"
| >|
| >| I guess what I want is a reifyModuleName?
| >|
| >|     Keean.
| >|
| >| >| -----Original Message-----
| >| >| From: MR K P SCHUPKE [mailto:k.schupke at imperial.ac.uk]
| >| >| Sent: 22 October 2004 13:05
| >| >| To: glasgow-haskell-users at haskell.org; Simon Peyton-Jones
| >| >| Subject: template-haskell names in 6.3
| >| >|
| >| >|
| >| >| I have now read most of the notes on template-haskell2, but I
still
| >| >| have a problem with naming (although I think my issues with
types
| >| >| are adequately dealt with by the '' notation.
| >| >|
| >| >| I wish to create a declaration in template haskell, where the
| >funtion
| >| >| name is supplied: something like:
| >| >|
| >| >| $(label "myLabel")
| >| >|
| >| >| However I wish the reference to this label to be globally
specific
| >| >| to the generated instance... an example of this would be a
function
| >| >| that prints its reified name:
| >| >|
| >| >| $(example "myLabel") would splice:
| >| >|
| >| >| myLabel :: String
| >| >| myLabel = "This_module.myLabel"
| >| >|
| >| >| mkName only returns the 'local' namem
| >| >| how can I get a global name from a string?
| >| >|
| >| >| Keean.
| >| >
| >| >
| >
| >
| 
| _______________________________________________
| template-haskell mailing list
| template-haskell at haskell.org
| http://www.haskell.org/mailman/listinfo/template-haskell


More information about the template-haskell mailing list