<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -76,7 +76,7 @@ def load_primitives(env):
     env.alloc_local('&lt;=', PyPrimitive(less_equal, (2, -1)))
     env.alloc_local('&gt;=', PyPrimitive(more_equal, (2, -1)))
 
-    env.alloc_local('equal?', PyPrimitive(equal, (2, 2)))
+    env.alloc_local('equal?', PyPrimitive(prim_equal, (2, 2)))
     env.alloc_local('eq?', PyPrimitive(prim_eqv, (2, 2)))
     env.alloc_local('eqv?', PyPrimitive(prim_eqv, (2, 2)))
 
@@ -191,9 +191,12 @@ def equal(vm, *args):
         return True
     a = args[0]
     b = args[1]
+    type_check(a, (int, long, float, complex))
+    type_check(b, (int, long, float, complex))
     if a != b:
         return False
     for x in args[2:]:
+        type_check(a, (int, long, float, complex))
         if x != a:
             return False
     return True
@@ -524,6 +527,9 @@ def prim_string_to_number(vm, s, radix=10):
 def prim_string_append(vm, *strings):
     return ''.join(strings)
 
+def prim_equal(vm, a, b):
+    return a == b
+
 def prim_eqv(vm, a, b):
     return a is b
 </diff>
      <filename>skime/prim.py</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>95597dda52f561fec97a11b30c922aad11a1f101</id>
    </parent>
  </parents>
  <author>
    <name>pluskid</name>
    <email>pluskid@gmail.com</email>
  </author>
  <url>http://github.com/pluskid/skime/commit/41044a8c89d4efe3730184620ac0de0e6fd09fbb</url>
  <id>41044a8c89d4efe3730184620ac0de0e6fd09fbb</id>
  <committed-date>2008-08-08T05:42:37-07:00</committed-date>
  <authored-date>2008-08-08T05:42:37-07:00</authored-date>
  <message>Separate the '=' and 'equal?' primitive.</message>
  <tree>c0418177f1d8f423162e5044a5596232d594032e</tree>
  <committer>
    <name>pluskid</name>
    <email>pluskid@gmail.com</email>
  </committer>
</commit>
