The following code snippet doesn't work anymore in the current Swift 3 snapshot:
> main.swift:18:30: Cannot convert value of type '() -> Void' to expected argument type '(() -> Void)?'
My guess is that the type checker thinks that `(() -> Void)?` is interpreted as a tuple type. But the parens are only necessary to make the closure optional. Interestingly this only happens with function types. `(String)?` e.g. type checks correctly.
The following snippet works as expected: