commit pattern match, don't cast