
I am having trouble exporting multiple instances of a polymorphic function similar to the example in the "Haskell 98 Foreign Function Interface 1.0 addendum" (page 6). My specific code is below: -----------------------begin test.hs---------------------------------
module Test() where
import Foreign
import Foreign.C
foreign export stdcall "addByte" (+):: Int8->Int8->Int8
foreign export stdcall "addInt" (+):: Int16->Int16->Int16
foreign export stdcall "addLong" (+):: Int32->Int32->Int32
-----------------------end test.hs---------------------------------
This somewhat contrived example should export three foreign implementations
of integer addition (one for each of 8, 16 and 32 byte integers). I am
compiling to a Win 32 DLL with GHC 6.61 using the following set of commands:
--------------------------------------------------------
ghc -c adder.hs -fglasgow-exts -ffi
ghc -c dllMain.c
ghc -static --mk-dll -optdll--def=test.def -o test.dll test.o test_stub.o
dllMain.o
--------------------------------------------------------
where dllMain.c declares my entry point for the DLL, and is as follows
--------------------begin dllMain.c------------------------------------
#include