Change `Ops` traits to be sealed abstract classes

This communicates that users should not extend these classes directly and should also allow for adding methods without breaking binary compatibility.