+
+ | EqInst { -- delayed unification of the form
+ -- co :: ty1 ~ ty2
+ tci_left :: TcType, -- ty1
+ tci_right :: TcType, -- ty2
+ tci_co :: Either -- co
+ TcTyVar -- a wanted equation, with a hole, to be
+ -- filled with a witness for the equality
+ -- for equation generated by the
+ -- unifier, 'ty1' is the actual and
+ -- 'ty2' the expected type
+ Coercion, -- a given equation, with a coercion
+ -- witnessing the equality
+ -- a coercion that originates from a
+ -- signature or a GADT is a CoVar, but
+ -- after normalisation of coercions,
+ -- they can be arbitrary Coercions
+ -- involving constructors and
+ -- pseudo-constructors like sym and
+ -- trans.
+ tci_loc :: InstLoc,
+
+ tci_name :: Name -- Debugging help only: this makes it easier to
+ -- follow where a constraint is used in a morass
+ -- of trace messages! Unlike other Insts, it has
+ -- no semantic significance whatsoever.
+ }