If the procedure also accepts keyword arguments, the
prototype is of the form:
(foo a b #!key key1: key2:)
This indicates that the procedure in addition accepts two keyword
arguments. The names of the keyword arguments indicate the
keywords that are used to specify them and do not constrain
the type.