let rec hash = function | Var(x) -> Var.hash x | App(f, l) -> (Sym.hash f + (List.fold_left (fun h a -> h + hash a) 1 l)) land 0x3FFFFFFF