Revamped History monad to use pipes internally; significant speed and usability benefits