+ mk_qual draw_from (con_field, str_left)
+ = (HsVar str_left, -- what to draw from down the line...
+ BindStmt
+ (TuplePatIn [VarPatIn con_field, VarPatIn str_left])
+ (HsApp (HsApp (HsVar readsPrec_RDR) (HsLit (HsInt 10))) draw_from)
+ tycon_loc
+ )
+
+ result_expr = ExplicitTuple [con_expr, if null bs_needed
+ then d_Expr
+ else HsVar (last bs_needed)]
+
+ stmts = (con_qual : field_quals) ++ [ReturnStmt result_expr]
+