Text this: Contract-driven data structure repair : a novel approach for error recovery