[ topological-sort-failed ] unless* ;
: sort-classes ( seq -- newseq )
- [ class-name ] sort-with >vector
+ [ class-name ] sort-by >vector
[ dup empty? not ]
[ dup largest-class [ swap remove-nth! ] dip ]
produce nip ;
: smallest-class ( classes -- class/f )
[ f ] [
- natural-sort <reversed>
- [ ] [ [ class<= ] most ] map-reduce
+ inv-sort [ ] [ [ class<= ] most ] map-reduce
] if-empty ;
: flatten-class ( class -- seq )