86 add invocable concept

https://github.com/kfgodel/diamond/issues/86