fun id(arg: K): K = arg fun materialize(): M = TODO() fun test(b: Boolean) { id(if (b) { id(unresolved) } else { id( materialize() ) }) }