Difference between revisions of "Strictness without ordering, or confusion"
Jump to navigation
Jump to search
(Added pertinent mail thread reference) |
m (Reference added) |
||
Line 24: | Line 24: | ||
* [https://mail.haskell.org/pipermail/glasgow-haskell-users/2006-November/011480.html Thread: seq vs. pseq], Haskell mail archive. |
* [https://mail.haskell.org/pipermail/glasgow-haskell-users/2006-November/011480.html Thread: seq vs. pseq], Haskell mail archive. |
||
+ | |||
+ | * [https://gitlab.haskell.org/ghc/ghc/-/issues/5129 Ticket# 5129: "evaluate" optimized away]; GHC bug tracker. |
||
Latest revision as of 00:16, 8 September 2020
As the Haskell 2010 Report does not specify any order of evaluation with respect to its parameters, the name of the primitive seq :: a -> b -> b
is a misnomer.
Introduce the primitive amid
, with the same (Haskell 2010 Report) requirements:
infixr 0 `amid`
primtive amid :: a -> b -> b
infixr 0 $!
($!) :: (a -> b) -> a -> b
f $! x = x `amid` f x
This frees the name "seq" for use with a new primitive, analogous to the GHC primitive pseq
, but not restricted to parallel programming.
If needed, "amidst" is one alternate basename for the deepseq library and its definitions.
References:
- Thread: seq vs. pseq, Haskell mail archive.
- Ticket# 5129: "evaluate" optimized away; GHC bug tracker.
Atravers 01:17, 7 January 2019 (UTC)