I think it is better not making this class an interface, but leave it for general masking. If we want special care for some type, say IPv[46], then we'll extend this class for this type (as I did for IPv[46] for toString). What do you think?