Data structure,data type and abstract data type;
architecture for extended abstract data flow
A file is an abstract data type defined and implemented by the operating system.
They typically fall short when used to examine arbitrary or abstract data presented in more than two dimensions.
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.