Часто у меня есть функция такого шаблона:
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
отдельную функцию, но это не приятно: мое пространство имен модулей будет загрязнено функциями утилиты.
Есть ли способ обхода?