Field equality

Hrmm ... I don't know if I can get behind that. I could agree with a number of weaker statements:

    It's true that pure functions can go wrong in less ways when misused.
    It's true that algebraic data types reduce (but do not eliminate) the need for data abstraction.
    It's true that Haskell has for the most part developed a culture of using namespaces to separate official API from under the hood code, and that seems to work pretty well.

But there are still many dangers to exposing implementations. It limits your ability to change the internals without breaking user code, and hence makes it harder to change the api. It allows you to create invalid values for abstract types which may behave badly or throw exceptions later down the line. I think using namespaces to separate official API from under the hood stuff is a good way of implementing access controls, but it's not true to say there is little danger to having no access control.

Besides, we do a lot of impure code too. :)