Hi all, I fear I might be unaware of something I should be. Say I have a file objc_util.m with the following contents: #include <Foundation/Foundation.h> void ns_log(const char *s) { NSString *str = [NSString stringWithUTF8String:s]; NSLog(@"%@", str); } I also have a file Main.hs with contents: {-# LANGUAGE ForeignFunctionInterface #-} module Main where import Foreign.C.Types import Foreign.C.String foreign import ccall "ns_log" cNSLog :: CString -> IO () nsLog s = withCString s cNSLog I compile objc_util.m with: gcc -c objc_util.m And then I try to open it up in GHCi. ghci objc_util.o Main.hs -framework Foundation I add the flag '-frame Foundation' in the hopes that symbols in objc_util.o will get resolved dynamically. However I get: GHCi, version 7.8.3: http://www.haskell.org/ghc/ :? for help Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... linking ... done. Loading package base ... linking ... done. Loading object (static) objc_util.o ... ghc: panic! (the 'impossible' happened) (GHC version 7.8.3 for x86_64-apple-darwin): Loading temp shared object failed: dlopen(/var/folders/pv/pfxcyy117v31vt6lsshtgr_w0000gn/T/ghc33546_0/ghc33546_1.dylib, 9): Symbol not found: _OBJC_CLASS_$_NSString Referenced from: /var/folders/pv/pfxcyy1 17v31vt6lsshtgr_w0000gn/T/ghc33546_0/ghc33546_1.dylib Expected in: flat namespace in /var/folders/pv/pfxcyy117v31vt6lsshtgr_w0000gn/T/ghc33546_0/ghc33546_1.dylib Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug However, I have found a work around to this. If I do this: ln -s /System/Library/Frameworks/Foundation.framework/Foundation Foundation.o and then run ghci Foundation.o objc_util.o Main.hs I get this: GHCi, version 7.8.3: http://www.haskell.org/ghc/ :? for help Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... linking ... done. Loading package base ... linking ... done. Loading object (static) Foundation.o ... done Loading object (static) objc_util.o ... done final link ... done Everything has worked! And I can happily run 'nsLog' from GHCi and have it appear in the 'Console' app. However, it doesn't seem like I should have to do this. Where am I going wrong? Sean