Fix bug in collection of functions

* rework __combined type inference
* add missing callable trait for variant functions
* fixes a few bug in typing and aliasing handling when handling
  collections of function
* validate the whole stuff

This commit closes #71