Probably the best you can do is to spec it as module - the type system is not powerful enough to express something more advanced.
The idea to add @type t :: module in the behaviour is probably a good one. While it’s still the same when checked with dialyzer, it expresses much more when treating type specs as documentation.






















