On Thursday, 22 September 2016 at 20:35:13 UTC, e-y-e wrote:

Disclaimer: my answers are just early guesses.

1. Why is openRight a runtime flag? Is there really a use case for this?

Runtime evaluation is more flexible. The reason to have compile-time evaluation is to allowed aggressive specialization, highly tuned codegen and different attribute inference. If that flag is going to add a single very cheap branch (compared to the total cost), then it may not be worth to have it as a compile-time argument, as this would increase the number of instantiations and slightly reduce the flexibility.

But there is a second possible explanation, see below.

2. Why is openRight not a Flag type?

It may be that until is quite old, predating the extensive usage of Flag, and maybe also the extensive use of compile-time flags.

Reply via email to