[GHC] #1665: rnf should work for any value or rnf should be
implemented in the compiler
GHC
trac at galois.com
Wed Sep 5 10:31:16 EDT 2007
#1665: rnf should work for any value or rnf should be implemented in the compiler
--------------------------------+-------------------------------------------
Reporter: iampure at gmail.com | Owner:
Type: feature request | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 6.7
Severity: normal | Keywords:
Difficulty: Unknown | Os: Unknown
Testcase: | Architecture: Unknown
--------------------------------+-------------------------------------------
Currently rnf is implemented in a type class NFData in
Control.Parallel.Strategies. This is not general enough, since it doesn't
work for values that only exist in a monad. E.g. something built in the ST
monad that uses unsafeInterleaveST cannot be converted to head normal form
via rnf, since it cannot return a "Done" value, only a ST s Done value.
A solution would be to have the function rnf implemented in the compiler.
Its specification would be to evaluate its argument to head normal form
and then return it. This is much more convenient to users, since they
don't need to implement the boiler-plate code for every data type
encountered.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/1665>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the Glasgow-haskell-bugs
mailing list