Часто у меня есть функция такого шаблона:
f :: a -> b
f x = case x of
... -> g ...
... -> g ...
...
... -> g ...
where g = ...
В этом случае существует синтаксический сахар:
f :: a -> b
f ... = g ...
f ... = g ...
...
f ... = g ...
К сожалению, я не могу прикрепить к нему where: я, очевидно, получаю кучу not in scope s.
Я могу сделать g отдельную функцию, но это не приятно: мое пространство имен модулей будет загрязнено функциями утилиты.
Есть ли способ обхода?