Add psalm annotations - [ ] Fix all issues found by psalm - [x] Increase type specificity - [x] Add `@psalm-pure` - [x] Add `@psalm-assert` - [ ] Add proper support for more complex cases like `compose` ### Type specificity - [x] Average - [x] ButLast - [x] Capture - [x] CompareObjectHashOn - [x] CompareOn - [x] Compose - [x] Concat - [x] ConstFunction - [x] Contains - [x] Converge - [ ] Curry - [ ] CurryN - [x] Difference - [x] DropFirst - [x] DropLast - [x] Each - [x] Equal - [x] ErrorToException - [x] Every - [x] Exceptions/InvalidArgumentException - [x] Exceptions/MatchException - [x] False - [x] Falsy - [x] Filter - [x] First - [x] FirstIndexOf - [x] FlatMap - [x] Flatten - [x] Flip - [x] Functional - [x] GreaterThan - [x] GreaterThanOrEqual - [x] Group - [x] Head - [x] Id - [x] Identical - [x] IfElse - [x] IndexesOf - [x] Intersperse - [x] Invoke - [x] InvokeFirst - [x] InvokeIf - [x] InvokeLast - [x] Invoker - [x] Last - [x] LastIndexOf - [x] LessThan - [x] LessThanOrEqual - [x] LexicographicCompare - [x] Map - [x] Match - [x] Maximum - [x] Memoize - [x] Minimum - [x] None - [x] Noop - [x] Not - [x] OmitKeys - [x] PartialAny - [x] PartialLeft - [x] PartialMethod - [x] PartialRight - [x] Partition - [x] Pick - [x] Pluck - [x] Poll - [x] Product - [x] Ratio - [x] ReduceLeft - [x] ReduceRight - [x] Reindex - [x] Reject - [x] Repeat - [x] Retry - [x] Select - [x] SelectKeys - [x] SequenceConstant - [x] SequenceExponential - [x] SequenceLinear - [x] Sequences/ExponentialSequence - [x] Sequences/LinearSequence - [x] Some - [x] Sort - [x] Sum - [x] SuppressError - [x] Tail - [x] TailRecursion - [x] TakeLeft - [x] TakeRight - [x] Tap - [x] True - [x] Truthy - [x] Unique - [ ] With - [ ] Zip - [ ] ZipAll ### Issues - invoker(), invoke(), partial_method(): no way to annotate method names properly: https://github.com/vimeo/psalm/issues/2500 - Recursive types are not implemented (problem for `compose`, `curry`, etc.): https://github.com/vimeo/psalm/issues/2499
Add psalm annotations
@psalm-pure@psalm-assertcomposeType specificity
Issues
compose,curry, etc.): Mixing templates and types seems to confuse psalm vimeo/psalm#2499