The ops traits return `Self::Output` not `Self`. The current code builds because `Self` and `Self::Output` are both the same type. Use `Self::Output` as the return value of `ops::Rem`.