<div dir="ltr"><div>Hello list,</div><div><br></div><div>Is the following behavior intended? or an oversight?</div><div><br></div><div>Prelude Control.DeepSeq> tail ((undefined :: ()) `seq` 1 : [])<br>*** Exception: Prelude.undefined<br>CallStack (from HasCallStack):<br>  error, called at libraries/base/GHC/Err.hs:80:14 in base:GHC.Err<br>  undefined, called at <interactive>:5:8 in interactive:Ghci2<br>Prelude Control.DeepSeq> tail ((undefined :: ()) `deepseq` 1 : [])<br>[]</div><div><br></div><div>If you're wondering what's happening, there is a (builtin) fixity declaration for 'seq':</div><div>infixr `seq` 0</div><div><br></div><div>But there isn't one for `deepseq`.</div><div><br></div><div>So</div><div><br></div><div>undefined `seq` 1 : []</div><div><br></div><div>is parsed as<br></div><div><br></div><div>undefined `seq` (1 : [])</div><div><br></div><div>while</div><div><br></div><div>undefined `deepseq` 1 : []</div><div><br></div><div>is parsed as</div><div><br></div><div>(undefined `deepseq` 1) : []</div><div><br></div><div>In a real-life use-case, changing `seq` to `deepseq` actually resulted in a (very unanticipated) space-leak for me. So again, is the lack of fixity declaration for deepseq intentional? or an accidental omission?</div><div><br></div><div>Best regards,</div><div><br></div><div>Christiaan<br></div><div><br></div><div><br></div></div>