+ the_arg_ty = head (dataConOrigArgTys the_datacon)
+ -- NB: we use the arg type of the data constructor, rather than
+ -- the representation type of the newtype; in degnerate (recursive)
+ -- cases the rep type might be (), but the arg type is still T:
+ -- newtype T = MkT T
+