signature class Foo; class FooImpl extends string { FooImpl() { this = "foo" } } signature module ParamSig { F getThing(); } module ParamImpl implements ParamSig { FooImpl getThing() { any() } } module ParamMod Impl> { FooImpl getTheThing() { result = Impl::getThing() } } FooImpl foo() { result = ParamMod::getTheThing() }