//
// Source
// ------------------------------------------

import androidx.compose.runtime.Composable
import androidx.compose.runtime.NonRestartableComposable
import androidx.compose.runtime.ReadOnlyComposable


fun Example(a: A) {
    used(a)
    Example { it -> a.compute(it) }
}

//
// Transformed IR
// ------------------------------------------

fun Example(a: A) {
  used(a)
  Example(<block>{
    class <no name provided> : A {
      @Composable
      @FunctionKeyMeta(key = -1360105720, startOffset = 197, endOffset = 220)
      override fun compute(it: Int, %composer: Composer?, %changed: Int) {
        %composer = %composer.startRestartGroup(<>)
        sourceInformation(%composer, "C(compute)<comput...>:Test.kt")
        val %dirty = %changed
        if (%changed and 0b0110 == 0) {
          %dirty = %dirty or if (%composer.changed(it)) 0b0100 else 0b0010
        }
        if (%changed and 0b00110000 == 0) {
          %dirty = %dirty or if (%composer.changed(<this>)) 0b00100000 else 0b00010000
        }
        if (%composer.shouldExecute(%dirty and 0b00010011 != 0b00010010, %dirty and 0b0001)) {
          if (isTraceInProgress()) {
            traceEventStart(<>, %dirty, -1, <>)
          }
          a.compute(it, %composer, 0b1110 and %dirty)
          if (isTraceInProgress()) {
            traceEventEnd()
          }
        } else {
          %composer.skipToGroupEnd()
        }
        val tmp0_rcvr = <this>
        %composer.endRestartGroup()?.updateScope { %composer: Composer?, %force: Int ->
          tmp0_rcvr.compute(it, %composer, updateChangedFlags(%changed or 0b0001))
        }
      }
    }
    <no name provided>()
  })
}
