+ -- we are gong to get all the methods for the newtype
+ -- dictionary
+
+ -- To account for newtype family instance, we need to get the family
+ -- tycon and its index types when costructing the type at which we
+ -- construct the class instance. The dropped class parameters must of
+ -- course all be variables (not more complex indexes).
+ --
+ origHead = let
+ (origTyCon, tyArgs) = tyConOrigHead tycon
+ in mkTyConApp origTyCon (take n_tyvars_to_keep tyArgs)