// 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'
              CALL 'kotlin/error|error(kotlin.Any){}[0]' type=kotlin.Nothing origin=null
                ARG 1: CONST String type=kotlin.String value="Dead end"
    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: CALL 'kotlin.collections/setOf|setOf(){0§<kotlin.Any?>}[0]' type=kotlin.collections.Set<kotlin.Pair<kotlin.String, kotlin.Number>> origin=null
                      TYPE_ARG 1: kotlin.Pair<kotlin.String, kotlin.Number>
        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>
          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
          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>
            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: FUN_EXPR type=kotlin.Function0<kotlin.collections.HashSet<kotlin.Pair<kotlin.String, kotlin.Number>>> origin=LAMBDA
                  FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL returnType:kotlin.collections.HashSet<kotlin.Pair<kotlin.String, kotlin.Number>>
                    BLOCK_BODY
                      CALL 'kotlin/TODO|TODO(kotlin.String){}[0]' type=kotlin.Nothing origin=null
                        ARG 1: CONST String type=kotlin.String value="Never would be implemented"
          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]'
                CALL 'kotlin/getValue|getValue@kotlin.Lazy<0:0>(kotlin.Any?;kotlin.reflect.KProperty<*>){0§<kotlin.Any?>}[0]' type=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: 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
                  ARG 2: GET_VAR '<this>: lib2.SealedInterface.Object declared in lib2.SealedInterface.Object.<get-v>' type=lib2.SealedInterface.Object origin=null
                  ARG 3: PROPERTY_REFERENCE 'lib2/SealedInterface.Object.v|{}v[0]' field=null getter='lib2/SealedInterface.Object.v.<get-v>|<get-v>(){}[0]' setter=null type=kotlin.reflect.KProperty1<lib2.SealedInterface.Object, kotlin.collections.HashSet<kotlin.Pair<kotlin.String, kotlin.Number>>> origin=PROPERTY_REFERENCE_FOR_DELEGATE
        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 arg0: GET_VAR '<this>: lib2.SealedInterface.Object declared in lib2.SealedInterface.Object.equals' type=lib2.SealedInterface.Object origin=null
                  ARG arg1: 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: CALL 'kotlin/Double.times|times(kotlin.Int){}[0]' type=kotlin.Double origin=MUL
                ARG 1: CONST Double type=kotlin.Double value=3.141592653589793
                ARG 2: GET_VAR 'default: kotlin.Int 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
        CALL 'kotlin/check|check(kotlin.Boolean){}[0]' type=kotlin.Unit origin=null
          ARG 1: CALL 'lib1/getBoolean|getBoolean(){}[0]' type=kotlin.Boolean origin=null
        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
        CALL 'kotlin.collections/forEach|forEach@kotlin.collections.Iterable<0:0>(kotlin.Function1<0:0,kotlin.Unit>){0§<kotlin.Any?>}[0]' type=kotlin.Unit origin=null
          TYPE_ARG 1: lib2.SealedInterface.Enum
          ARG 1: CALL 'lib2/SealedInterface.Enum.entries.<get-entries>|<get-entries>#static(){}[0]' type=kotlin.enums.EnumEntries<lib2.SealedInterface.Enum> origin=GET_PROPERTY
          ARG 2: FUN_EXPR type=kotlin.Function1<lib2.SealedInterface.Enum, kotlin.Unit> origin=LAMBDA
            FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL returnType:kotlin.Unit
              VALUE_PARAMETER kind:Regular name:it index:0 type:lib2.SealedInterface.Enum
              BLOCK_BODY
                CALL 'kotlin.io/println|println(kotlin.Any?){}[0]' type=kotlin.Unit origin=null
                  ARG 1: GET_VAR 'it: lib2.SealedInterface.Enum declared in lib3.doStuff.<anonymous>' type=lib2.SealedInterface.Enum origin=null
        CALL 'kotlin/check|check(kotlin.Boolean){}[0]' type=kotlin.Unit origin=null
          ARG 1: 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

// 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
        CALL 'lib3/doStuff|doStuff(){}[0]' type=kotlin.Unit origin=null

