Fixes a bug where not enough parentheses would be printed.
Previously if a function F is defined by split, `F (F x)` would be printed as `F F x`.
Now it's printed as `F (F x)` as it should.
VVar{} -> showVal v
VFst{} -> showVal v
VSnd{} -> showVal v
- Ter t@Sum{} rho -> showTer t <+> showEnv False rho
- Ter t@HSum{} rho -> showTer t <+> showEnv False rho
- Ter t@Split{} rho -> showTer t <+> showEnv False rho
- Ter t rho -> showTer1 t <+> showEnv True rho
+ Ter t rho | showEnv False rho == PP.empty -> showTer1 t
_ -> parens (showVal v)
showVals :: [Val] -> Doc