declaration/definition
declare opaque type-name created by external-function-name
The opaque keyword is used to define a new opaque data type name.
opaque