Type predicate

A parameter is Type return annotation that lets a function communicate narrowing to its caller.

Also known as user-defined type predicate

Used in