let hash = function
| External(n, _) ->
(3 + Hashtbl.hash n) land 0x3FFFFFFF
| Rename(n, i, _) ->
(5 + Hashtbl.hash n + i) land 0x3FFFFFFF
| Bound(i) ->
(7 + i) land 0x3FFFFFFF
| Slack(i,_, _) ->
(11 + i) land 0x3FFFFFFF
| Fresh(n, i, _) ->
(17 + Hashtbl.hash n + i) land 0x3FFFFFFF