and protocols. • If you implement withKeywordArguments: and don’t implement withArguments:, your type can still be called without parameter labels – you’ll just get empty strings for the keys. • If your implementations of withKeywordArguments: or withArguments: are marked as throwing, calling the type will also be throwing. • You can’t add @dynamicCallable to an extension, only the primary definition of a type. • You can still add other methods and properties to your type, and use them as normal.