[Haskell-cafe] Re: ANN: Elerea, another FRP library
g9ks157k at acme.softbase.org
Wed Apr 15 07:21:15 EDT 2009
Am Mittwoch, 15. April 2009 09:03 schrieb Achim Schneider:
> I don't think using dirty tricks to implement FRP deserves flak, at
> all, from my POV, it sounds like complaining that the IO monad is
> implemented using C... meaning that if you're that close to bare
> thunks, you have every right to use any means necessary to make them
> behave properly.
It depends. Using unsafe stuff internally, might be acceptable and sometimes
necessary. I also use unsafePerformIO in Grapefruit for implementing CSignals
although I’m not very comfortable with this.
On the other hand, breaking referential transparency in the external interface
is a very bad idea, in my opinion. Actually, this means that the library user
would have to turn certain compiler optimizations off to get the intended
behavior. Just have a look at the Haddock docs of unsafePerformIO. In my
earlier years of Haskell programming, I thought that unsafePerformIO is not
too bad but I had to discover that it can quickly lead to a catastrophe.
More information about the Haskell-Cafe