This is a named parameter:
def foo(bar: => Boolean): Boolean = bar
And this is a function parameter:
def foo(bar: () => Boolean): Boolean = bar()
How do the two declarations differ? Both will be evaluated lazily and each time the parameter is accessed? Is there an advantage to one syntax or the other? Would the former connote a pure function versus one with side effects for the latter?