diff -ruN klic-3.003-2002-02-20a/include/klic/gc_macro.h klic-3.003-2002-02-20b/include/klic/gc_macro.h
--- klic-3.003-2002-02-20a/include/klic/gc_macro.h	Wed Feb 20 12:40:34 2002
+++ klic-3.003-2002-02-20b/include/klic/gc_macro.h	Wed Feb 20 13:30:40 2002
@@ -10,6 +10,7 @@
 
 #include <klic/stdc.h>  /* CONCATENATE */
 #include <klic/basic.h>  /* fatal, debug_printf, klic_fprintf, klic_putc */
+#include <klic/struct.h>  /* rest_of_stream, method_result */
 
 extern q GC_wakeup_g_new();
 
@@ -23,37 +24,7 @@
   q* var, struct goalrec** goalp1, q(*myself)(),
   unsigned long argc, q argv[], q* g_allocp );
 
-/*
-  datas for general utility with consumer object
-*/
-
-/****************
-  suspension_reason
-
-  shows result of the processing for consumer object.
-
-  0: normal;
-  1: GC request;
-  other: the process is suspended. pointer of the reason of the prosess.
-******************/
-extern q suspension_reason;
-
-/************
-  rest_of_stream
-
-  indicates the next hooked term. This variable is meaningful
-  just `suspension_reason' is 0.
-
-  0: normal;
-  other: the next hooked term
-**************/
-extern q rest_of_stream;
-
-
-extern q method_result;
-
 #define GC_rappend(pref) G_rappend0(GC_CLASS_NAME(),pref)
-#define GC_body(fa) G_body0(GC_CLASS_NAME(),fa)
 
 /* runtime/generic.c */
 extern q GC_MAKE_HOOK_VAR(struct consumer_object* obj);
@@ -70,12 +41,6 @@
 #define    GC_SUCCEEDED       GENERIC_SUCCEEDED
 #define    GC_GCREQUEST       GENERIC_GCREQUEST
 
-#define    GC_RETURN \
-do{ \
-  method_result = 0; \
-  return g_allocp; \
-}while(0)
-
 #define    GC_RETURN_WITH_HOOK(x) \
 do{ \
   method_result = GC_SUCCEEDED; \
@@ -107,17 +72,6 @@
 
 /**************************************************/
 
-#define GC_DEREF_AND_TEST(x, susp) \
-do{ \
-  q temp0 = derefone(x); \
-  if(!isref(temp0) || (x) != derefone(temp0)) { \
-    (x) = temp0; \
-  } else { \
-    goto susp; \
-  } \
-}while(0)
-
-
 #define GC_SWITCH_ON_TERM(cons,atomic,funct,dobj,susp) \
 do{ \
   while (1) { \
@@ -144,28 +98,6 @@
 
 /***************************************************************************/
 
-#define GC_DEREF(x) \
-do{ \
-  while (1) { \
-    if (!isstruct(x)) { \
-      if (atomicnotref(x)) { \
-	break; \
-      } else { \
-	q temp0 = derefone(x); \
-	if(isref(temp0) && (x) == derefone(temp0)) { \
-	  GC_SUSPEND(x); \
-	  return g_allocp; \
-	} else { \
-	  (x) = temp0; \
-	} \
-      } \
-    } else { \
-      break; \
-    } \
-  } \
-}while(0)
-
-
 #define GC_TRY_TO_ALLOC(new, type, size, gc_request) \
 do{ \
   q res; \
@@ -254,11 +186,6 @@
   return (x); \
 }while(0)
 
-
-/****************************************************/
-
-#define GC_GSUCCESS GENERIC_SUCCEEDED
-#define GC_GFAILURE    GENERIC_FAILED
 
 /**********************************************************************/
 
diff -ruN klic-3.003-2002-02-20a/include/klic/struct.h klic-3.003-2002-02-20b/include/klic/struct.h
--- klic-3.003-2002-02-20a/include/klic/struct.h	Tue Feb 19 16:59:36 2002
+++ klic-3.003-2002-02-20b/include/klic/struct.h	Wed Feb 20 13:22:46 2002
@@ -334,11 +334,33 @@
 Extern long higher_priority_goal;
 
 /*
-  variable for mutable objects
-*/
+ * variable for mutable objects
+ * datas for general utility with consumer object
+ */
 
+/****************
+  suspension_reason
+
+  shows result of the processing for consumer object.
+
+  0: normal;
+  1: GC request;
+  other: the process is suspended. pointer of the reason of the prosess.
+******************/
 Extern q suspension_reason;
+
+/************
+  rest_of_stream
+
+  indicates the next hooked term. This variable is meaningful
+  just `suspension_reason' is 0.
+
+  0: normal;
+  other: the next hooked term
+**************/
 Extern q rest_of_stream;
+
+extern q method_result;
 
 
 /* runtime/alloc.c */
diff -ruN klic-3.003-2002-02-20a/runtime/generic.c klic-3.003-2002-02-20b/runtime/generic.c
--- klic-3.003-2002-02-20a/runtime/generic.c	Sun Feb 17 17:19:33 2002
+++ klic-3.003-2002-02-20b/runtime/generic.c	Wed Feb 20 13:20:48 2002
@@ -24,8 +24,6 @@
 
 extern const struct predicate predicate_generic_xgeneric_2;
 
-q method_result;
-
 /*************************** inlines *******************************/
 
 extern void
diff -ruN klic-3.003-2002-02-20a/runtime/gobj.h klic-3.003-2002-02-20b/runtime/gobj.h
--- klic-3.003-2002-02-20a/runtime/gobj.h	Fri Jan 11 10:03:24 2002
+++ klic-3.003-2002-02-20b/runtime/gobj.h	Wed Feb 20 13:21:57 2002
@@ -27,36 +27,4 @@
 #define generic_shmcopy(obj) \
   (method_table_of(obj)->shmcopy(obj))
 
-/**** header file for using data and functions defined in kernel ****/ 
-
-/*
-  datas for general utility with consumer object
-*/
-
-/****************
-  suspension_reason
-
-  shows result of the processing for consumer object.
-
-  0: normal;
-  1: GC request;
-  other: the process is suspended. pointer of the reason of the prosess.
-******************/
-extern q suspension_reason;
-
-/************
-  rest_of_stream
-
-  indicates the next hooked term. This variable is meaningful
-  just `suspension_reason' is 0.
-
-  0: normal;
-  other: the next hooked term
-**************/
-extern q rest_of_stream;
-
-
-extern q method_result;
-
-
 #endif /* _KLIC_GOBJ_H_ */
diff -ruN klic-3.003-2002-02-20a/runtime/unify.c klic-3.003-2002-02-20b/runtime/unify.c
--- klic-3.003-2002-02-20a/runtime/unify.c	Mon Feb 18 14:46:07 2002
+++ klic-3.003-2002-02-20b/runtime/unify.c	Wed Feb 20 13:20:57 2002
@@ -21,6 +21,8 @@
 extern struct predicate predicate_unify__term__dcode_xunify_2;
 extern struct predicate predicate_unify__term__dcode_xunify__goal_2;
 
+q method_result;
+
 #define enqueue_unify_terms(x, y) \
 { \
   struct goalrec *gp = (struct goalrec *)allocp; \
