struct z { }; struct s { }; concept Add { type result; }; model Add { type result = Y; }; model where { Add } Add, Y> { type result = s.result>; }; fun foo(Add,s >.result) { } fun main() -> int@ { let x = @s< s >(); foo(x); return 0; }