Draft of the file::file_base abstract class.