rename language-level types for symmetry with term types
clean up nested ifs with guards