Organize imports

Add setting file for Eclipse's "organize imports" tool, based on
the settings from the Gerrit project.

Organize the imports.

Change-Id: Iecd65b8da4d6b48f39000d60cd3730f544159acc
diff --git a/.settings/org.eclipse.jdt.ui.prefs b/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..5bb8a53
--- /dev/null
+++ b/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,5 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=com.googlecode.prolog_cafe;com;junit;net;org;java;javax;
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
diff --git a/src/builtin/PRED_$atom_type0_2.java b/src/builtin/PRED_$atom_type0_2.java
index 99bf5b6..c491f38 100644
--- a/src/builtin/PRED_$atom_type0_2.java
+++ b/src/builtin/PRED_$atom_type0_2.java
@@ -1,5 +1,11 @@
 package com.googlecode.prolog_cafe.builtin;
-import  com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.IntegerTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.Token;
 /**
  * <code>'$atom_type0'/2</code><br>
  * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_$begin_exception_1.java b/src/builtin/PRED_$begin_exception_1.java
index 54fefc7..262cb95 100644
--- a/src/builtin/PRED_$begin_exception_1.java
+++ b/src/builtin/PRED_$begin_exception_1.java
@@ -1,7 +1,13 @@
 package com.googlecode.prolog_cafe.builtin;
 import com.googlecode.prolog_cafe.exceptions.JavaException;
 import com.googlecode.prolog_cafe.exceptions.PrologException;
-import  com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.BlockPredicate;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.OutOfLoop;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.PrologControl;
+import com.googlecode.prolog_cafe.lang.Term;
 /**
  * <code>'$begin_exception'/1</code><br>
  * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_$call_2.java b/src/builtin/PRED_$call_2.java
index 6376085..0cb2364 100644
--- a/src/builtin/PRED_$call_2.java
+++ b/src/builtin/PRED_$call_2.java
@@ -2,7 +2,13 @@
 import com.googlecode.prolog_cafe.exceptions.ExistenceException;
 import com.googlecode.prolog_cafe.exceptions.IllegalTypeException;
 import com.googlecode.prolog_cafe.exceptions.SystemException;
-import  com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.IntegerTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.StructureTerm;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
 /**
  * <code>'$call'/2</code><br>
  * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_$call_closure_1.java b/src/builtin/PRED_$call_closure_1.java
index b4c7b4e..1df6f78 100644
--- a/src/builtin/PRED_$call_closure_1.java
+++ b/src/builtin/PRED_$call_closure_1.java
@@ -1,5 +1,9 @@
 package com.googlecode.prolog_cafe.builtin;
-import  com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.ClosureTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.Term;
 /**
  * <code>'$call_closure'/1</code><br>
  * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_$cut_1.java b/src/builtin/PRED_$cut_1.java
index 2814ac8..d019148 100644
--- a/src/builtin/PRED_$cut_1.java
+++ b/src/builtin/PRED_$cut_1.java
@@ -1,6 +1,10 @@
 package com.googlecode.prolog_cafe.builtin;
 import com.googlecode.prolog_cafe.exceptions.IllegalTypeException;
-import com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.IntegerTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.Term;
 /**
  <code>'$cut'/1</code><br>
  @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_$end_exception_1.java b/src/builtin/PRED_$end_exception_1.java
index a42d2ff..347b36b 100644
--- a/src/builtin/PRED_$end_exception_1.java
+++ b/src/builtin/PRED_$end_exception_1.java
@@ -1,7 +1,12 @@
 package com.googlecode.prolog_cafe.builtin;
 import com.googlecode.prolog_cafe.exceptions.IllegalTypeException;
 import com.googlecode.prolog_cafe.exceptions.SystemException;
-import  com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.OutOfScope;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.Term;
 /**
  * <code>'$end_exception'/1<code><br>
  * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_$erase_1.java b/src/builtin/PRED_$erase_1.java
index 62548a9..5e9c1fd 100644
--- a/src/builtin/PRED_$erase_1.java
+++ b/src/builtin/PRED_$erase_1.java
@@ -1,6 +1,10 @@
 package com.googlecode.prolog_cafe.builtin;
 import com.googlecode.prolog_cafe.exceptions.IllegalTypeException;
-import  com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.IntegerTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.Term;
 /**
  * <code>'$erase'/1</code><br>
  * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_$fast_write_2.java b/src/builtin/PRED_$fast_write_2.java
index e826999..98d0707 100644
--- a/src/builtin/PRED_$fast_write_2.java
+++ b/src/builtin/PRED_$fast_write_2.java
@@ -3,7 +3,14 @@
 import com.googlecode.prolog_cafe.exceptions.IllegalDomainException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
 import com.googlecode.prolog_cafe.exceptions.PermissionException;
-import  com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
+
 import java.io.PrintWriter;
 /**
  * <code>'$fast_write'/2</code><br>
diff --git a/src/builtin/PRED_$fast_writeq_2.java b/src/builtin/PRED_$fast_writeq_2.java
index 97fa0f4..485afd5 100644
--- a/src/builtin/PRED_$fast_writeq_2.java
+++ b/src/builtin/PRED_$fast_writeq_2.java
@@ -3,7 +3,14 @@
 import com.googlecode.prolog_cafe.exceptions.IllegalDomainException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
 import com.googlecode.prolog_cafe.exceptions.PermissionException;
-import  com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
+
 import java.io.PrintWriter;
 /**
  * <code>'$fast_writeq'/2</code><br>
diff --git a/src/builtin/PRED_$get_current_B_1.java b/src/builtin/PRED_$get_current_B_1.java
index b3cbc84..c6a7b89 100644
--- a/src/builtin/PRED_$get_current_B_1.java
+++ b/src/builtin/PRED_$get_current_B_1.java
@@ -1,5 +1,9 @@
 package com.googlecode.prolog_cafe.builtin;
-import  com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.IntegerTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.Term;
 /**
  * <code>'$get_current_B'/1</code><br>
  * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_$get_exception_1.java b/src/builtin/PRED_$get_exception_1.java
index 5b8cc96..fb2c7fc 100644
--- a/src/builtin/PRED_$get_exception_1.java
+++ b/src/builtin/PRED_$get_exception_1.java
@@ -1,5 +1,8 @@
 package com.googlecode.prolog_cafe.builtin;
-import  com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.Term;
 /**
  * <code>'$get_exception'/1</code><br>
  * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_$get_hash_manager_1.java b/src/builtin/PRED_$get_hash_manager_1.java
index fca810d..6c743e6 100644
--- a/src/builtin/PRED_$get_hash_manager_1.java
+++ b/src/builtin/PRED_$get_hash_manager_1.java
@@ -1,6 +1,11 @@
 package com.googlecode.prolog_cafe.builtin;
 import com.googlecode.prolog_cafe.exceptions.IllegalTypeException;
-import com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
 /**
    <code>'$get_hash_manager'/1</code><br>
    @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_$get_instances_2.java b/src/builtin/PRED_$get_instances_2.java
index d919bb9..d1f92dc 100644
--- a/src/builtin/PRED_$get_instances_2.java
+++ b/src/builtin/PRED_$get_instances_2.java
@@ -2,7 +2,15 @@
 import com.googlecode.prolog_cafe.exceptions.IllegalTypeException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
 import com.googlecode.prolog_cafe.exceptions.RepresentationException;
-import com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.IntegerTerm;
+import com.googlecode.prolog_cafe.lang.ListTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.StructureTerm;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
 /**
    <code>'$get_instances'/2</code><br>
    @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_$get_level_1.java b/src/builtin/PRED_$get_level_1.java
index c42370f..82098be 100644
--- a/src/builtin/PRED_$get_level_1.java
+++ b/src/builtin/PRED_$get_level_1.java
@@ -1,5 +1,9 @@
 package com.googlecode.prolog_cafe.builtin;
-import com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.IntegerTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.Term;
 /**
  <code>'$get_level'/1</code><br>
  @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_$get_prolog_impl_flag_2.java b/src/builtin/PRED_$get_prolog_impl_flag_2.java
index 2688b62..203d27c 100644
--- a/src/builtin/PRED_$get_prolog_impl_flag_2.java
+++ b/src/builtin/PRED_$get_prolog_impl_flag_2.java
@@ -1,5 +1,10 @@
 package com.googlecode.prolog_cafe.builtin;
-import com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.IntegerTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
 /**
    <code>'$get_prolog_impl_flag'/2</code><br>
    @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_$hash_adda_3.java b/src/builtin/PRED_$hash_adda_3.java
index 313fe70..8bc8496 100644
--- a/src/builtin/PRED_$hash_adda_3.java
+++ b/src/builtin/PRED_$hash_adda_3.java
@@ -3,8 +3,15 @@
 import com.googlecode.prolog_cafe.exceptions.IllegalDomainException;
 import com.googlecode.prolog_cafe.exceptions.InternalException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
-import com.googlecode.prolog_cafe.lang.*;
-import java.util.Hashtable;
+import com.googlecode.prolog_cafe.lang.HashtableOfTerm;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.ListTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
 /**
    <code>'$hash_adda'/3</code><br>
    @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_$hash_addz_3.java b/src/builtin/PRED_$hash_addz_3.java
index 80e90ae..a046545 100644
--- a/src/builtin/PRED_$hash_addz_3.java
+++ b/src/builtin/PRED_$hash_addz_3.java
@@ -3,8 +3,15 @@
 import com.googlecode.prolog_cafe.exceptions.IllegalDomainException;
 import com.googlecode.prolog_cafe.exceptions.InternalException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
-import com.googlecode.prolog_cafe.lang.*;
-import java.util.Hashtable;
+import com.googlecode.prolog_cafe.lang.HashtableOfTerm;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.ListTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
 /**
    <code>'$hash_addz'/3</code><br>
    @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_$hash_remove_first_3.java b/src/builtin/PRED_$hash_remove_first_3.java
index f0452bf..9ead9f0 100644
--- a/src/builtin/PRED_$hash_remove_first_3.java
+++ b/src/builtin/PRED_$hash_remove_first_3.java
@@ -3,8 +3,16 @@
 import com.googlecode.prolog_cafe.exceptions.IllegalDomainException;
 import com.googlecode.prolog_cafe.exceptions.InternalException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
-import com.googlecode.prolog_cafe.lang.*;
-import java.util.Hashtable;
+import com.googlecode.prolog_cafe.lang.HashtableOfTerm;
+import com.googlecode.prolog_cafe.lang.IntegerTerm;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.ListTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
 /**
    <code>'$hash_remove_first'/3</code><br>
    @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_$insert_2.java b/src/builtin/PRED_$insert_2.java
index e2df8dc..1a61d9b 100644
--- a/src/builtin/PRED_$insert_2.java
+++ b/src/builtin/PRED_$insert_2.java
@@ -1,6 +1,11 @@
 package com.googlecode.prolog_cafe.builtin;
 import com.googlecode.prolog_cafe.exceptions.IllegalTypeException;
-import com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.IntegerTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
 /**
    <code>'$insert'/2</code><br>
    @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_$neck_cut_0.java b/src/builtin/PRED_$neck_cut_0.java
index c6618e3..4b82b49 100644
--- a/src/builtin/PRED_$neck_cut_0.java
+++ b/src/builtin/PRED_$neck_cut_0.java
@@ -1,5 +1,7 @@
 package com.googlecode.prolog_cafe.builtin;
-import com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
 /**
  <code>'$neck_cut'/0</code><br>
  @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_$read_token0_3.java b/src/builtin/PRED_$read_token0_3.java
index 2a48321..de7a9e6 100644
--- a/src/builtin/PRED_$read_token0_3.java
+++ b/src/builtin/PRED_$read_token0_3.java
@@ -4,8 +4,19 @@
 import com.googlecode.prolog_cafe.exceptions.JavaException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
 import com.googlecode.prolog_cafe.exceptions.PermissionException;
-import  com.googlecode.prolog_cafe.lang.*;
-import java.io.*;
+import com.googlecode.prolog_cafe.lang.DoubleTerm;
+import com.googlecode.prolog_cafe.lang.IntegerTerm;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.ListTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.Token;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
+
+import java.io.PushbackReader;
 /**
  * <code>'$read_token0'/3</code><br>
  * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_$set_exception_1.java b/src/builtin/PRED_$set_exception_1.java
index d95e8b6..399d2c8 100644
--- a/src/builtin/PRED_$set_exception_1.java
+++ b/src/builtin/PRED_$set_exception_1.java
@@ -1,5 +1,8 @@
 package com.googlecode.prolog_cafe.builtin;
-import  com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.Term;
 /**
  * <code>'$set_exception'/1</code><br>
  * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_$set_prolog_impl_flag_2.java b/src/builtin/PRED_$set_prolog_impl_flag_2.java
index c0f981b..8fce3cd 100644
--- a/src/builtin/PRED_$set_prolog_impl_flag_2.java
+++ b/src/builtin/PRED_$set_prolog_impl_flag_2.java
@@ -1,5 +1,9 @@
 package com.googlecode.prolog_cafe.builtin;
-import com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
 /**
    <code>'$set_prolog_impl_flag'/2</code><br>
    @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_$statistics_2.java b/src/builtin/PRED_$statistics_2.java
index db91e3b..c989d1c 100644
--- a/src/builtin/PRED_$statistics_2.java
+++ b/src/builtin/PRED_$statistics_2.java
@@ -1,7 +1,14 @@
 package com.googlecode.prolog_cafe.builtin;
 import com.googlecode.prolog_cafe.exceptions.IllegalTypeException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
-import  com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.IntegerTerm;
+import com.googlecode.prolog_cafe.lang.ListTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
 /**
    <code>'$statistics'/2</code><br>
    @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_$term_hash_2.java b/src/builtin/PRED_$term_hash_2.java
index 5e46c41..04dae19 100644
--- a/src/builtin/PRED_$term_hash_2.java
+++ b/src/builtin/PRED_$term_hash_2.java
@@ -1,5 +1,9 @@
 package com.googlecode.prolog_cafe.builtin;
-import  com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.IntegerTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.Term;
 /**
  * <code>'$term_hash'/2</code><br>
  * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_$univ_2.java b/src/builtin/PRED_$univ_2.java
index ca2a1e1..063e100 100644
--- a/src/builtin/PRED_$univ_2.java
+++ b/src/builtin/PRED_$univ_2.java
@@ -2,7 +2,18 @@
 import com.googlecode.prolog_cafe.exceptions.IllegalDomainException;
 import com.googlecode.prolog_cafe.exceptions.IllegalTypeException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
-import com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.ClosureTerm;
+import com.googlecode.prolog_cafe.lang.DoubleTerm;
+import com.googlecode.prolog_cafe.lang.IntegerTerm;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.ListTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.StructureTerm;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
 /**
    <code>'$univ'/2</code><br>
    @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_$write_toString_2.java b/src/builtin/PRED_$write_toString_2.java
index 0cc1671..258cad6 100644
--- a/src/builtin/PRED_$write_toString_2.java
+++ b/src/builtin/PRED_$write_toString_2.java
@@ -4,7 +4,14 @@
 import com.googlecode.prolog_cafe.exceptions.IllegalTypeException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
 import com.googlecode.prolog_cafe.exceptions.PermissionException;
-import  com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
+
 import java.io.PrintWriter;
 /**
  * <code>'$write_toString'/2</code><br>
diff --git a/src/builtin/PRED_arg_3.java b/src/builtin/PRED_arg_3.java
index 8dfc519..9515985 100644
--- a/src/builtin/PRED_arg_3.java
+++ b/src/builtin/PRED_arg_3.java
@@ -2,7 +2,14 @@
 import com.googlecode.prolog_cafe.exceptions.IllegalDomainException;
 import com.googlecode.prolog_cafe.exceptions.IllegalTypeException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
-import  com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.IntegerTerm;
+import com.googlecode.prolog_cafe.lang.ListTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.StructureTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
 /**
  * <code>arg/3</code><br>
  * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_atom_chars_2.java b/src/builtin/PRED_atom_chars_2.java
index 721b4f2..a025cfb 100644
--- a/src/builtin/PRED_atom_chars_2.java
+++ b/src/builtin/PRED_atom_chars_2.java
@@ -1,7 +1,13 @@
 package com.googlecode.prolog_cafe.builtin;
 import com.googlecode.prolog_cafe.exceptions.IllegalTypeException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
-import  com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.ListTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
 /**
  * <code>atom_chars/2</code><br>
  * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_atom_codes_2.java b/src/builtin/PRED_atom_codes_2.java
index 602681a..de0665d 100644
--- a/src/builtin/PRED_atom_codes_2.java
+++ b/src/builtin/PRED_atom_codes_2.java
@@ -2,7 +2,14 @@
 import com.googlecode.prolog_cafe.exceptions.IllegalTypeException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
 import com.googlecode.prolog_cafe.exceptions.RepresentationException;
-import  com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.IntegerTerm;
+import com.googlecode.prolog_cafe.lang.ListTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
 /**
  * <code>atom_codes/2</code><br>
  * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_atom_concat_3.java b/src/builtin/PRED_atom_concat_3.java
index 7d16ea4..3f999cb 100644
--- a/src/builtin/PRED_atom_concat_3.java
+++ b/src/builtin/PRED_atom_concat_3.java
@@ -1,7 +1,14 @@
 package com.googlecode.prolog_cafe.builtin;
 import com.googlecode.prolog_cafe.exceptions.IllegalTypeException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
-import com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.ListTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.StructureTerm;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
 /**
  * <code>atom_concat/3</code><br>
  * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_atom_length_2.java b/src/builtin/PRED_atom_length_2.java
index c778504..9830416 100644
--- a/src/builtin/PRED_atom_length_2.java
+++ b/src/builtin/PRED_atom_length_2.java
@@ -2,7 +2,13 @@
 import com.googlecode.prolog_cafe.exceptions.IllegalDomainException;
 import com.googlecode.prolog_cafe.exceptions.IllegalTypeException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
-import com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.IntegerTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
 /**
  * <code>atom_lengt/2</code><br>
  * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_char_code_2.java b/src/builtin/PRED_char_code_2.java
index e25bfc8..cfda462 100644
--- a/src/builtin/PRED_char_code_2.java
+++ b/src/builtin/PRED_char_code_2.java
@@ -2,7 +2,13 @@
 import com.googlecode.prolog_cafe.exceptions.IllegalTypeException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
 import com.googlecode.prolog_cafe.exceptions.RepresentationException;
-import  com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.IntegerTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
 /**
  * <code>char_code/2</code><br>
  * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_close_2.java b/src/builtin/PRED_close_2.java
index 9937fde..9bba807 100644
--- a/src/builtin/PRED_close_2.java
+++ b/src/builtin/PRED_close_2.java
@@ -1,8 +1,4 @@
 package com.googlecode.prolog_cafe.builtin;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.PushbackReader;
-
 import com.googlecode.prolog_cafe.exceptions.ExistenceException;
 import com.googlecode.prolog_cafe.exceptions.IllegalDomainException;
 import com.googlecode.prolog_cafe.exceptions.IllegalTypeException;
@@ -19,6 +15,10 @@
 import com.googlecode.prolog_cafe.lang.SymbolTerm;
 import com.googlecode.prolog_cafe.lang.Term;
 import com.googlecode.prolog_cafe.lang.VariableTerm;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.PushbackReader;
 /**
  * <code>close/2</code><br>
  * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_current_engine_1.java b/src/builtin/PRED_current_engine_1.java
index 2bbdb38..7b95abb 100644
--- a/src/builtin/PRED_current_engine_1.java
+++ b/src/builtin/PRED_current_engine_1.java
@@ -1,5 +1,9 @@
 package com.googlecode.prolog_cafe.builtin;
-import  com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.Term;
 /**
  * <code>current_engine/1</code>
  * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_flush_output_1.java b/src/builtin/PRED_flush_output_1.java
index bbd5c26..1238477 100644
--- a/src/builtin/PRED_flush_output_1.java
+++ b/src/builtin/PRED_flush_output_1.java
@@ -3,7 +3,14 @@
 import com.googlecode.prolog_cafe.exceptions.IllegalDomainException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
 import com.googlecode.prolog_cafe.exceptions.PermissionException;
-import com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
+
 import java.io.PrintWriter;
 /**
  * <code>flush_output/1</code><br>
diff --git a/src/builtin/PRED_functor_3.java b/src/builtin/PRED_functor_3.java
index 4b99ff1..4e4c670 100644
--- a/src/builtin/PRED_functor_3.java
+++ b/src/builtin/PRED_functor_3.java
@@ -2,7 +2,18 @@
 import com.googlecode.prolog_cafe.exceptions.IllegalDomainException;
 import com.googlecode.prolog_cafe.exceptions.IllegalTypeException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
-import  com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.ClosureTerm;
+import com.googlecode.prolog_cafe.lang.DoubleTerm;
+import com.googlecode.prolog_cafe.lang.IntegerTerm;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.ListTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.StructureTerm;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
 /**
  * <code>functor/3</code><br>
  * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_get_2.java b/src/builtin/PRED_get_2.java
index 57014b4..2355d53 100644
--- a/src/builtin/PRED_get_2.java
+++ b/src/builtin/PRED_get_2.java
@@ -6,8 +6,17 @@
 import com.googlecode.prolog_cafe.exceptions.PermissionException;
 import com.googlecode.prolog_cafe.exceptions.RepresentationException;
 import com.googlecode.prolog_cafe.exceptions.TermException;
-import com.googlecode.prolog_cafe.lang.*;
-import java.io.*;
+import com.googlecode.prolog_cafe.lang.IntegerTerm;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
+
+import java.io.IOException;
+import java.io.PushbackReader;
 /**
  * <code>get/2</code><br>
  * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_get_char_2.java b/src/builtin/PRED_get_char_2.java
index 8acd91b..689d9eb 100644
--- a/src/builtin/PRED_get_char_2.java
+++ b/src/builtin/PRED_get_char_2.java
@@ -6,8 +6,16 @@
 import com.googlecode.prolog_cafe.exceptions.PermissionException;
 import com.googlecode.prolog_cafe.exceptions.RepresentationException;
 import com.googlecode.prolog_cafe.exceptions.TermException;
-import com.googlecode.prolog_cafe.lang.*;
-import java.io.*;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
+
+import java.io.IOException;
+import java.io.PushbackReader;
 /**
  * <code>get_char/2</code><br>
  * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_halt_1.java b/src/builtin/PRED_halt_1.java
index 88b1dad..69f1bae 100644
--- a/src/builtin/PRED_halt_1.java
+++ b/src/builtin/PRED_halt_1.java
@@ -1,7 +1,12 @@
 package com.googlecode.prolog_cafe.builtin;
 import com.googlecode.prolog_cafe.exceptions.IllegalTypeException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
-import com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.IntegerTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
 /**
  * <code>halt/1</code><br>
  * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_hash_clear_1.java b/src/builtin/PRED_hash_clear_1.java
index 5fbe0fe..fdfe873 100644
--- a/src/builtin/PRED_hash_clear_1.java
+++ b/src/builtin/PRED_hash_clear_1.java
@@ -3,8 +3,14 @@
 import com.googlecode.prolog_cafe.exceptions.IllegalDomainException;
 import com.googlecode.prolog_cafe.exceptions.InternalException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
-import com.googlecode.prolog_cafe.lang.*;
-import java.util.Hashtable;
+import com.googlecode.prolog_cafe.lang.HashtableOfTerm;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
 /**
  * <code>hash_clear/1</code><br>
  * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_hash_contains_key_2.java b/src/builtin/PRED_hash_contains_key_2.java
index cdf7929..51d2ada 100644
--- a/src/builtin/PRED_hash_contains_key_2.java
+++ b/src/builtin/PRED_hash_contains_key_2.java
@@ -3,8 +3,14 @@
 import com.googlecode.prolog_cafe.exceptions.IllegalDomainException;
 import com.googlecode.prolog_cafe.exceptions.InternalException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
-import com.googlecode.prolog_cafe.lang.*;
-import java.util.Hashtable;
+import com.googlecode.prolog_cafe.lang.HashtableOfTerm;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
 /**
    <code>hash_contains_key/2</code><br>
    @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_hash_get_3.java b/src/builtin/PRED_hash_get_3.java
index f530e2c..ee0a2df 100644
--- a/src/builtin/PRED_hash_get_3.java
+++ b/src/builtin/PRED_hash_get_3.java
@@ -3,8 +3,14 @@
 import com.googlecode.prolog_cafe.exceptions.IllegalDomainException;
 import com.googlecode.prolog_cafe.exceptions.InternalException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
-import com.googlecode.prolog_cafe.lang.*;
-import java.util.Hashtable;
+import com.googlecode.prolog_cafe.lang.HashtableOfTerm;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
 /**
    <code>hash_get/3</code><br>
    @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_hash_is_empty_1.java b/src/builtin/PRED_hash_is_empty_1.java
index 772edbc..ddcb9dd 100644
--- a/src/builtin/PRED_hash_is_empty_1.java
+++ b/src/builtin/PRED_hash_is_empty_1.java
@@ -3,8 +3,14 @@
 import com.googlecode.prolog_cafe.exceptions.IllegalDomainException;
 import com.googlecode.prolog_cafe.exceptions.InternalException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
-import com.googlecode.prolog_cafe.lang.*;
-import java.util.Hashtable;
+import com.googlecode.prolog_cafe.lang.HashtableOfTerm;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
 /**
    <code>hash_is_empty/1</code><br>
    @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_hash_keys_2.java b/src/builtin/PRED_hash_keys_2.java
index 3275efc..4dc057b 100644
--- a/src/builtin/PRED_hash_keys_2.java
+++ b/src/builtin/PRED_hash_keys_2.java
@@ -3,9 +3,15 @@
 import com.googlecode.prolog_cafe.exceptions.IllegalDomainException;
 import com.googlecode.prolog_cafe.exceptions.InternalException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
-import com.googlecode.prolog_cafe.lang.*;
-import java.util.Hashtable;
-import java.util.Enumeration;
+import com.googlecode.prolog_cafe.lang.HashtableOfTerm;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.ListTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
 /**
    <code>hash_keys/2</code><br>
    @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_hash_put_3.java b/src/builtin/PRED_hash_put_3.java
index f8ab3b8..8e0fc91 100644
--- a/src/builtin/PRED_hash_put_3.java
+++ b/src/builtin/PRED_hash_put_3.java
@@ -3,8 +3,14 @@
 import com.googlecode.prolog_cafe.exceptions.IllegalDomainException;
 import com.googlecode.prolog_cafe.exceptions.InternalException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
-import com.googlecode.prolog_cafe.lang.*;
-import java.util.Hashtable;
+import com.googlecode.prolog_cafe.lang.HashtableOfTerm;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
 /**
    <code>hash_put/3</code><br>
    @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_hash_remove_2.java b/src/builtin/PRED_hash_remove_2.java
index 0f85f6a..665025a 100644
--- a/src/builtin/PRED_hash_remove_2.java
+++ b/src/builtin/PRED_hash_remove_2.java
@@ -3,8 +3,14 @@
 import com.googlecode.prolog_cafe.exceptions.IllegalDomainException;
 import com.googlecode.prolog_cafe.exceptions.InternalException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
-import com.googlecode.prolog_cafe.lang.*;
-import java.util.Hashtable;
+import com.googlecode.prolog_cafe.lang.HashtableOfTerm;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
 /**
    <code>hash_remove/2</code><br>
    @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_hash_size_2.java b/src/builtin/PRED_hash_size_2.java
index 10408f5..991dafe 100644
--- a/src/builtin/PRED_hash_size_2.java
+++ b/src/builtin/PRED_hash_size_2.java
@@ -4,8 +4,15 @@
 import com.googlecode.prolog_cafe.exceptions.IllegalTypeException;
 import com.googlecode.prolog_cafe.exceptions.InternalException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
-import com.googlecode.prolog_cafe.lang.*;
-import java.util.Hashtable;
+import com.googlecode.prolog_cafe.lang.HashtableOfTerm;
+import com.googlecode.prolog_cafe.lang.IntegerTerm;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
 /**
    <code>hash_size/2</code><br>
    @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_keysort_2.java b/src/builtin/PRED_keysort_2.java
index 764efe6..7598118 100644
--- a/src/builtin/PRED_keysort_2.java
+++ b/src/builtin/PRED_keysort_2.java
@@ -3,7 +3,15 @@
 import com.googlecode.prolog_cafe.exceptions.IllegalTypeException;
 import com.googlecode.prolog_cafe.exceptions.JavaException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
-import com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.ListTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.StructureTerm;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
+
 import java.util.Arrays;
 /**
  * <code>keysort/2</code><br>
diff --git a/src/builtin/PRED_new_hash_2.java b/src/builtin/PRED_new_hash_2.java
index 6d0ef05..76c43f0 100644
--- a/src/builtin/PRED_new_hash_2.java
+++ b/src/builtin/PRED_new_hash_2.java
@@ -3,7 +3,16 @@
 import com.googlecode.prolog_cafe.exceptions.IllegalTypeException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
 import com.googlecode.prolog_cafe.exceptions.PermissionException;
-import com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.HashtableOfTerm;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.ListTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.StructureTerm;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
 /**
    <code>new_hash/2</code><br>
    @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_number_chars_2.java b/src/builtin/PRED_number_chars_2.java
index 6b54c5c..8010b2c 100644
--- a/src/builtin/PRED_number_chars_2.java
+++ b/src/builtin/PRED_number_chars_2.java
@@ -2,7 +2,15 @@
 import com.googlecode.prolog_cafe.exceptions.IllegalTypeException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
 import com.googlecode.prolog_cafe.exceptions.SyntaxException;
-import  com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.DoubleTerm;
+import com.googlecode.prolog_cafe.lang.IntegerTerm;
+import com.googlecode.prolog_cafe.lang.ListTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
 /**
  * <code>number_chars/2</code><br>
  * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_number_codes_2.java b/src/builtin/PRED_number_codes_2.java
index 738800f..2023f67 100644
--- a/src/builtin/PRED_number_codes_2.java
+++ b/src/builtin/PRED_number_codes_2.java
@@ -3,7 +3,14 @@
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
 import com.googlecode.prolog_cafe.exceptions.RepresentationException;
 import com.googlecode.prolog_cafe.exceptions.SyntaxException;
-import  com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.DoubleTerm;
+import com.googlecode.prolog_cafe.lang.IntegerTerm;
+import com.googlecode.prolog_cafe.lang.ListTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
 /**
  * <code>number_codes/2</code><br>
  * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_open_4.java b/src/builtin/PRED_open_4.java
index 17a9cc4..9a80fea 100644
--- a/src/builtin/PRED_open_4.java
+++ b/src/builtin/PRED_open_4.java
@@ -5,8 +5,24 @@
 import com.googlecode.prolog_cafe.exceptions.InternalException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
 import com.googlecode.prolog_cafe.exceptions.PermissionException;
-import com.googlecode.prolog_cafe.lang.*;
-import java.io.*;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.ListTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.StructureTerm;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.PushbackReader;
 /**
    <code>open/4</code><br>
    @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_put_char_2.java b/src/builtin/PRED_put_char_2.java
index 582310d..6f967a1 100644
--- a/src/builtin/PRED_put_char_2.java
+++ b/src/builtin/PRED_put_char_2.java
@@ -5,8 +5,15 @@
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
 import com.googlecode.prolog_cafe.exceptions.PermissionException;
 import com.googlecode.prolog_cafe.exceptions.RepresentationException;
-import com.googlecode.prolog_cafe.lang.*;
-import java.io.*;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
+
+import java.io.PrintWriter;
 /**
    <code>put_char/2</code><br>
    @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_put_code_2.java b/src/builtin/PRED_put_code_2.java
index b39103b..3a2684f 100644
--- a/src/builtin/PRED_put_code_2.java
+++ b/src/builtin/PRED_put_code_2.java
@@ -5,8 +5,16 @@
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
 import com.googlecode.prolog_cafe.exceptions.PermissionException;
 import com.googlecode.prolog_cafe.exceptions.RepresentationException;
-import com.googlecode.prolog_cafe.lang.*;
-import java.io.*;
+import com.googlecode.prolog_cafe.lang.IntegerTerm;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
+
+import java.io.PrintWriter;
 /**
    <code>put_code/2</code><br>
    @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_raise_exception_1.java b/src/builtin/PRED_raise_exception_1.java
index fb88008..641f409 100644
--- a/src/builtin/PRED_raise_exception_1.java
+++ b/src/builtin/PRED_raise_exception_1.java
@@ -1,7 +1,11 @@
 package com.googlecode.prolog_cafe.builtin;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
 import com.googlecode.prolog_cafe.exceptions.TermException;
-import  com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
 /**
  * <code>raise_exception/1</code><br>
  * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_read_line_2.java b/src/builtin/PRED_read_line_2.java
index 72a9258..2459548 100644
--- a/src/builtin/PRED_read_line_2.java
+++ b/src/builtin/PRED_read_line_2.java
@@ -5,8 +5,19 @@
 import com.googlecode.prolog_cafe.exceptions.PermissionException;
 import com.googlecode.prolog_cafe.exceptions.RepresentationException;
 import com.googlecode.prolog_cafe.exceptions.TermException;
-import  com.googlecode.prolog_cafe.lang.*;
-import java.io.*;
+import com.googlecode.prolog_cafe.lang.IntegerTerm;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.ListTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.PushbackReader;
 /**
  * <code>read_line/2</code><br>
  * @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/builtin/PRED_regex_compile_2.java b/src/builtin/PRED_regex_compile_2.java
index 3e48d0a..7858208 100644
--- a/src/builtin/PRED_regex_compile_2.java
+++ b/src/builtin/PRED_regex_compile_2.java
@@ -9,7 +9,6 @@
 import com.googlecode.prolog_cafe.lang.Term;
 import com.googlecode.prolog_cafe.lang.VariableTerm;
 
-import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 /**
diff --git a/src/builtin/PRED_sort_2.java b/src/builtin/PRED_sort_2.java
index 0ae7b79..3c38d10 100644
--- a/src/builtin/PRED_sort_2.java
+++ b/src/builtin/PRED_sort_2.java
@@ -2,7 +2,13 @@
 import com.googlecode.prolog_cafe.exceptions.IllegalTypeException;
 import com.googlecode.prolog_cafe.exceptions.JavaException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
-import com.googlecode.prolog_cafe.lang.*;
+import com.googlecode.prolog_cafe.lang.ListTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
+
 import java.util.Arrays;
 /**
  * <code>sort/2</code><br>
diff --git a/src/builtin/PRED_tab_2.java b/src/builtin/PRED_tab_2.java
index bbe01fb..a79c168 100644
--- a/src/builtin/PRED_tab_2.java
+++ b/src/builtin/PRED_tab_2.java
@@ -4,8 +4,18 @@
 import com.googlecode.prolog_cafe.exceptions.IllegalDomainException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
 import com.googlecode.prolog_cafe.exceptions.PermissionException;
-import com.googlecode.prolog_cafe.lang.*;
-import java.io.*;
+import com.googlecode.prolog_cafe.lang.Arithmetic;
+import com.googlecode.prolog_cafe.lang.IntegerTerm;
+import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
+import com.googlecode.prolog_cafe.lang.NumberTerm;
+import com.googlecode.prolog_cafe.lang.Operation;
+import com.googlecode.prolog_cafe.lang.Predicate;
+import com.googlecode.prolog_cafe.lang.Prolog;
+import com.googlecode.prolog_cafe.lang.SymbolTerm;
+import com.googlecode.prolog_cafe.lang.Term;
+import com.googlecode.prolog_cafe.lang.VariableTerm;
+
+import java.io.PrintWriter;
 /**
    <code>tab/2</code><br>
    @author Mutsunori Banbara (banbara@kobe-u.ac.jp)
diff --git a/src/compiler/am2j/PRED_file_directory_name_2.java b/src/compiler/am2j/PRED_file_directory_name_2.java
index a1e0b48..a2e0731 100644
--- a/src/compiler/am2j/PRED_file_directory_name_2.java
+++ b/src/compiler/am2j/PRED_file_directory_name_2.java
@@ -2,7 +2,6 @@
 
 import com.googlecode.prolog_cafe.exceptions.IllegalDomainException;
 import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
-import com.googlecode.prolog_cafe.exceptions.PermissionException;
 import com.googlecode.prolog_cafe.exceptions.PrologException;
 import com.googlecode.prolog_cafe.lang.Operation;
 import com.googlecode.prolog_cafe.lang.Predicate;
diff --git a/src/lang/ClosureTerm.java b/src/lang/ClosureTerm.java
index b3c4acd..15c2ae4 100644
--- a/src/lang/ClosureTerm.java
+++ b/src/lang/ClosureTerm.java
@@ -1,5 +1,4 @@
 package com.googlecode.prolog_cafe.lang;
-import java.util.*;
 /**
  * Closure.<br>
  * The class <code>ClosureTerm</code> represents a closure structure.<br>
diff --git a/src/lang/PredicateEncoder.java b/src/lang/PredicateEncoder.java
index c6a5628..1de57be 100644
--- a/src/lang/PredicateEncoder.java
+++ b/src/lang/PredicateEncoder.java
@@ -1,6 +1,6 @@
 package com.googlecode.prolog_cafe.lang;
-import java.util.regex.Pattern;
 import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 /**
  * The <code>PredicateEncoder</code> class contains static methods for encoding predicate names.<br>
  * The predicate with <code>hoge:f/n</code> is encoded to <code>hoge.PRED_f_n</code>, where
diff --git a/src/lang/Token.java b/src/lang/Token.java
index b65fb9a..dd7286c 100644
--- a/src/lang/Token.java
+++ b/src/lang/Token.java
@@ -1,6 +1,7 @@
 package com.googlecode.prolog_cafe.lang;
-import java.util.*;
-import java.io.*;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.PushbackReader;
 /**
  * The <code>Token</code> class contains methods
  * for character input/output.<br>
diff --git a/src/repl/BlockingPrologControl.java b/src/repl/BlockingPrologControl.java
index 712a73a..557ae1e 100644
--- a/src/repl/BlockingPrologControl.java
+++ b/src/repl/BlockingPrologControl.java
@@ -1,7 +1,6 @@
 package com.googlecode.prolog_cafe.repl;
 
 import com.googlecode.prolog_cafe.exceptions.PrologException;
-import com.googlecode.prolog_cafe.lang.HashtableOfTerm;
 import com.googlecode.prolog_cafe.lang.Predicate;
 import com.googlecode.prolog_cafe.lang.PrologControl;
 import com.googlecode.prolog_cafe.lang.Term;
diff --git a/src/repl/PrologMain.java b/src/repl/PrologMain.java
index 4a51b93..95952b6 100644
--- a/src/repl/PrologMain.java
+++ b/src/repl/PrologMain.java
@@ -1,18 +1,11 @@
 package com.googlecode.prolog_cafe.repl;
 import com.googlecode.prolog_cafe.exceptions.HaltException;
-import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
 import com.googlecode.prolog_cafe.lang.ListTerm;
 import com.googlecode.prolog_cafe.lang.Prolog;
 import com.googlecode.prolog_cafe.lang.StructureTerm;
 import com.googlecode.prolog_cafe.lang.SymbolTerm;
 import com.googlecode.prolog_cafe.lang.Term;
 
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.io.PushbackReader;
 import java.util.EnumSet;
 import java.util.StringTokenizer;
 /**