Made order of definitions irrelevant

This means type definitions can accompany their functions