The list of declared functions is managed as a set of IPhpCallable instances by Context.

Library functions may accept an argument of type IPhpCallable. It is a well known argument type and the compiler and the runtime will convert passed value to IPhpCallable implicitly using construction.