Data structure,data type and abstract data type;
Haskell, being purely functional, goes as deep as redefining the way we treat abstract data types, the same way Wittgenstein goes back to Socrates' dialectic to reform modern philosophy.
A file is an abstract data type defined and implemented by the operating system.