You hide details without exporting things. So there are two comparisons. One is exported and not exported:
The other is thinner, and one RWH is probably trying to highlight, and this is type vs. newtype :
-- hidden, as before module Foo (Parse) where newtype Parse a = Parse { superSecret :: a } -- not hidden: it is readily observable that "Parse a" is identical -- to "a", and moreover it can't be fixed because there nothing -- to hide module Foo (Parse) where type Parse a = a
source share