implemented matching and alpha-equivalence checking;
use IHashtbl.t rather than arrays to implement contexts (should be almost as fast, and is more flexible/lightweight)