Further corrections to README.md
Started a complete rewrite...

Replaced dynamic polymorphism with static one. Instead of
bind operation, operator >= is now used (Couldn't have used
operator >>= because that one is right associative so something
like this (m >>= f >>= f) would not make sense as (f >>= f)
is not defined.

Only the core.cpp passes now though.
Switched to using union instead of boost::variant

Cpp now compiles ~500ms faster
Rest of the tests are now passing