The main class which abstracts over delivery of datatype to somewhere in the file system.
It also abstracts over construction. Due to some weirdity w.r.t. Hint, this, and all instancing
datatypes, must derive Typeable. A bit of boilerplate, but deriving generally handles it easily.