Prevent importing ngrams which will lead to loops
Second part of #498. Depends on !433.
This MR extends the ngrams machinery such that if we were to try importing ngrams which would lead to loops, GGTX will now reject it.
@cgenie one for you after the holidays -- at the moment what will happen is that the async worker will fail with an exception, logging it but without emitting a FrontEndError
, so users would be left clueless. What's the correct way to report errors via the async worker API?