Traits/interfaces in Fortran?

Yes, but the usage may not be quite so succinct.