This is not optimal, but there are reasons for that:

- in some cases we need things organised. For instance `Label` should always come after everything.
- it's easier to read the output code, because you have `Attribute`, then `Fact`, and so on... Easier debugging.

I think, the best thing here would be to have a lookup dict that would allow to get sublists of the list of columns, regarding their types. I'll add a FIXME here and open a task.