Moved invoke constraints to complex-constraints because they are subtypes, not equality