Я вернул массив, заморозив, и сделал так: main = do let (lowerBound, upperBound) = (2, 50_000_000) let mask = primeMask upperBound print $ foldMap (\i -> if mask `unsafe...
ой, а UArray не foldable, с ним вообще как-то можно чисто работать, кроме как foldl' делать от списка границ?
То есть вот это обязательно? newArray @(STUArray s) ? а у меня без него было
Поэтому нельзя сказать, является ли оно само по себе whnf?
if x then 1 else 2 это WHNF?
верно ли, что if x then a else b транслируется в \x -> x a b внутри, и почему Bool не равно a -> a -> a?
x = ... это ведь let x = ... in if x ... имеется в виду?
А, но оно не может быть головным выражением, правильно?