On 18-Jun-2001, Simon Peyton-Jones <simonpj@microsoft.com> wrote:
| IMHO, this is not a very attractive solution. I'd prefer to | complicate the ccall entity description slightly and go for | | foreign import ccall "myheader.h foo@mylib" foo :: Int -> Int | | Ie, we optionally allow the specification of the name of a | dll. This is only a hint and may be ignored by a given | Haskell system (in particular, in most systems, command line | options overrule such library names).
OK: belt and braces. Certainly the 'mylib' is properly part of foo's external name. Let's use the "::" syntax which .NET uses for other namespace management things
"myheader.h mylib::foo" foo :: Int->Int
This is a DLL qualification rather than a namespace qualification; it's similar in some ways, but not quite the same. The closest .NET equivalent would be assembly qualification, which is written as "[mylib]foo" in ILASM and "foo,mylib" in ASP+ web.config files. So I suggest using the ILASM syntax, i.e. "myheader.h [mylib]foo" foo :: Int->Int But it doesn't matter too much exactly which syntax is chosen. -- Fergus Henderson <fjh@cs.mu.oz.au> | "I have always known that the pursuit The University of Melbourne | of excellence is a lethal habit" WWW: <http://www.cs.mu.oz.au/~fjh> | -- the last words of T. S. Garp.