A wrapper for opaqueness.
t() :: %Type.Opaque{ module: module(), name: atom(), params: [Type.t()], type: Type.t() }