foreign export regression test
--- /dev/null
+module For where
+
+{-
+import IOExts
+import Addr
+--y = putChar
+
+count :: IORef Int -> IO Int
+count ref = do
+ x <- readIORef ref
+ writeIORef ref (x+1)
+ return x
+
+createCounter :: IO Addr
+createCounter = do
+ ref <- newIORef 0
+ mkCounter (count ref)
+
+foreign import "sin" msin :: Double -> IO Double
+-}
+
+foreign export "putChar" putChar :: Char -> IO ()
+
+--foreign export "createCounter" createCounter :: IO Addr
+--foreign export dynamic mkCounter :: (IO Int) -> IO Addr
--- /dev/null
+TOP = ..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_HC_OPTS += -fglasgow-exts -no-hs-main
+
+CC = $(HC)
+
+all :: runtest
+
+include $(TOP)/mk/target.mk
--- /dev/null
+Hello, world
--- /dev/null
+#include "For_stub.h"
+
+int
+main(int argc, char *argv[])
+{
+ int i;
+ char msg[] = "Hello, world\n";
+
+ startupHaskell(argc,argv);
+
+ for (i=0; i < sizeof(msg) - 1; i++) {
+ putChar(msg[i]);
+ }
+ shutdownHaskell();
+}