This is hack until Waffle declares formal typespecs in its own project.
definition() :: module()
file() :: %Waffle.File{ binary: term(), file_name: term(), is_tempfile?: term(), path: term() }
meta() :: {file(), any()}
version() :: atom() | String.t()