The cygwin B20.1 distribution comes with Tcl/Tk 8.0 included, DLLs which (naturally) have been compiled up to depend on the cygwin DLL. For reasons 'outlined' in the previous paragraph, using these Tcl/Tk DLLs from ghc-compiled code is not going to work very well.
In the case of TclHaskell, I don't know what the version requirements are, but it should at least work together with Tcl/Tk 8.0; perhaps newer releases as well..?
http://www.acc.umu.se/~anorland/gnu-win32/index.htmlOnce you have downloaded pexports-0.41.zip, you'll want to be using mingwbin/pexports.exe from within that bundle. Install it somewhere along your PATH.
Put a copy of this Makefile in the bin/ directory that the Scriptics installer for Tcl/Tk left behind. Open up a command shell window of choice and cd down into that directory and type make (where make == GNU make.) All being well (make, pexports and dlltool) being reachable via your PATH), it should then produce a collection of .a import libs corresponding to the DLLs in that directory.
The ghc-win32 driver takes care of feeding this option to gcc whenever it invokes it, so it may be worth your while modifying your Makefiles, substituting gcc with ghc ("GHC, a better GCC" ;-)