# satisfies? Check whether a value implements a named protocol, returning `true` or `false`. Looks up the value's type name (a tagged map's tag, or the built-in type name) and searches the type registry for a `defimpl` of that protocol, walking the type's inheritance chain. ## Syntax
[satisfies? $val $protocol-name]
## Parameters - `$val` — Any value: a tagged-map instance, or a built-in type such as a list, map, string, or array. - `$protocol-name` — Protocol name as a string, e.g. `"Drawable"`. A keyword or other type is rejected with `%Err{:message expected string argument}`. ## Examples
defprotocol Showable %{ show {} }
deftype Point %{ x %{} y %{} }
defimpl Point Showable { show {|| "Point"} }

[satisfies? [Point 1 2] "Showable"]   # → true
[satisfies? 42 "Showable"]            # → false
## Returns Boolean — true when a `defimpl` of `$protocol-name` is registered for the value's type or an ancestor type; false otherwise. ## See Also `defprotocol`, `defimpl`, `deftype`, `type`