---
# System prepended metadata

title: Psalm workshop
tags: [soisy]

---

###### 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
