Define a generic archive file-reading function capable of reading ZIP files (archive/zip) and POSIX tar filex (archive/tar).
Use a registration mechanism sililar to the one described above so that support for each file format can be plugged in using blank imports.