This is a toy language that compiles to Scheme so it can use the Scheme evaluator on open terms, then read back from Scheme to its syntax.
That last example runs instantly. In contrast, the Idris evaluator takes 15 seconds on the equivalent. I might have some fun with this...
Okay, so I've actually got a bit further, it's just that I didn't think of that joke (if that's what it is) until now. #lightningwit
The scheme based evaluator seems to be just the teensiest bit faster...
This is important because type checking interesting dependently typed programs fundamentally relies on this evaluator. As it stands now, if Idris is slow to type check something, it's almost always the evaluator.
So I hope I can fill in those remaining holes! Place Your Bets...