The kind is not declared
In Python a parameter does not say its kind. The kind is decided by what you pass. That is flexible but means a wrong kind shows up only when the function runs.
Steps decide the kind
A function works on whatever kind its steps accept. Writing steps that only use kind-safe operations, like len, lets one function serve several kinds.