make default implementation of ! consistent with all other implementations and document it