FILE: implicitTypes.kt
    public final fun <T, R> use(x: R|(T) -> R|): R|(T) -> R| {
        ^use R|<local>/x|
    }
    public final fun foo(): R|(kotlin/String) -> kotlin/Int| {
        ^foo R|/use|<R|kotlin/String|, R|kotlin/Int|>(::R|/bar|)
    }
    public final fun bar(x: R|kotlin/String|): R|kotlin/Int| {
        ^bar Int(1)
    }
    public final fun loop1(): R|(ERROR CLASS: Cannot infer argument for type parameter T) -> ERROR CLASS: Cannot infer argument for type parameter R| {
        ^loop1 <Inapplicable(INAPPLICABLE): /use>#<R|ERROR CLASS: Cannot infer argument for type parameter T|, R|ERROR CLASS: Cannot infer argument for type parameter R|>(::<Unresolved reference: loop2>#)
    }
    public final fun loop2(): <ERROR TYPE REF: cycle> {
        ^loop2 R|/loop1|()
    }
