generalizing the type of wrapErrors
evalExpr bypasses the hawk function

it was easier to reimplement the parts of the hawk function which I
needed than to refactor the function into the shape I needed.