Open fabianhjr opened 3 years ago
This is because of the auto implicit which normalises the goal before starting, in order to check that the determining arguments have a concrete value. We need this because auto search isn't allowed to solve holes in determining arguments. As things stand, the rules say there must be no holes at all in the value, which involves fully normalising. Making the range functions public means that the evaluator needs to do a lot more work to get to the normal form.
So, I'm not surprised this happens, in the end. We can make it go quite a bit quicker by switching to CBV evaluation - and that's just a flag to the evaluator, so I might do that for auto search since it needs a normal form - but in general you will see this behaviour for auto search.
Steps to Reproduce
Time the test case from #1581 with #1602
Expected Behavior
Typecheck quickly
Observed Behavior