As a rule, generic traits should not use one-another. The traits should be all "flat" so that they can be composed as needed for every language (this comes from [FAST-Fortran #175](https://github.com/moosetechnology/FAST-Fortran/issues/175))