
31 Oct
2009
31 Oct
'09
11:08 p.m.
The documentation of (>|) says that it "evaluates the first argument before the second". The function is defined as (http://www.haskell.org/ghc/docs/6.10-latest/html/libraries/parallel/src/Control-Parallel-Strategies.html#%3E|): (>|) :: Done -> Done -> Done {-# INLINE (>|) #-} (>|) = Prelude.seq I'm curious why it's defined as Prelude.seq, instead of pseq? The semantics seems to require pseq here. I also found the following comment that doesn't make sense to me: The operators >| and >|| are alternative names for `seq` and `par`. With the introduction of a Prelude function `seq` separating the Prelude function from the Strategy function becomes a pain. The notation also matches the notation for strategic function application.