Initial commit
Many improves
Workaround for many test cases
Pass more test cases.
Pass more test cases.
Better error messages
Rename package name.
Update .gitignore
Update README
Added license statement
Optimize for tailcall
Added author
Move internal method into Detail objects.