complex terms in upper or lower annotations
In annot(lower, X,T), T cannot be a function or a tuple (e.g. annot(lower, X,f(T)) or annot(lower, X,(f,T)) )
In annot(lower, X,T), T cannot be a function or a tuple (e.g. annot(lower, X,f(T)) or annot(lower, X,(f,T)) )