The idea in the end is to provide a language for working on memory concurrently. You either choose speak it or not.
The idea in the end is to provide a language for working on memory concurrently. You either choose speak it or not.
In any case, the unsafeness of unsafePerformIO and importing an FFI function as a pure function are not reflected in the type in Haskell. These are things that can and do happen.
My point was that the ability to go outside the bounds of a language does not necessarily make the language useless.
There are no implications, that's the point.
> the unsafeness of unsafePerformIO and importing an FFI function as a pure function are not reflected in the type in Haskell
Yes, that is correct behaviour; if it was reflected in the type it'd be call safePerformIO.
It's reflected in safe Haskell annotations. Unfortunately nobody cares about those. Haskell has a culture problem regarding safety, just like most other languages, both high level and low level (with the exception of Java, that don't make data races UB)