diff --git a/.ic3_history b/.ic3_history
index 3a10a83..054a827 100644
--- a/.ic3_history
+++ b/.ic3_history
@@ -1,19 +1,3 @@
-if 1 2 3 4
-if = C3.if
-if 1 2 3 4
-if 1 2 3
-if 1 2
-if
-if_then_else true 1 2
-if_then_else false 1 2
-if true && true
- 1 + 1
- 2 + 2
-else
- 3 + 3
- 4 + 4
-end
-if_then_else true 1 2
if_then_else
féls
false
@@ -97,3 +81,19 @@ sqrt(-1)
sq = fn (x) { x * x }
type(1 +i 2 +i 3 + 4)
sq(1 +i 2 +i 3 + 4)
+sq = fn (x) { x * x }
+type(1 +i 2 +i 3 + 4)
+sq(1 +i 2 +i 3 + 4)
+1 +i 2 +i 3 + 4
+sq = fn (x) { x * x }
+sq(1 +i 2 +i 3 + 4)
+sq(1 +i 0)
+sq(1 +i 1)
+sq(0 +i 1)
+sq(1 +i 1)
+sq(1 +i 2)
+sq(1 +i 0)
+sq(1 +i 0.5)
+sq(1 +i 1/2)
+(Ratio) 1
+quote (Complex) 0
diff --git a/ic3/.ic3_history b/ic3/.ic3_history
index 0e17807..57d6470 100644
--- a/ic3/.ic3_history
+++ b/ic3/.ic3_history
@@ -97,3 +97,4 @@ if true 1 else 2 end
quote if true 1 else 2 end
quote if false 1 else 2 end
if false 1 else 2 end
+
diff --git a/lib/c3/0.1/complex.facts b/lib/c3/0.1/complex.facts
index 9efeac6..ee36818 100644
--- a/lib/c3/0.1/complex.facts
+++ b/lib/c3/0.1/complex.facts
@@ -2,4 +2,6 @@
version: 1}
replace {Complex, :is_a, :module}
replace {Complex, :defstruct, [x: ?, y: ?]}
-replace {Complex, :clean, cfn Void "gl_object_clean" (Complex)}
+replace {Complex, :symbol, Complex.cast}
+replace {Complex.cast, :cfn, cfn Complex "complex_init_cast" (Result, Tag)}
+replace {Complex, :clean, cfn Void "complex_clean" (Complex)}