Object.MappedType
type t'('M, 'T) = {
key_tparam: Type.TypeParam.t('M, 'T),
prop_type: Type.t('M, 'T),
source_type: Type.t('M, 'T),
variance: option(Variance.t('M)),
optional: optional_flag,
comments: option(Syntax.t('M, unit)),
};
and t('M, 'T) = ('M, t'('M, 'T));