Type Annotations in the Presence of Injective Type Families, Bidirectional Pattern Synonyms, and Data Kinds