Refactoring and docstrings.
Refactored macros.
Added right-only body to (either).