// MODULE: lib1
MODULE_FRAGMENT name:<lib1>
  FILE fqName:lib1 fileName:/lib1.kt
    CLASS INTERFACE name:I signature:lib1/I|null[0] modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
      thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:lib1.I
      FUN name:interfaceFun signature:lib1/I.interfaceFun|interfaceFun(kotlin.Int){}[0] visibility:public modality:ABSTRACT returnType:kotlin.Unit
        VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:lib1.I
        VALUE_PARAMETER kind:Regular name:default index:1 type:kotlin.Int
          EXPRESSION_BODY
            CONST Int type=kotlin.Int value=42
      CLASS OBJECT name:Companion signature:lib1/I.Companion|null[0] modality:FINAL visibility:public [companion] superTypes:[kotlin.Any]
        thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:lib1.I.Companion
        CONSTRUCTOR signature:lib1/I.Companion.<init>|<init>(){}[0] visibility:private returnType:lib1.I.Companion [primary]
          BLOCK_BODY
            DELEGATING_CONSTRUCTOR_CALL 'kotlin/Any.<init>|<init>(){}[0]'
            INSTANCE_INITIALIZER_CALL classDescriptor='lib1/I.Companion|null[0]' type=kotlin.Unit
        PROPERTY name:companionObjectVal signature:lib1/I.Companion.companionObjectVal|{}companionObjectVal[0] visibility:public modality:FINAL [val]
          FIELD PROPERTY_BACKING_FIELD name:companionObjectVal signature:[ lib1/I.Companion.companionObjectVal|{}companionObjectVal[0] <- Local[<BF>] ] type:kotlin.String visibility:private [final]
            EXPRESSION_BODY
              CONST String type=kotlin.String value="foo"
          FUN DEFAULT_PROPERTY_ACCESSOR name:<get-companionObjectVal> signature:lib1/I.Companion.companionObjectVal.<get-companionObjectVal>|<get-companionObjectVal>(){}[0] visibility:public modality:FINAL returnType:kotlin.String
            VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:lib1.I.Companion
            correspondingProperty: PROPERTY name:companionObjectVal signature:lib1/I.Companion.companionObjectVal|{}companionObjectVal[0] visibility:public modality:FINAL [val]
            BLOCK_BODY
              RETURN type=kotlin.Nothing from='lib1/I.Companion.companionObjectVal.<get-companionObjectVal>|<get-companionObjectVal>(){}[0]'
                GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:companionObjectVal signature:[ lib1/I.Companion.companionObjectVal|{}companionObjectVal[0] <- Local[<BF>] ] type:kotlin.String visibility:private [final]' type=kotlin.String origin=null
                  receiver: GET_VAR '<this>: lib1.I.Companion declared in lib1.I.Companion.<get-companionObjectVal>' type=lib1.I.Companion origin=null
    FUN name:take signature:lib1/take|take(0:0){0§<kotlin.Any?>}[0] visibility:public modality:FINAL returnType:kotlin.Unit
      TYPE_PARAMETER name:T index:0 variance: signature:[ lib1/take|take(0:0){0§<kotlin.Any?>}[0] <- Local[<TP>,0] ] superTypes:[kotlin.Any?] reified:false
      VALUE_PARAMETER kind:Regular name:x index:0 type:T of lib1.take
      BLOCK_BODY
    FUN name:getBoolean signature:lib1/getBoolean|getBoolean(){}[0] visibility:public modality:FINAL returnType:kotlin.Boolean
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='lib1/getBoolean|getBoolean(){}[0]'
          CONST Boolean type=kotlin.Boolean value=true
    FUN name:functionCalls signature:lib1/functionCalls|functionCalls(lib1.I){}[0] visibility:public modality:FINAL returnType:kotlin.Unit
      VALUE_PARAMETER kind:Regular name:i index:0 type:lib1.I
      BLOCK_BODY
        WHEN type=kotlin.Unit origin=IF
          BRANCH
            if: CALL 'lib1/getBoolean|getBoolean(){}[0]' type=kotlin.Boolean origin=null
            then: BLOCK type=kotlin.Unit origin=null
              CALL 'lib1/take|take(0:0){0§<kotlin.Any?>}[0]' type=kotlin.Unit origin=null
                TYPE_ARG T: kotlin.String
                ARG x: CALL 'lib1/I.Companion.companionObjectVal.<get-companionObjectVal>|<get-companionObjectVal>(){}[0]' type=kotlin.String origin=GET_PROPERTY
                  ARG <this>: GET_OBJECT 'lib1/I.Companion|null[0]' type=lib1.I.Companion
        WHILE label=null origin=WHILE_LOOP
          condition: CALL 'lib1/getBoolean|getBoolean(){}[0]' type=kotlin.Boolean origin=null
          body: BLOCK type=kotlin.Unit origin=null
            CALL 'lib1/I.interfaceFun|interfaceFun(kotlin.Int){}[0]' type=kotlin.Unit origin=null
              ARG <this>: GET_VAR 'i: lib1.I declared in lib1.functionCalls' type=lib1.I origin=null

// MODULE: lib2
MODULE_FRAGMENT name:<lib2>
  FILE fqName:lib2 fileName:/lib2.kt
    CLASS OBJECT name:Object signature:lib2/Object|null[0] modality:FINAL visibility:public superTypes:[kotlin.Any]
      thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:lib2.Object
      CONSTRUCTOR signature:lib2/Object.<init>|<init>(){}[0] visibility:private returnType:lib2.Object [primary]
        BLOCK_BODY
          DELEGATING_CONSTRUCTOR_CALL 'kotlin/Any.<init>|<init>(){}[0]'
          INSTANCE_INITIALIZER_CALL classDescriptor='lib2/Object|null[0]' type=kotlin.Unit
      CLASS OBJECT name:PrivateObject signature:lib2/Object.PrivateObject|null[0] modality:FINAL visibility:private superTypes:[kotlin.Any]
        thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:lib2.Object.PrivateObject
        CONSTRUCTOR signature:lib2/Object.PrivateObject.<init>|<init>(){}[0] visibility:private returnType:lib2.Object.PrivateObject [primary]
          BLOCK_BODY
            DELEGATING_CONSTRUCTOR_CALL 'kotlin/Any.<init>|<init>(){}[0]'
            INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:PrivateObject signature:lib2/Object.PrivateObject|null[0] modality:FINAL visibility:private superTypes:[kotlin.Any]' type=kotlin.Unit
        FUN name:foo signature:lib2/Object.PrivateObject.foo|foo(){}[0] visibility:public modality:FINAL returnType:kotlin.Nothing
          VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:lib2.Object.PrivateObject
          BLOCK_BODY
            RETURN type=kotlin.Nothing from='public final fun foo (): kotlin.Nothing declared in lib2.Object.PrivateObject'
              BLOCK type=kotlin.Nothing origin=INLINE_ARGS_CONTAINER
                VAR IR_TEMPORARY_VARIABLE name:tmp0 type:kotlin.Any [val]
                  TYPE_OP type=kotlin.Any origin=IMPLICIT_CAST typeOperand=kotlin.Any
                    CONST String type=kotlin.String value="Dead end"
                RETURNABLE_BLOCK type=kotlin.Nothing origin=null
                  INLINED_BLOCK type=kotlin.Nothing origin=null
                    inlinedFunctionSymbol: kotlin/error|error(kotlin.Any){}[0]
                    inlinedFunctionFileEntry: FILE_ENTRY path:stdlib/src/kotlin/util/Preconditions.kt
                    VAR IR_TEMPORARY_VARIABLE_FOR_INLINED_PARAMETER name:message type:kotlin.Any [val]
                      GET_VAR 'val tmp0: kotlin.Any [val] declared in lib2.Object.PrivateObject.foo' type=kotlin.Any origin=null
                    THROW type=kotlin.Nothing
                      CONSTRUCTOR_CALL 'kotlin/IllegalStateException.<init>|<init>(kotlin.String?){}[0]' type=kotlin.IllegalStateException origin=null
                        ARG 1: CALL 'kotlin/Any.toString|toString(){}[0]' type=kotlin.String origin=null
                          ARG 1: GET_VAR 'val message: kotlin.Any [val] declared in lib2.Object.PrivateObject.foo' type=kotlin.Any origin=null
    CLASS INTERFACE name:SealedInterface signature:lib2/SealedInterface|null[0] modality:SEALED visibility:public superTypes:[kotlin.Any]
      thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:lib2.SealedInterface
      PROPERTY name:v signature:lib2/SealedInterface.v|{}v[0] visibility:public modality:ABSTRACT [val]
        FUN DEFAULT_PROPERTY_ACCESSOR name:<get-v> signature:lib2/SealedInterface.v.<get-v>|<get-v>(){}[0] visibility:public modality:ABSTRACT returnType:kotlin.collections.HashSet<kotlin.Pair<kotlin.String, kotlin.Number>>
          VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:lib2.SealedInterface
          correspondingProperty: PROPERTY name:v signature:lib2/SealedInterface.v|{}v[0] visibility:public modality:ABSTRACT [val]
      CLASS ENUM_CLASS name:Enum signature:lib2/SealedInterface.Enum|null[0] modality:FINAL visibility:public superTypes:[lib2.SealedInterface; kotlin.Enum<lib2.SealedInterface.Enum>]
        thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:lib2.SealedInterface.Enum
        CONSTRUCTOR signature:lib2/SealedInterface.Enum.<init>|<init>(){}[0] visibility:private returnType:lib2.SealedInterface.Enum [primary]
          BLOCK_BODY
            ENUM_CONSTRUCTOR_CALL 'kotlin/Enum.<init>|<init>(kotlin.String;kotlin.Int){}[0]'
              TYPE_ARG 1: lib2.SealedInterface.Enum
            INSTANCE_INITIALIZER_CALL classDescriptor='lib2/SealedInterface.Enum|null[0]' type=kotlin.Unit
        ENUM_ENTRY name:FOO signature:lib2/SealedInterface.Enum.FOO|null[0]
          init: EXPRESSION_BODY
            ENUM_CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in lib2.SealedInterface.Enum'
        ENUM_ENTRY name:BAR signature:lib2/SealedInterface.Enum.BAR|null[0]
          init: EXPRESSION_BODY
            ENUM_CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in lib2.SealedInterface.Enum'
        PROPERTY name:v signature:lib2/SealedInterface.Enum.v|{}v[0] visibility:public modality:OPEN [val]
          FUN name:<get-v> signature:lib2/SealedInterface.Enum.v.<get-v>|<get-v>(){}[0] visibility:public modality:OPEN returnType:kotlin.collections.HashSet<kotlin.Pair<kotlin.String, kotlin.Number>>
            VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:lib2.SealedInterface.Enum
            correspondingProperty: PROPERTY name:v signature:lib2/SealedInterface.Enum.v|{}v[0] visibility:public modality:OPEN [val]
            overridden:
              lib2/SealedInterface.v.<get-v>|<get-v>(){}[0]
            BLOCK_BODY
              RETURN type=kotlin.Nothing from='lib2/SealedInterface.Enum.v.<get-v>|<get-v>(){}[0]'
                CALL 'kotlin.collections/toHashSet|toHashSet@kotlin.collections.Iterable<0:0>(){0§<kotlin.Any?>}[0]' type=kotlin.collections.HashSet<kotlin.Pair<kotlin.String, kotlin.Number>> origin=null
                  TYPE_ARG 1: kotlin.Pair<kotlin.String, kotlin.Number>
                  ARG 1: CALL 'kotlin.collections/toMutableSet|toMutableSet@kotlin.collections.Iterable<0:0>(){0§<kotlin.Any?>}[0]' type=kotlin.collections.MutableSet<kotlin.Pair<kotlin.String, kotlin.Number>> origin=null
                    TYPE_ARG 1: kotlin.Pair<kotlin.String, kotlin.Number>
                    ARG 1: RETURNABLE_BLOCK type=kotlin.collections.Set<kotlin.Pair<kotlin.String, kotlin.Number>> origin=null
                      INLINED_BLOCK type=kotlin.collections.Set<kotlin.Pair<kotlin.String, kotlin.Number>> origin=null
                        inlinedFunctionSymbol: kotlin.collections/setOf|setOf(){0§<kotlin.Any?>}[0]
                        inlinedFunctionFileEntry: FILE_ENTRY path:stdlib/src/kotlin/collections/Sets.kt
                        RETURN type=kotlin.Nothing from='{IrReturnableBlockImpl}'
                          TYPE_OP type=kotlin.collections.Set<kotlin.Pair<kotlin.String, kotlin.Number>> origin=IMPLICIT_CAST typeOperand=kotlin.collections.Set<kotlin.Pair<kotlin.String, kotlin.Number>>
                            CALL 'kotlin.collections/emptySet|emptySet(){0§<kotlin.Any?>}[0]' type=kotlin.collections.Set<kotlin.Any?> origin=null
                              TYPE_ARG 1: kotlin.Any?
        FUN ENUM_CLASS_SPECIAL_MEMBER name:values signature:lib2/SealedInterface.Enum.values|values#static(){}[0] visibility:public modality:FINAL returnType:kotlin.Array<lib2.SealedInterface.Enum> [companion]
          SYNTHETIC_BODY kind=ENUM_VALUES
        FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf signature:lib2/SealedInterface.Enum.valueOf|valueOf#static(kotlin.String){}[0] visibility:public modality:FINAL returnType:lib2.SealedInterface.Enum [companion]
          VALUE_PARAMETER kind:Regular name:value index:0 type:kotlin.String
          SYNTHETIC_BODY kind=ENUM_VALUEOF
        PROPERTY ENUM_CLASS_SPECIAL_MEMBER name:entries signature:lib2/SealedInterface.Enum.entries|#static{}entries[0] visibility:public modality:FINAL [val]
          FUN ENUM_CLASS_SPECIAL_MEMBER name:<get-entries> signature:lib2/SealedInterface.Enum.entries.<get-entries>|<get-entries>#static(){}[0] visibility:public modality:FINAL returnType:kotlin.enums.EnumEntries<lib2.SealedInterface.Enum> [companion]
            correspondingProperty: PROPERTY ENUM_CLASS_SPECIAL_MEMBER name:entries signature:lib2/SealedInterface.Enum.entries|#static{}entries[0] visibility:public modality:FINAL [val]
            SYNTHETIC_BODY kind=ENUM_ENTRIES
      CLASS OBJECT name:Object signature:lib2/SealedInterface.Object|null[0] modality:FINAL visibility:public [data] superTypes:[lib2.SealedInterface]
        thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:lib2.SealedInterface.Object
        CONSTRUCTOR signature:lib2/SealedInterface.Object.<init>|<init>(){}[0] visibility:private returnType:lib2.SealedInterface.Object [primary]
          BLOCK_BODY
            DELEGATING_CONSTRUCTOR_CALL 'kotlin/Any.<init>|<init>(){}[0]'
            INSTANCE_INITIALIZER_CALL classDescriptor='lib2/SealedInterface.Object|null[0]' type=kotlin.Unit
        PROPERTY name:v signature:lib2/SealedInterface.Object.v|{}v[0] visibility:public modality:OPEN [delegated,val]
          FIELD PROPERTY_DELEGATE name:v$delegate signature:[ lib2/SealedInterface.Object.v|{}v[0] <- Local[<BF>] ] type:kotlin.Lazy<kotlin.collections.HashSet<kotlin.Pair<kotlin.String, kotlin.Number>>> visibility:private [final]
            EXPRESSION_BODY
              CALL 'kotlin/lazy|lazy(kotlin.Function0<0:0>){0§<kotlin.Any?>}[0]' type=kotlin.Lazy<kotlin.collections.HashSet<kotlin.Pair<kotlin.String, kotlin.Number>>> origin=null
                TYPE_ARG 1: kotlin.collections.HashSet<kotlin.Pair<kotlin.String, kotlin.Number>>
                ARG 1: RICH_FUNCTION_REFERENCE type=kotlin.Function0<kotlin.collections.HashSet<kotlin.Pair<kotlin.String, kotlin.Number>>> origin=LAMBDA reflectionTarget='null'
                  overriddenFunctionSymbol: kotlin/Function0.invoke|invoke(){}[0]
                  invoke: FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL returnType:kotlin.collections.HashSet<kotlin.Pair<kotlin.String, kotlin.Number>>
                    BLOCK_BODY
                      BLOCK type=kotlin.Nothing origin=INLINE_ARGS_CONTAINER
                        VAR IR_TEMPORARY_VARIABLE name:tmp0 type:kotlin.String [val]
                          TYPE_OP type=kotlin.String origin=IMPLICIT_CAST typeOperand=kotlin.String
                            CONST String type=kotlin.String value="Never would be implemented"
                        RETURNABLE_BLOCK type=kotlin.Nothing origin=null
                          INLINED_BLOCK type=kotlin.Nothing origin=null
                            inlinedFunctionSymbol: kotlin/TODO|TODO(kotlin.String){}[0]
                            inlinedFunctionFileEntry: FILE_ENTRY path:stdlib/src/kotlin/util/Standard.kt
                            VAR IR_TEMPORARY_VARIABLE_FOR_INLINED_PARAMETER name:reason type:kotlin.String [val]
                              GET_VAR 'val tmp0: kotlin.String [val] declared in lib2.SealedInterface.Object.v$delegate.<anonymous>' type=kotlin.String origin=null
                            THROW type=kotlin.Nothing
                              CONSTRUCTOR_CALL 'kotlin/NotImplementedError.<init>|<init>(kotlin.String){}[0]' type=kotlin.NotImplementedError origin=null
                                ARG 1: STRING_CONCATENATION type=kotlin.String
                                  CONST String type=kotlin.String value="An operation is not implemented: "
                                  GET_VAR 'val reason: kotlin.String [val] declared in lib2.SealedInterface.Object.v$delegate.<anonymous>' type=kotlin.String origin=null
          FUN DELEGATED_PROPERTY_ACCESSOR name:<get-v> signature:lib2/SealedInterface.Object.v.<get-v>|<get-v>(){}[0] visibility:public modality:OPEN returnType:kotlin.collections.HashSet<kotlin.Pair<kotlin.String, kotlin.Number>>
            VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:lib2.SealedInterface.Object
            correspondingProperty: PROPERTY name:v signature:lib2/SealedInterface.Object.v|{}v[0] visibility:public modality:OPEN [delegated,val]
            overridden:
              lib2/SealedInterface.v.<get-v>|<get-v>(){}[0]
            BLOCK_BODY
              RETURN type=kotlin.Nothing from='lib2/SealedInterface.Object.v.<get-v>|<get-v>(){}[0]'
                BLOCK type=kotlin.collections.HashSet<kotlin.Pair<kotlin.String, kotlin.Number>> origin=INLINE_ARGS_CONTAINER
                  VAR IR_TEMPORARY_VARIABLE name:tmp0 type:kotlin.Lazy<kotlin.Any?> [val]
                    TYPE_OP type=kotlin.Lazy<kotlin.Any?> origin=IMPLICIT_CAST typeOperand=kotlin.Lazy<kotlin.Any?>
                      GET_FIELD 'FIELD PROPERTY_DELEGATE name:v$delegate signature:[ lib2/SealedInterface.Object.v|{}v[0] <- Local[<BF>] ] type:kotlin.Lazy<kotlin.collections.HashSet<kotlin.Pair<kotlin.String, kotlin.Number>>> visibility:private [final] declared in lib2.SealedInterface.Object' type=kotlin.Lazy<kotlin.collections.HashSet<kotlin.Pair<kotlin.String, kotlin.Number>>> origin=null
                        receiver: GET_VAR '<this>: lib2.SealedInterface.Object declared in lib2.SealedInterface.Object.<get-v>' type=lib2.SealedInterface.Object origin=IMPLICIT_ARGUMENT
                  VAR IR_TEMPORARY_VARIABLE name:tmp2 type:kotlin.Any? [val]
                    TYPE_OP type=kotlin.Any? origin=IMPLICIT_CAST typeOperand=kotlin.Any?
                      GET_VAR '<this>: lib2.SealedInterface.Object declared in lib2.SealedInterface.Object.<get-v>' type=lib2.SealedInterface.Object origin=null
                  VAR IR_TEMPORARY_VARIABLE name:tmp4 type:kotlin.reflect.KProperty<*> [val]
                    TYPE_OP type=kotlin.reflect.KProperty<*> origin=IMPLICIT_CAST typeOperand=kotlin.reflect.KProperty<*>
                      RICH_PROPERTY_REFERENCE type=kotlin.reflect.KProperty1<lib2.SealedInterface.Object, kotlin.collections.HashSet<kotlin.Pair<kotlin.String, kotlin.Number>>> origin=PROPERTY_REFERENCE_FOR_DELEGATE reflectionTarget='lib2/SealedInterface.Object.v|{}v[0]'
                        getter: FUN LOCAL_FUNCTION_FOR_LAMBDA name:<get-v> visibility:local modality:FINAL returnType:kotlin.collections.HashSet<kotlin.Pair<kotlin.String, kotlin.Number>>
                          VALUE_PARAMETER kind:Regular name:p0 index:0 type:lib2.SealedInterface.Object
                          BLOCK_BODY
                            RETURN type=kotlin.Nothing from='local final fun <get-v> (p0: lib2.SealedInterface.Object): kotlin.collections.HashSet<kotlin.Pair<kotlin.String, kotlin.Number>> declared in lib2.SealedInterface.Object.<get-v>'
                              CALL 'lib2/SealedInterface.Object.v.<get-v>|<get-v>(){}[0]' type=kotlin.collections.HashSet<kotlin.Pair<kotlin.String, kotlin.Number>> origin=null
                                ARG <this>: GET_VAR 'p0: lib2.SealedInterface.Object declared in lib2.SealedInterface.Object.<get-v>.<get-v>' type=lib2.SealedInterface.Object origin=null
                  RETURNABLE_BLOCK type=kotlin.collections.HashSet<kotlin.Pair<kotlin.String, kotlin.Number>> origin=null
                    INLINED_BLOCK type=kotlin.collections.HashSet<kotlin.Pair<kotlin.String, kotlin.Number>> origin=null
                      inlinedFunctionSymbol: kotlin/getValue|getValue@kotlin.Lazy<0:0>(kotlin.Any?;kotlin.reflect.KProperty<*>){0§<kotlin.Any?>}[0]
                      inlinedFunctionFileEntry: FILE_ENTRY path:stdlib/src/kotlin/util/Lazy.kt
                      VAR IR_TEMPORARY_VARIABLE_FOR_INLINED_PARAMETER name:this type:kotlin.Lazy<kotlin.Any?> [val]
                        GET_VAR 'val tmp0: kotlin.Lazy<kotlin.Any?> [val] declared in lib2.SealedInterface.Object.<get-v>' type=kotlin.Lazy<kotlin.Any?> origin=null
                      VAR IR_TEMPORARY_VARIABLE_FOR_INLINED_PARAMETER name:thisRef type:kotlin.Any? [val]
                        GET_VAR 'val tmp2: kotlin.Any? [val] declared in lib2.SealedInterface.Object.<get-v>' type=kotlin.Any? origin=null
                      VAR IR_TEMPORARY_VARIABLE_FOR_INLINED_PARAMETER name:property type:kotlin.reflect.KProperty<*> [val]
                        GET_VAR 'val tmp4: kotlin.reflect.KProperty<*> [val] declared in lib2.SealedInterface.Object.<get-v>' type=kotlin.reflect.KProperty<*> origin=null
                      RETURN type=kotlin.Nothing from='{IrReturnableBlockImpl}'
                        TYPE_OP type=kotlin.collections.HashSet<kotlin.Pair<kotlin.String, kotlin.Number>> origin=IMPLICIT_CAST typeOperand=kotlin.collections.HashSet<kotlin.Pair<kotlin.String, kotlin.Number>>
                          CALL 'kotlin/Lazy.value.<get-value>|<get-value>(){}[0]' type=kotlin.Any? origin=GET_PROPERTY
                            ARG 1: GET_VAR 'val this: kotlin.Lazy<kotlin.Any?> [val] declared in lib2.SealedInterface.Object.<get-v>' type=kotlin.Lazy<kotlin.Any?> origin=IMPLICIT_ARGUMENT
        FUN GENERATED_DATA_CLASS_MEMBER name:toString signature:lib2/SealedInterface.Object.toString|toString(){}[0] visibility:public modality:OPEN returnType:kotlin.String
          VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:lib2.SealedInterface.Object
          overridden:
            lib2/SealedInterface.toString|toString(){}[0]
          BLOCK_BODY
            RETURN type=kotlin.Nothing from='lib2/SealedInterface.Object.toString|toString(){}[0]'
              CONST String type=kotlin.String value="Object"
        FUN GENERATED_DATA_CLASS_MEMBER name:hashCode signature:lib2/SealedInterface.Object.hashCode|hashCode(){}[0] visibility:public modality:OPEN returnType:kotlin.Int
          VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:lib2.SealedInterface.Object
          overridden:
            lib2/SealedInterface.hashCode|hashCode(){}[0]
          BLOCK_BODY
            RETURN type=kotlin.Nothing from='lib2/SealedInterface.Object.hashCode|hashCode(){}[0]'
              CONST Int type=kotlin.Int value=1460486673
        FUN GENERATED_DATA_CLASS_MEMBER name:equals signature:lib2/SealedInterface.Object.equals|equals(kotlin.Any?){}[0] visibility:public modality:OPEN returnType:kotlin.Boolean [operator]
          VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:lib2.SealedInterface.Object
          VALUE_PARAMETER kind:Regular name:other index:1 type:kotlin.Any?
          overridden:
            lib2/SealedInterface.equals|equals(kotlin.Any?){}[0]
          BLOCK_BODY
            WHEN type=kotlin.Unit origin=null
              BRANCH
                if: CALL 'kotlin.internal.ir/EQEQEQ|EQEQEQ(kotlin.Any?;kotlin.Any?){}[0]' type=kotlin.Boolean origin=EQEQEQ
                  ARG 1: GET_VAR '<this>: lib2.SealedInterface.Object declared in lib2.SealedInterface.Object.equals' type=lib2.SealedInterface.Object origin=null
                  ARG 2: GET_VAR 'other: kotlin.Any? declared in lib2.SealedInterface.Object.equals' type=kotlin.Any? origin=null
                then: RETURN type=kotlin.Nothing from='lib2/SealedInterface.Object.equals|equals(kotlin.Any?){}[0]'
                  CONST Boolean type=kotlin.Boolean value=true
            WHEN type=kotlin.Unit origin=null
              BRANCH
                if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=lib2.SealedInterface.Object
                  GET_VAR 'other: kotlin.Any? declared in lib2.SealedInterface.Object.equals' type=kotlin.Any? origin=null
                then: RETURN type=kotlin.Nothing from='lib2/SealedInterface.Object.equals|equals(kotlin.Any?){}[0]'
                  CONST Boolean type=kotlin.Boolean value=false
            VAR IR_TEMPORARY_VARIABLE name:tmp0_other_with_cast type:lib2.SealedInterface.Object [val]
              TYPE_OP type=lib2.SealedInterface.Object origin=IMPLICIT_CAST typeOperand=lib2.SealedInterface.Object
                GET_VAR 'other: kotlin.Any? declared in lib2.SealedInterface.Object.equals' type=kotlin.Any? origin=null
            RETURN type=kotlin.Nothing from='lib2/SealedInterface.Object.equals|equals(kotlin.Any?){}[0]'
              CONST Boolean type=kotlin.Boolean value=true

// MODULE: lib3
MODULE_FRAGMENT name:<lib3>
  FILE fqName:lib3 fileName:/lib3.kt
    PROPERTY name:FOO signature:lib3/FOO|{}FOO[0] visibility:public modality:FINAL [const,val]
      FIELD PROPERTY_BACKING_FIELD name:FOO signature:[ lib3/FOO|{}FOO[0] <- Local[<BF>] ] type:kotlin.String visibility:public [final,static]
        EXPRESSION_BODY
          CONST String type=kotlin.String value="BAR"
      FUN DEFAULT_PROPERTY_ACCESSOR name:<get-FOO> signature:lib3/FOO.<get-FOO>|<get-FOO>(){}[0] visibility:public modality:FINAL returnType:kotlin.String
        correspondingProperty: PROPERTY name:FOO signature:lib3/FOO|{}FOO[0] visibility:public modality:FINAL [const,val]
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='lib3/FOO.<get-FOO>|<get-FOO>(){}[0]'
            GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:FOO signature:[ lib3/FOO|{}FOO[0] <- Local[<BF>] ] type:kotlin.String visibility:public [final,static]' type=kotlin.String origin=null
    PROPERTY name:BAR signature:lib3/BAR|{}BAR[0] visibility:public modality:FINAL [const,val]
      FIELD PROPERTY_BACKING_FIELD name:BAR signature:[ lib3/BAR|{}BAR[0] <- Local[<BF>] ] type:kotlin.Int visibility:public [final,static]
        EXPRESSION_BODY
          CONST Int type=kotlin.Int value=3
      FUN DEFAULT_PROPERTY_ACCESSOR name:<get-BAR> signature:lib3/BAR.<get-BAR>|<get-BAR>(){}[0] visibility:public modality:FINAL returnType:kotlin.Int
        correspondingProperty: PROPERTY name:BAR signature:lib3/BAR|{}BAR[0] visibility:public modality:FINAL [const,val]
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='lib3/BAR.<get-BAR>|<get-BAR>(){}[0]'
            GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:BAR signature:[ lib3/BAR|{}BAR[0] <- Local[<BF>] ] type:kotlin.Int visibility:public [final,static]' type=kotlin.Int origin=null
    CLASS CLASS name:IImpl signature:lib3/IImpl|null[0] modality:FINAL visibility:public superTypes:[lib1.I]
      thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:lib3.IImpl
      CONSTRUCTOR signature:lib3/IImpl.<init>|<init>(){}[0] visibility:public returnType:lib3.IImpl [primary]
        BLOCK_BODY
          DELEGATING_CONSTRUCTOR_CALL 'kotlin/Any.<init>|<init>(){}[0]'
          INSTANCE_INITIALIZER_CALL classDescriptor='lib3/IImpl|null[0]' type=kotlin.Unit
      FUN name:interfaceFun signature:lib3/IImpl.interfaceFun|interfaceFun(kotlin.Int){}[0] visibility:public modality:OPEN returnType:kotlin.Unit
        VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:lib3.IImpl
        VALUE_PARAMETER kind:Regular name:default index:1 type:kotlin.Int
        overridden:
          lib1/I.interfaceFun|interfaceFun(kotlin.Int){}[0]
        BLOCK_BODY
          TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
            CALL 'kotlin.math/tanh|tanh(kotlin.Double){}[0]' type=kotlin.Double origin=null
              ARG 1: BLOCK type=kotlin.Double origin=INLINE_ARGS_CONTAINER
                VAR IR_TEMPORARY_VARIABLE name:tmp0 type:kotlin.Double [val]
                  TYPE_OP type=kotlin.Double origin=IMPLICIT_CAST typeOperand=kotlin.Double
                    CONST Double type=kotlin.Double value=3.141592653589793
                VAR IR_TEMPORARY_VARIABLE name:tmp2 type:kotlin.Int [val]
                  TYPE_OP type=kotlin.Int origin=IMPLICIT_CAST typeOperand=kotlin.Int
                    GET_VAR 'default: kotlin.Int declared in lib3.IImpl.interfaceFun' type=kotlin.Int origin=null
                RETURNABLE_BLOCK type=kotlin.Double origin=null
                  INLINED_BLOCK type=kotlin.Double origin=null
                    inlinedFunctionSymbol: kotlin/Double.times|times(kotlin.Int){}[0]
                    inlinedFunctionFileEntry: FILE_ENTRY path:src/main/kotlin/kotlin/Primitives.kt
                    VAR IR_TEMPORARY_VARIABLE_FOR_INLINED_PARAMETER name:this type:kotlin.Double [val]
                      GET_VAR 'val tmp0: kotlin.Double [val] declared in lib3.IImpl.interfaceFun' type=kotlin.Double origin=null
                    VAR IR_TEMPORARY_VARIABLE_FOR_INLINED_PARAMETER name:other type:kotlin.Int [val]
                      GET_VAR 'val tmp2: kotlin.Int [val] declared in lib3.IImpl.interfaceFun' type=kotlin.Int origin=null
                    RETURN type=kotlin.Nothing from='{IrReturnableBlockImpl}'
                      TYPE_OP type=kotlin.Double origin=IMPLICIT_CAST typeOperand=kotlin.Double
                        CALL 'kotlin/Double.times|times(kotlin.Double){}[0]' type=kotlin.Double origin=MUL
                          ARG 1: GET_VAR 'val this: kotlin.Double [val] declared in lib3.IImpl.interfaceFun' type=kotlin.Double origin=null
                          ARG 2: CALL 'kotlin/Int.toDouble|toDouble(){}[0]' type=kotlin.Double origin=null
                            ARG 1: GET_VAR 'val other: kotlin.Int [val] declared in lib3.IImpl.interfaceFun' type=kotlin.Int origin=null
    FUN name:doStuff signature:lib3/doStuff|doStuff(){}[0] visibility:public modality:FINAL returnType:kotlin.Unit [inline]
      annotations:
        Suppress(1 = ["NOTHING_TO_INLINE"] type=kotlin.Array<out kotlin.String> varargElementType=kotlin.String)
      BLOCK_BODY
        CALL 'lib1/take|take(0:0){0§<kotlin.Any?>}[0]' type=kotlin.Unit origin=null
          TYPE_ARG 1: kotlin.Int
          ARG 1: CONST Int type=kotlin.Int value=42
        BLOCK type=kotlin.Unit origin=INLINE_ARGS_CONTAINER
          VAR IR_TEMPORARY_VARIABLE name:tmp0 type:kotlin.Boolean [val]
            TYPE_OP type=kotlin.Boolean origin=IMPLICIT_CAST typeOperand=kotlin.Boolean
              CALL 'lib1/getBoolean|getBoolean(){}[0]' type=kotlin.Boolean origin=null
          RETURNABLE_BLOCK type=kotlin.Unit origin=null
            INLINED_BLOCK type=kotlin.Unit origin=null
              inlinedFunctionSymbol: kotlin/check|check(kotlin.Boolean){}[0]
              inlinedFunctionFileEntry: FILE_ENTRY path:stdlib/src/kotlin/util/Preconditions.kt
              VAR IR_TEMPORARY_VARIABLE_FOR_INLINED_PARAMETER name:value type:kotlin.Boolean [val]
                GET_VAR 'val tmp0: kotlin.Boolean [val] declared in lib3.doStuff' type=kotlin.Boolean origin=null
              WHEN type=kotlin.Unit origin=IF
                BRANCH
                  if: CALL 'kotlin/Boolean.not|not(){}[0]' type=kotlin.Boolean origin=null
                    ARG 1: GET_VAR 'val value: kotlin.Boolean [val] declared in lib3.doStuff' type=kotlin.Boolean origin=null
                  then: BLOCK type=kotlin.Unit origin=null
                    THROW type=kotlin.Nothing
                      CONSTRUCTOR_CALL 'kotlin/IllegalStateException.<init>|<init>(kotlin.String?){}[0]' type=kotlin.IllegalStateException origin=null
                        ARG 1: CONST String type=kotlin.String value="Check failed."
              RETURN type=kotlin.Nothing from='{IrReturnableBlockImpl}'
                GET_OBJECT 'kotlin/Unit|null[0]' type=kotlin.Unit
        CALL 'lib1/functionCalls|functionCalls(lib1.I){}[0]' type=kotlin.Unit origin=null
          ARG 1: CONSTRUCTOR_CALL 'lib3/IImpl.<init>|<init>(){}[0]' type=lib3.IImpl origin=null
        CALL 'kotlin.io/println|println(kotlin.Any?){}[0]' type=kotlin.Unit origin=null
          ARG 1: CALL 'lib2/Object.toString|toString(){}[0]' type=kotlin.String origin=null
            ARG 1: GET_OBJECT 'lib2/Object|null[0]' type=lib2.Object
        BLOCK type=kotlin.Unit origin=INLINE_ARGS_CONTAINER
          VAR IR_TEMPORARY_VARIABLE name:tmp0 type:kotlin.collections.Iterable<kotlin.Any?> [val]
            TYPE_OP type=kotlin.collections.Iterable<kotlin.Any?> origin=IMPLICIT_CAST typeOperand=kotlin.collections.Iterable<kotlin.Any?>
              CALL 'lib2/SealedInterface.Enum.entries.<get-entries>|<get-entries>#static(){}[0]' type=kotlin.enums.EnumEntries<lib2.SealedInterface.Enum> origin=GET_PROPERTY
          RETURNABLE_BLOCK type=kotlin.Unit origin=null
            INLINED_BLOCK type=kotlin.Unit origin=null
              inlinedFunctionSymbol: kotlin.collections/forEach|forEach@kotlin.collections.Iterable<0:0>(kotlin.Function1<0:0,kotlin.Unit>){0§<kotlin.Any?>}[0]
              inlinedFunctionFileEntry: FILE_ENTRY path:stdlib/common/src/generated/_Collections.kt
              VAR IR_TEMPORARY_VARIABLE_FOR_INLINED_PARAMETER name:this type:kotlin.collections.Iterable<kotlin.Any?> [val]
                GET_VAR 'val tmp0: kotlin.collections.Iterable<kotlin.Any?> [val] declared in lib3.doStuff' type=kotlin.collections.Iterable<kotlin.Any?> origin=null
              BLOCK type=kotlin.Unit origin=FOR_LOOP
                VAR FOR_LOOP_ITERATOR name:<iterator> type:kotlin.collections.Iterator<kotlin.Any?> [val]
                  CALL 'kotlin.collections/Iterable.iterator|iterator(){}[0]' type=kotlin.collections.Iterator<kotlin.Any?> origin=FOR_LOOP_ITERATOR
                    ARG 1: GET_VAR 'val this: kotlin.collections.Iterable<kotlin.Any?> [val] declared in lib3.doStuff' type=kotlin.collections.Iterable<kotlin.Any?> origin=null
                WHILE label=null origin=FOR_LOOP_INNER_WHILE
                  condition: CALL 'kotlin.collections/Iterator.hasNext|hasNext(){}[0]' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
                    ARG 1: GET_VAR 'val <iterator>: kotlin.collections.Iterator<kotlin.Any?> [val] declared in lib3.doStuff' type=kotlin.collections.Iterator<kotlin.Any?> origin=null
                  body: BLOCK type=kotlin.Unit origin=FOR_LOOP_INNER_WHILE
                    VAR FOR_LOOP_VARIABLE name:element type:kotlin.Any? [val]
                      CALL 'kotlin.collections/Iterator.next|next(){}[0]' type=kotlin.Any? origin=FOR_LOOP_NEXT
                        ARG 1: GET_VAR 'val <iterator>: kotlin.collections.Iterator<kotlin.Any?> [val] declared in lib3.doStuff' type=kotlin.collections.Iterator<kotlin.Any?> origin=null
                    BLOCK type=kotlin.Unit origin=INLINE_ARGS_CONTAINER
                      VAR IR_TEMPORARY_VARIABLE name:tmp0 type:lib2.SealedInterface.Enum [val]
                        TYPE_OP type=lib2.SealedInterface.Enum origin=IMPLICIT_CAST typeOperand=lib2.SealedInterface.Enum
                          GET_VAR 'val element: kotlin.Any? [val] declared in lib3.doStuff' type=kotlin.Any? origin=null
                      RETURNABLE_BLOCK type=kotlin.Unit origin=null
                        INLINED_BLOCK type=kotlin.Unit origin=null
                          inlinedFunctionFileEntry: FILE_ENTRY path:lib3.kt
                          VAR IR_TEMPORARY_VARIABLE_FOR_INLINED_PARAMETER name:it type:lib2.SealedInterface.Enum [val]
                            GET_VAR 'val tmp0: lib2.SealedInterface.Enum [val] declared in lib3.doStuff' type=lib2.SealedInterface.Enum origin=null
                          CALL 'kotlin.io/println|println(kotlin.Any?){}[0]' type=kotlin.Unit origin=null
                            ARG 1: GET_VAR 'val it: lib2.SealedInterface.Enum [val] declared in lib3.doStuff' type=lib2.SealedInterface.Enum origin=null
                          RETURN type=kotlin.Nothing from='{IrReturnableBlockImpl}'
                            GET_OBJECT 'kotlin/Unit|null[0]' type=kotlin.Unit
              RETURN type=kotlin.Nothing from='{IrReturnableBlockImpl}'
                GET_OBJECT 'kotlin/Unit|null[0]' type=kotlin.Unit
        BLOCK type=kotlin.Unit origin=INLINE_ARGS_CONTAINER
          VAR IR_TEMPORARY_VARIABLE name:tmp0 type:kotlin.Boolean [val]
            TYPE_OP type=kotlin.Boolean origin=IMPLICIT_CAST typeOperand=kotlin.Boolean
              CALL 'kotlin.collections/HashSet.isEmpty|isEmpty(){}[0]' type=kotlin.Boolean origin=null
                ARG 1: CALL 'lib2/SealedInterface.Object.v.<get-v>|<get-v>(){}[0]' type=kotlin.collections.HashSet<kotlin.Pair<kotlin.String, kotlin.Number>> origin=GET_PROPERTY
                  ARG 1: GET_OBJECT 'lib2/SealedInterface.Object|null[0]' type=lib2.SealedInterface.Object
          RETURNABLE_BLOCK type=kotlin.Unit origin=null
            INLINED_BLOCK type=kotlin.Unit origin=null
              inlinedFunctionSymbol: kotlin/check|check(kotlin.Boolean){}[0]
              inlinedFunctionFileEntry: FILE_ENTRY path:stdlib/src/kotlin/util/Preconditions.kt
              VAR IR_TEMPORARY_VARIABLE_FOR_INLINED_PARAMETER name:value type:kotlin.Boolean [val]
                GET_VAR 'val tmp0: kotlin.Boolean [val] declared in lib3.doStuff' type=kotlin.Boolean origin=null
              WHEN type=kotlin.Unit origin=IF
                BRANCH
                  if: CALL 'kotlin/Boolean.not|not(){}[0]' type=kotlin.Boolean origin=null
                    ARG 1: GET_VAR 'val value: kotlin.Boolean [val] declared in lib3.doStuff' type=kotlin.Boolean origin=null
                  then: BLOCK type=kotlin.Unit origin=null
                    THROW type=kotlin.Nothing
                      CONSTRUCTOR_CALL 'kotlin/IllegalStateException.<init>|<init>(kotlin.String?){}[0]' type=kotlin.IllegalStateException origin=null
                        ARG 1: CONST String type=kotlin.String value="Check failed."
              RETURN type=kotlin.Nothing from='{IrReturnableBlockImpl}'
                GET_OBJECT 'kotlin/Unit|null[0]' type=kotlin.Unit

// MODULE: app
MODULE_FRAGMENT name:<app>
  FILE fqName:app fileName:/app.kt
    FUN name:main signature:app/main|main(){}[0] visibility:public modality:FINAL returnType:kotlin.Unit
      BLOCK_BODY
        RETURNABLE_BLOCK type=kotlin.Unit origin=null
          INLINED_BLOCK type=kotlin.Unit origin=null
            inlinedFunctionSymbol: lib3/doStuff|doStuff(){}[0]
            inlinedFunctionFileEntry: FILE_ENTRY path:lib3.kt
            CALL 'lib1/take|take(0:0){0§<kotlin.Any?>}[0]' type=kotlin.Unit origin=null
              TYPE_ARG 1: kotlin.Int
              ARG 1: CONST Int type=kotlin.Int value=42
            BLOCK type=kotlin.Unit origin=INLINE_ARGS_CONTAINER
              VAR IR_TEMPORARY_VARIABLE name:tmp0 type:kotlin.Boolean [val]
                CALL 'lib1/getBoolean|getBoolean(){}[0]' type=kotlin.Boolean origin=null
              RETURNABLE_BLOCK type=kotlin.Unit origin=null
                INLINED_BLOCK type=kotlin.Unit origin=null
                  inlinedFunctionSymbol: kotlin/check|check(kotlin.Boolean){}[0]
                  inlinedFunctionFileEntry: FILE_ENTRY path:stdlib/src/kotlin/util/Preconditions.kt
                  VAR IR_TEMPORARY_VARIABLE_FOR_INLINED_PARAMETER name:value type:kotlin.Boolean [val]
                    GET_VAR 'val tmp0: kotlin.Boolean [val] declared in app.main' type=kotlin.Boolean origin=null
                  WHEN type=kotlin.Unit origin=IF
                    BRANCH
                      if: CALL 'kotlin/Boolean.not|not(){}[0]' type=kotlin.Boolean origin=null
                        ARG 1: GET_VAR 'val value: kotlin.Boolean [val] declared in app.main' type=kotlin.Boolean origin=null
                      then: BLOCK type=kotlin.Unit origin=null
                        THROW type=kotlin.Nothing
                          CONSTRUCTOR_CALL 'kotlin/IllegalStateException.<init>|<init>(kotlin.String?){}[0]' type=kotlin.IllegalStateException origin=null
                            ARG 1: CONST String type=kotlin.String value="Check failed."
                  RETURN type=kotlin.Nothing from='{IrReturnableBlockImpl}'
                    GET_OBJECT 'kotlin/Unit|null[0]' type=kotlin.Unit
            CALL 'lib1/functionCalls|functionCalls(lib1.I){}[0]' type=kotlin.Unit origin=null
              ARG 1: CONSTRUCTOR_CALL 'lib3/IImpl.<init>|<init>(){}[0]' type=lib3.IImpl origin=null
            CALL 'kotlin.io/println|println(kotlin.Any?){}[0]' type=kotlin.Unit origin=null
              ARG 1: CALL 'lib2/Object.toString|toString(){}[0]' type=kotlin.String origin=null
                ARG 1: GET_OBJECT 'lib2/Object|null[0]' type=lib2.Object
            BLOCK type=kotlin.Unit origin=INLINE_ARGS_CONTAINER
              VAR IR_TEMPORARY_VARIABLE name:tmp0 type:kotlin.collections.Iterable<kotlin.Any?> [val]
                TYPE_OP type=kotlin.collections.Iterable<kotlin.Any?> origin=IMPLICIT_CAST typeOperand=kotlin.collections.Iterable<kotlin.Any?>
                  CALL 'lib2/SealedInterface.Enum.entries.<get-entries>|<get-entries>#static(){}[0]' type=kotlin.enums.EnumEntries<lib2.SealedInterface.Enum> origin=GET_PROPERTY
              RETURNABLE_BLOCK type=kotlin.Unit origin=null
                INLINED_BLOCK type=kotlin.Unit origin=null
                  inlinedFunctionSymbol: kotlin.collections/forEach|forEach@kotlin.collections.Iterable<0:0>(kotlin.Function1<0:0,kotlin.Unit>){0§<kotlin.Any?>}[0]
                  inlinedFunctionFileEntry: FILE_ENTRY path:stdlib/common/src/generated/_Collections.kt
                  VAR IR_TEMPORARY_VARIABLE_FOR_INLINED_PARAMETER name:this type:kotlin.collections.Iterable<kotlin.Any?> [val]
                    GET_VAR 'val tmp0: kotlin.collections.Iterable<kotlin.Any?> [val] declared in app.main' type=kotlin.collections.Iterable<kotlin.Any?> origin=null
                  BLOCK type=kotlin.Unit origin=FOR_LOOP
                    VAR FOR_LOOP_ITERATOR name:<iterator> type:kotlin.collections.Iterator<kotlin.Any?> [val]
                      CALL 'kotlin.collections/Iterable.iterator|iterator(){}[0]' type=kotlin.collections.Iterator<kotlin.Any?> origin=FOR_LOOP_ITERATOR
                        ARG 1: GET_VAR 'val this: kotlin.collections.Iterable<kotlin.Any?> [val] declared in app.main' type=kotlin.collections.Iterable<kotlin.Any?> origin=null
                    WHILE label=null origin=FOR_LOOP_INNER_WHILE
                      condition: CALL 'kotlin.collections/Iterator.hasNext|hasNext(){}[0]' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
                        ARG 1: GET_VAR 'val <iterator>: kotlin.collections.Iterator<kotlin.Any?> [val] declared in app.main' type=kotlin.collections.Iterator<kotlin.Any?> origin=null
                      body: BLOCK type=kotlin.Unit origin=FOR_LOOP_INNER_WHILE
                        VAR FOR_LOOP_VARIABLE name:element type:kotlin.Any? [val]
                          CALL 'kotlin.collections/Iterator.next|next(){}[0]' type=kotlin.Any? origin=FOR_LOOP_NEXT
                            ARG 1: GET_VAR 'val <iterator>: kotlin.collections.Iterator<kotlin.Any?> [val] declared in app.main' type=kotlin.collections.Iterator<kotlin.Any?> origin=null
                        BLOCK type=kotlin.Unit origin=INLINE_ARGS_CONTAINER
                          VAR IR_TEMPORARY_VARIABLE name:tmp0 type:lib2.SealedInterface.Enum [val]
                            TYPE_OP type=lib2.SealedInterface.Enum origin=IMPLICIT_CAST typeOperand=lib2.SealedInterface.Enum
                              GET_VAR 'val element: kotlin.Any? [val] declared in app.main' type=kotlin.Any? origin=null
                          RETURNABLE_BLOCK type=kotlin.Unit origin=null
                            INLINED_BLOCK type=kotlin.Unit origin=null
                              inlinedFunctionFileEntry: FILE_ENTRY path:lib3.kt
                              VAR IR_TEMPORARY_VARIABLE_FOR_INLINED_PARAMETER name:it type:lib2.SealedInterface.Enum [val]
                                GET_VAR 'val tmp0: lib2.SealedInterface.Enum [val] declared in app.main' type=lib2.SealedInterface.Enum origin=null
                              CALL 'kotlin.io/println|println(kotlin.Any?){}[0]' type=kotlin.Unit origin=null
                                ARG 1: GET_VAR 'val it: lib2.SealedInterface.Enum [val] declared in app.main' type=lib2.SealedInterface.Enum origin=null
                              RETURN type=kotlin.Nothing from='{IrReturnableBlockImpl}'
                                GET_OBJECT 'kotlin/Unit|null[0]' type=kotlin.Unit
                  RETURN type=kotlin.Nothing from='{IrReturnableBlockImpl}'
                    GET_OBJECT 'kotlin/Unit|null[0]' type=kotlin.Unit
            BLOCK type=kotlin.Unit origin=INLINE_ARGS_CONTAINER
              VAR IR_TEMPORARY_VARIABLE name:tmp0 type:kotlin.Boolean [val]
                CALL 'kotlin.collections/HashSet.isEmpty|isEmpty(){}[0]' type=kotlin.Boolean origin=null
                  ARG 1: CALL 'lib2/SealedInterface.Object.v.<get-v>|<get-v>(){}[0]' type=kotlin.collections.HashSet<kotlin.Pair<kotlin.String, kotlin.Number>> origin=GET_PROPERTY
                    ARG 1: GET_OBJECT 'lib2/SealedInterface.Object|null[0]' type=lib2.SealedInterface.Object
              RETURNABLE_BLOCK type=kotlin.Unit origin=null
                INLINED_BLOCK type=kotlin.Unit origin=null
                  inlinedFunctionSymbol: kotlin/check|check(kotlin.Boolean){}[0]
                  inlinedFunctionFileEntry: FILE_ENTRY path:stdlib/src/kotlin/util/Preconditions.kt
                  VAR IR_TEMPORARY_VARIABLE_FOR_INLINED_PARAMETER name:value type:kotlin.Boolean [val]
                    GET_VAR 'val tmp0: kotlin.Boolean [val] declared in app.main' type=kotlin.Boolean origin=null
                  WHEN type=kotlin.Unit origin=IF
                    BRANCH
                      if: CALL 'kotlin/Boolean.not|not(){}[0]' type=kotlin.Boolean origin=null
                        ARG 1: GET_VAR 'val value: kotlin.Boolean [val] declared in app.main' type=kotlin.Boolean origin=null
                      then: BLOCK type=kotlin.Unit origin=null
                        THROW type=kotlin.Nothing
                          CONSTRUCTOR_CALL 'kotlin/IllegalStateException.<init>|<init>(kotlin.String?){}[0]' type=kotlin.IllegalStateException origin=null
                            ARG 1: CONST String type=kotlin.String value="Check failed."
                  RETURN type=kotlin.Nothing from='{IrReturnableBlockImpl}'
                    GET_OBJECT 'kotlin/Unit|null[0]' type=kotlin.Unit
            RETURN type=kotlin.Nothing from='{IrReturnableBlockImpl}'
              GET_OBJECT 'kotlin/Unit|null[0]' type=kotlin.Unit

