let premap : ('a -> 'b) -> ('b, 'r) withres -> ('a, 'r) withres = fun ab wbr -> { cons = ab %> wbr.cons; fin = wbr.fin; }