For instance to be able to express “the tunes that appear in a set by Niols”. This probably requires disentangling the filters and the models, and making them mutually recursive. We could define the filters in the models but without a specific type for the other filters, eg.:
type ('versionf, 'dancef) tune_filter = ...
and then we'd have a module Filter containing all of them? Or maybe the filters should just be defined immediately in the same module, that would probably work too. It would also make some other code much clearer I think.
For instance to be able to express “the tunes that appear in a set by Niols”. This probably requires disentangling the filters and the models, and making them mutually recursive. We could define the filters in the models but without a specific type for the other filters, eg.:
and then we'd have a module
Filter
containing all of them? Or maybe the filters should just be defined immediately in the same module, that would probably work too. It would also make some other code much clearer I think.