void clearCache()
 {
     //methodCache.Clear();
     cache = null;
 }
 internal BinOpCacheEntry(Type key1, Type key2, Object val, BinOpCacheEntry next)
 {
     this.key1 = key1;
     this.key2 = key2;
     this.val = val;
     this.next = next;
 }
 void cacheMethod(Type t1, Type t2, Object method)
 {
     //if can find an existing entry, swap the value
     BinOpCacheEntry e = findCacheEntry(t1, t2);
     if (e == null)
         cache = new BinOpCacheEntry(t1, t2, method, cache);
     else
         e.val = method;
 }