[Haskell] ANNOUNCE: HasFuse V1.1

David Sabel dsabel at stud.uni-frankfurt.de
Tue Feb 3 16:57:56 EST 2004

                          HasFuse Version 1.1

HasFuse is a modification of the Glasgow Haskell Compiler which has
built-in some precautions for the execution of unsafePerformIO, hence
the name "HasFuse". This means the user does not have to undertake 
the proof obligation that the timing of an I/O-operation wrapped by
unsafePerformIO is independent from each other I/O-operation. 

HasFuse is available as a patch of the GHC 5.04.3 source code from


On the same location, building instructions and further documentation
can be found.

The semantics of programs which make use of unsafePerformIO is given
by the nondeterministic call-by-need calculus FUNDIO. This calculus
provides an I/O-interface, which can be used to model direct-call
I/O within Haskell. 

The FUNDIO-calculus is published in the technical report "Frank-16",


The results of applying the FUNDIO semantics to Haskell and the 
(FUNDIO-) correctness of those program transformations which are 
performed by the GHC are available as "Technical Report Frank-17"


Changes from version 1.0 to 1.1:
HasFuse provides a new flag -fno-hasfuse, which runs the GHC in 
GHC mode, i.e. all optimisations performed by the original GHC
are turned on. 

More information about the Haskell mailing list