Modules for the same task should implement a common signature, so that module consumers can easily exchange them and find the best one for their problem.
This directory collects specifications of common signatures. We expect it to grow over time, as modules are created for a wider variety of tasks.
In the best case, the specification of a common signature provides strong enough
guarantees such that consumers can call just output = module(inputs)
without
knowing anything about the module's internals. If some adaptation is
unavoidable, we propose to supply library functions to encapsulate it, and
document them along the signature.
In any case, the goal is to make exchanging different modules for the same task as simple as switching a string-valued hyperparameter.