-- = (\a1..an \x1..xn. [])
| WpCast Coercion -- A cast: [] `cast` co
- -- Guaranteedn not the identity coercion
+ -- Guaranteed not the identity coercion
+
+ | WpApp Var -- [] d the 'd' is a type-class dictionary or coercion variable
- | WpApp Var -- [] d the 'd' is a type-class dictionary
| WpTyApp Type -- [] t the 't' is a type or corecion
+ -- ToDo: it'd be tidier if 't' was always a type (not coercion),
+ -- but that is inconvenient in Inst.instCallDicts
+
| WpLam Var -- \d. [] the 'd' is a type-class dictionary or coercion variable
| WpTyLam TyVar -- \a. [] the 'a' is a type variable (not coercion var)
| WpInline -- inline_me [] Wrap inline around the thing