Thanks for starting the discussion, Hugo.
Richard weighed in on the issue stating that making distance calculations use AGs is an important change for the future and that the proposed implementation is the right way to do it.
My understanding is that the changes do not break backwards-compatibility but I’d like this confirmed.
IIRC the reasons for keeping lib free of any MDA-specific imports were
1) avoiding cyclical imports
2) improving interoperability (so that anything in lib could also be used elsewhere)
I don’t think that (2) is a particularly strong argument because importing MDA just for lib still imports all the other core things. We don’t provide a way to only import lib and nothing else.
This leaves (1). Will cyclical imports be an issue with the new proposed changed?
Duplicating code or writing thin wrappers just to uphold the lib/core separation seems messy. Therefore, if cyclical imports are not a problem then I don’t see a reason to keep core data structures strictly separate from lib.
Oliver