RSEQ

我們可以使用 rseq::Strategy a 強制引數為弱頭正規化:

f1 :: [Int]
f1 = [1..100000000]

f2 :: [Int]
f2 = [1..200000000]

main = runEval $ do
  a <- rpar (f1) -- this'll take a while...
  b <- rpar (f2) -- this'll take a while and then some...
  rseq a
  return (a,b)

這巧妙地改變了 rpar 例子的語義; 而後者將在後臺計算值時立即返回,此示例將等到 a 可以被評估為 WHNF。