Constraint solver iterations

amindfv at gmail.com amindfv at gmail.com
Thu Apr 27 15:18:17 UTC 2017


To build the 'vivid' package (on Hackage) with recent versions of GHC (I believe the problem is with 8.0+, didn't see it before then), I need to compile with -fconstraint-solver-iterations=0. (0 meaning unbounded)

However, I noticed today that the GHC docs say "Typically one iteration suffices; so please yell if you find you need to set it higher than the default."

The code (in Vivid.SynthDef.FromUA) uses a large amount of type family recursion. Is this not a case where I should be yelling? If I should be, I can provide a smaller repro case.

If this is expected, are there techniques for rewriting the code in a way that'll fit under the default number of iterations? I've tried rewriting, making the number of iterations logarithmic instead of linear (e.g. by appending lists instead of cons-ing), but still hit the problem (even with an increased but bounded number of iteration steps).

Thanks!
Tom


More information about the ghc-devs mailing list