\section[SMcopying-header]{Header file for SMcopying}
\begin{code}
-extern void SetCAFInfoTables PROTO(( P_ CAFlist ));
-extern void EvacuateRoots PROTO(( P_ roots[], I_ rootno ));
-extern void EvacuateAStack PROTO(( PP_ stackA, PP_ botA ));
-extern void EvacuateBStack PROTO(( P_ stackB, P_ botB, I_ *roots ));
-extern void Scavenge PROTO(());
+void SetCAFInfoTables PROTO(( P_ CAFlist ));
+void EvacuateRoots PROTO(( P_ roots[], I_ rootno ));
+void EvacuateAStack PROTO(( PP_ stackA, PP_ botA ));
+void EvacuateBStack PROTO(( P_ stackB, P_ botB, I_ *roots ));
+void Scavenge (STG_NO_ARGS);
+
+#ifdef GRAN
+void EvacuateEvents(STG_NO_ARGS);
+#endif
+#ifdef CONCURRENT
+void EvacuateSparks(STG_NO_ARGS);
+#endif
#ifdef GCdu
-extern void EvacuateCAFs PROTO(( P_ CAFlist ));
+void EvacuateCAFs PROTO(( P_ CAFlist ));
#else /* !GCdu */
-extern void EvacAndScavengeCAFs PROTO(( P_ CAFlist, I_ *extra_words, I_ *roots ));
+void EvacAndScavengeCAFs PROTO(( P_ CAFlist, I_ *extra_words, I_ *roots ));
#endif /* !GCdu */
\end{code}