named tests and documented algebraic types