(* The construct (del RE STR)? must raise an error from the typechecker *) (* since there's no way for the put of '?' to determine whether the del *) (* should be used or not - that decision is made by looking at the tree *) (* alone. *) module Fail_del_maybe = let indent = (del /[ \t]+/ " ")?