Yes, GHC supports Concurrent Haskell by default. But without the multi-threaded RTS, it doesn’t work as well as people expect - see this thread for more details.
Perhaps the more important feature that would be provided is parallelism, because of the use of a certain unsafe
kludge which allows:
- an
IORef
to be defined at the top level; - the use of
IO
actions to be “camouflaged”.
I foresee more than a few difficulties in the future when people start using the parallel features of Haskell with definitions purporting to be free of observable effects, only to notice things no longer worked like they used to (if at all). Furthermore, it would make “helpful advice” provided in articles like this less so: