Ah, my example was of course wrong again -.- The caller should’ve looked like this (although I think you get the point):
```Swift fetchUsers { users in // `users` is inferred to be an array of `User`s } ``` Regards On 4 Feb 2017, 16:41 +0100, ilija.tov...@me.com, wrote: > Hey Stephen > > > You don't *have to* specify types at all. If you want to use PHP without > > verifying/requiring types, thats your prerogative, but given the recent > > improvements to allow scalar type hinting, I think it’s a mistake to say > > that *any* use of type hints is “not recommended”. > > Sure you don’t but then you loose all the benefits of specifying types. We > want typing but only if we don’t have to specify types all over the place. I > really dislike having to add PHPDocs everywhere just to get some proper > autocompletions. > > > I'm not sure if you've mixed up your terms of if I'm too tired but I don't > > understand what you mean here. The short arrow function *is* the callee, > > and that’s where you’re suggesting we shouldn’t use type hints. > > Sorry, that was confusing. I was thinking of a situation like this one: > > ```Swift > func fetchUsers(callback: ([User]) -> Void) { > ... > } > ``` > > So, the callee (`fetchUsers`) defines what the provided closure must look > like. > The caller, on the other hand, doesn’t have to specify that again as you’re > just repeating yourself. > > ```Swift > fetchUsers { user in > // `user` is inferred to be a `User` object > } > ``` > > So I don’t think the burden of providing typing information should be on the > caller providing the closure. > > > The whole issue with that is that using a pipe character could make things > > much less clear/readable if the already established use of pipe for “type > > unions” (currently used in multi-catch) were to be implemented for general > > type hint usage. > > > > Note: I’m not saying it’s not possible, but it’s *much* less readable, and > > any “solution” just adds more characters, which is apparently the only > > reason to not use function($foo) => $foo in the first place. > > But again, that’s personal preference. I like short a precise and think it’s > more readable. Not everyone’s the same. > > > For most people readability isn't just about the number of characters. > > A lot of the time it is. Brains are very good at recognising patterns, they > don’t need large keywords for that. > As for me, I think it just adds clutter to the actual logic that I’m > interested in. >