extern Cell conCons;
-extern Name nameRunIO;
+extern Name nameShow;
+extern Name namePutStr;
+extern Name nameRunIO_toplevel;
+
/* The following data constructors are used to box unboxed
* arguments and are treated differently by the code generator.
extern Name nameMkRef;
extern Name nameMkPrimMutableArray;
extern Name nameMkPrimMutableByteArray;
+extern Name nameMkThreadId;
+extern Name nameMkPrimMVar;
#ifdef PROVIDE_FOREIGN
extern Name nameMkForeign;
#endif
#ifdef PROVIDE_WEAK
extern Name nameMkWeak;
#endif
-#ifdef PROVIDE_CONCURRENT
-extern Name nameMkThreadId;
-extern Name nameMkMVar;
-#endif
+
/* For every primitive type provided by the runtime system,
* we construct a Haskell type using a declaration of the form:
extern Type typeFloat;
extern Type typeDouble;
extern Type typeStable;
+extern Type typeThreadId;
+extern Type typeMVar;
#ifdef PROVIDE_WEAK
extern Type typeWeak;
#endif
#ifdef PROVIDE_FOREIGN
extern Type typeForeign;
#endif
-#ifdef PROVIDE_CONCURRENT
-extern Type typeThreadId;
-extern Type typeMVar;
-#endif
/* And a smaller number of types defined in plain Haskell */
extern Type typeList;
extern Name nameEq;
extern Name namePMFail;
extern Name nameEqChar;
-extern Name nameEqInt;
extern Name nameEqInteger;
-extern Name nameEqDouble;
extern Name namePmInt;
extern Name namePmInteger;
extern Name namePmDouble;
extern Name namePmSubtract;
extern Name namePmFromInteger;
extern Name nameMkIO;
-extern Name nameRunST;
extern Name nameUnpackString;
extern Name namePrimSeq;
extern Name nameMap;