As for given aliases, it’s unclear if they are evaluated once or on every given inference. The abstraction over vals, lazy vals, or defs is hurting in this case.
The documentation has the following example:
given global: ExecutionContext = new ForkJoinPool()
What will happen with the following:
summon[ExecutionContext]
summon[ExecutionContext]
Is new ForkJoinPool()
called twice or not?