Update generic union find and add hash function to vexpr, note hash function cannot be implemented in intercace due to shared_ptr (reason unknown)
Update hash function for vexpr