-type type() :: #{'__type__' => 'erlang.Type', name => atom()}.
-spec '__new__'(atom()) -> type().
-spec 'extends?'(type(), type()) -> boolean().
-spec 'instance?'(type(), any()) -> boolean().
-spec module(type()) -> module().
-spec 'satisfies?'(type(), any()) -> boolean().