callablep does a good job of showing what is and isn't callable. The compiler appears to be stricter than the runtime. Should that be changed?
Pike v8.1 release 2 running Hilfe v3.5 (Incremental Pike Frontend) > ({})(); Compiler Error: 1: Attempt to call a non function value empty array. Compiler Error: 1: Expected: function. Compiler Error: 1: Got : array(zero). > array a = ({}); > a(); (1) Result: ({ }) > callablep( ({}) ); (2) Result: 1 > callablep( a ); (3) Result: 1