=== modified file 'src/com/goldencode/p2j/util/BaseDataType.java'
--- old/src/com/goldencode/p2j/util/BaseDataType.java	2025-05-30 11:41:51 +0000
+++ new/src/com/goldencode/p2j/util/BaseDataType.java	2025-10-28 11:43:59 +0000
@@ -697,6 +697,8 @@
     */
    public BaseDataType maximum(BaseDataType b)   
    {
+      b = b.val();
+
       if (isUnknown() || b.isUnknown())
          return instantiateUnknown();
       
@@ -713,6 +715,8 @@
     */
    public BaseDataType minimum(BaseDataType b)   
    {
+      b = b.val();
+
       if (isUnknown() || b.isUnknown())
          return instantiateUnknown();
       

=== modified file 'src/com/goldencode/p2j/util/CompareOps.java'
--- old/src/com/goldencode/p2j/util/CompareOps.java	2025-08-20 07:29:04 +0000
+++ new/src/com/goldencode/p2j/util/CompareOps.java	2025-10-28 12:22:10 +0000
@@ -163,7 +163,7 @@
          return null;
       }
       
-      BaseDataType largest = list[0];
+      BaseDataType largest = list[0].val();
       
       for (int i = 1; i < list.length; i++)
       {
@@ -192,7 +192,7 @@
          return null;
       }
       
-      BaseDataType smallest = list[0];
+      BaseDataType smallest = list[0].val();
       
       for (int i = 1; i < list.length; i++)
       {
@@ -212,7 +212,7 @@
     */
    public static boolean _isUnknown(BaseDataType op)
    {
-      return op.isUnknown();
+      return op.val().isUnknown();
    }
 
    /**
@@ -253,7 +253,7 @@
     */
    public static logical isUnknown(BaseDataType op)
    {
-      return logical.of(op.isUnknown());
+      return logical.of(op.val().isUnknown());
    }
    
    /**
@@ -308,7 +308,7 @@
     */
    public static boolean _notUnknown(BaseDataType op)
    {
-      return !op.isUnknown();
+      return !op.val().isUnknown();
    }
    
    /**
@@ -351,7 +351,7 @@
     */
    public static logical notUnknown(BaseDataType op)
    {
-      return logical.of(!op.isUnknown());
+      return logical.of(!op.val().isUnknown());
    }
    
    /**
@@ -396,6 +396,9 @@
     */
    public static boolean equals(BaseDataType op1, BaseDataType op2)
    {
+      op1 = op1.val();
+      op2 = op2.val();
+
       boolean u1 = op1.isUnknown();
       boolean u2 = op2.isUnknown();
       
@@ -462,7 +465,7 @@
     */
    public static boolean _isEqual(WrappedResource op1, BaseDataType op2)
    {
-      return equals(new handle(op1), op2);
+      return equals(new handle(op1), op2.val());
    }
       
    /**
@@ -478,7 +481,7 @@
     */
    public static boolean _isEqual(BaseDataType op1, WrappedResource op2)
    {
-      return equals(op1, new handle(op2));
+      return equals(op1.val(), new handle(op2));
    }
       
    /**
@@ -1505,6 +1508,9 @@
     */
    public static boolean greaterThan(BaseDataType op1, BaseDataType op2)
    {
+      op1 = op1.val();
+      op2 = op2.val();
+
       boolean u1 = op1.isUnknown();
       boolean u2 = op2.isUnknown(); 
       
@@ -1770,6 +1776,9 @@
     */
    public static logical isGreaterThan(BaseDataType op1, BaseDataType op2)
    {
+      op1 = op1.val();
+      op2 = op2.val();
+
       boolean u1 = op1.isUnknown();
       boolean u2 = op2.isUnknown(); 
       
@@ -2028,6 +2037,9 @@
     */
    public static boolean greaterThanOrEqual(BaseDataType op1, BaseDataType op2)
    {
+      op1 = op1.val();
+      op2 = op2.val();
+
       boolean u1 = op1.isUnknown();
       boolean u2 = op2.isUnknown(); 
       
@@ -2312,6 +2324,9 @@
     */
    public static logical isGreaterThanOrEqual(BaseDataType op1, BaseDataType op2)
    {
+      op1 = op1.val();
+      op2 = op2.val();
+
       boolean u1 = op1.isUnknown();
       boolean u2 = op2.isUnknown(); 
       
@@ -2572,6 +2587,9 @@
     */
    public static boolean lessThan(BaseDataType op1, BaseDataType op2)
    {
+      op1 = op1.val();
+      op2 = op2.val();
+
       boolean u1 = op1.isUnknown();
       boolean u2 = op2.isUnknown(); 
       
@@ -2839,6 +2857,9 @@
     */
    public static logical isLessThan(BaseDataType op1, BaseDataType op2)
    {
+      op1 = op1.val();
+      op2 = op2.val();
+
       boolean u1 = op1.isUnknown();
       boolean u2 = op2.isUnknown(); 
       
@@ -3097,6 +3118,9 @@
     */
    public static boolean lessThanOrEqual(BaseDataType op1, BaseDataType op2)
    {
+      op1 = op1.val();
+      op2 = op2.val();
+
       boolean u1 = op1.isUnknown();
       boolean u2 = op2.isUnknown(); 
       
@@ -3380,6 +3404,9 @@
     */
    public static logical isLessThanOrEqual(BaseDataType op1, BaseDataType op2)
    {
+      op1 = op1.val();
+      op2 = op2.val();
+
       boolean u1 = op1.isUnknown();
       boolean u2 = op2.isUnknown(); 
       

