Type constraints such as BoolLike and SignlessIntegerLike appear to
have been defined by copy-paste and all share an underlying TypesLike
structure that can be factored out.
This also allows for defining additional constraints of a similar
form, such as F32Like.
Can this be renamed to something that encodes that fact that it includes Tensor/Vector? The name is a bit too general (which is also a problem of the fact that OpBase is a monolith of a file).