My apologies for the question. I've worked with the library for a couple of months now and have missed the point of the two class definitions: HasObjectDefinition and HasAnnotatedType.
Do we only use HasAnnotatedType when we want to specify that our object can be null? And if so, required when our type is wrapped by Maybe?
(in non-Haskell implementations, it is a definition to specify non-null)
Thank you in advance for clarifying.