See CarHoare (not to be confused with C''''''arHire)