###### tags: `soisy` # Psalm workshop - types - `positive-int` - `class-string` and `class-string<Foo>` - `array-key` - `array` vs `list` vs `array{foo: int, bar:string}` - `callable` - `void` - `mixed` - typing callables - union types (`strpos`) - intersection types (array `+`) - contants as types - Stringable object is not a string - assert - readonly, mutation-free, immutable, pure - generics - phantom types - brands - security analysis