Ответ на вопрос в этом посте.
Для начала слегка модифицируем код, чтоб он компилировался.
import qualified Data.List.Stream as S
import qualified Data.Vector.Unboxed as U
f n = let arr = U.enumFromTo 1 n
in S.sum $ S.map (\i -> arr U.! (i `rem` n)) $ S.unfoldr (\i -> if i < n then Just (i, i+1) else Nothing) 0