# is?
Check if a value is of a given type. For user-defined types the check
walks the whole parent chain (`<<`), so a subtype is also `is?` its
ancestors.
## Syntax
[is? $type-name $value]
## Examples
[is? "number" 42] # true [is? "string" "hi"] # true [is? "number" "hi"] # false [is? "Point" $p] # true (user-defined type — name as a string) # Hierarchy: Puppy << Dog << Animal [is? "Animal" %Puppy{ :name "Rex" }] # true
## Returns
Boolean. The type name is a string (`"number"`, not `:number`).
Tagged maps also satisfy `[is? "map" ...]`.
## See Also
`type`, `nil?`, `satisfies?`, `deftype`