I've now added several structs that implement error.  I'm leaving the errHandler signature as is, but the user can call IsCloseError(err) for example to figure out if it is a CloseError or they can do a type switch.