FILE fqName:<root> fileName:/fixationOrder1.kt
  FUN name:foo visibility:public modality:FINAL <X, Y> () returnType:kotlin.Function1<X, Y> flags:
    TYPE_PARAMETER name:X index:0 variance: superTypes:[kotlin.Any?]
    TYPE_PARAMETER name:Y index:1 variance: superTypes:[kotlin.Any?]
    BLOCK_BODY
      RETURN type=kotlin.Nothing from='foo(): (X) -> Y'
        CALL 'TODO(): Nothing' type=kotlin.Nothing origin=null
  CLASS INTERFACE name:Inv2 modality:ABSTRACT visibility:public flags: superTypes:[kotlin.Any]
    $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:Inv2<A, B> flags:
    TYPE_PARAMETER name:A index:0 variance: superTypes:[kotlin.Any?]
    TYPE_PARAMETER name:B index:1 variance: superTypes:[kotlin.Any?]
    FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:
      overridden:
        FUN IR_EXTERNAL_DECLARATION_STUB name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
      VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:
    FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int flags:
      overridden:
        FUN IR_EXTERNAL_DECLARATION_STUB name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int flags:
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
    FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:
      overridden:
        FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
  FUN name:check visibility:public modality:FINAL <T, R> (x:T, y:R, f:kotlin.Function1<T, R>) returnType:Inv2<T, R> flags:
    TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
    TYPE_PARAMETER name:R index:1 variance: superTypes:[kotlin.Any?]
    VALUE_PARAMETER name:x index:0 type:T flags:
    VALUE_PARAMETER name:y index:1 type:R flags:
    VALUE_PARAMETER name:f index:2 type:kotlin.Function1<T, R> flags:
    BLOCK_BODY
      RETURN type=kotlin.Nothing from='check(T, R, (T) -> R): Inv2<T, R>'
        CALL 'TODO(): Nothing' type=kotlin.Nothing origin=null
  FUN name:test visibility:public modality:FINAL <> () returnType:Inv2<kotlin.String, kotlin.Int> flags:
    BLOCK_BODY
      RETURN type=kotlin.Nothing from='test(): Inv2<String, Int>'
        CALL 'check(T, R, (T) -> R): Inv2<T, R>' type=Inv2<kotlin.String, kotlin.Int> origin=null
          <T>: kotlin.String
          <R>: kotlin.Int
          x: CONST String type=kotlin.String value=""
          y: CONST Int type=kotlin.Int value=1
          f: CALL 'foo(): (X) -> Y' type=kotlin.Function1<kotlin.String, kotlin.Int> origin=null
            <X>: kotlin.String
            <Y>: kotlin.Int
  FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String flags:
    BLOCK_BODY
      VAR name:x type:Inv2<kotlin.String, kotlin.Int> flags:val
        CALL 'test(): Inv2<String, Int>' type=Inv2<kotlin.String, kotlin.Int> origin=null
      RETURN type=kotlin.Nothing from='box(): String'
        CONST String type=kotlin.String value="OK"
