try to use Data.Reify package to speed up sharing recovery
add more MuRef instances
update samples
improved AST traversal functions, and other mess