Add support for static introspection

In acse a returned type is an abstract type be able
to return a specific inherited type