Fix several missing namespace prefixes
Add a new utility class `either`
Reimplement `attempt` in terms of `either` class