data class A {
  constructor(runA: @ExtensionFunctionType Function2<A, String, Unit> = local fun A.<anonymous>(it: String) {
    return Unit
  }
) /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  val runA: @ExtensionFunctionType Function2<A, String, Unit>
    field = runA
    get

  operator fun component1(): @ExtensionFunctionType Function2<A, String, Unit> {
    return <this>.#runA
  }

  fun copy(runA: @ExtensionFunctionType Function2<A, String, Unit> = <this>.#runA): A {
    return A(runA = runA)
  }

  override fun toString(): String {
    return "A(" + "runA=" + <this>.#runA + ")"
  }

  override fun hashCode(): Int {
    return <this>.#runA.hashCode()
  }

  override operator fun equals(other: Any?): Boolean {
    when {
      EQEQEQ(arg0 = <this>, arg1 = other) -> return true
    }
    when {
      other !is A -> return false
    }
    val tmp0_other_with_cast: A = other as A
    when {
      EQEQ(arg0 = <this>.#runA, arg1 = tmp0_other_with_cast.#runA).not() -> return false
    }
    return true
  }

}

data class B {
  constructor(x: Any = { // BLOCK
    local class <no name provided> {
      constructor() /* primary */ {
        super/*Any*/()
        /* <init>() */

      }

    }

    <no name provided>()
  }) /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  val x: Any
    field = x
    get

  operator fun component1(): Any {
    return <this>.#x
  }

  fun copy(x: Any = <this>.#x): B {
    return B(x = x)
  }

  override fun toString(): String {
    return "B(" + "x=" + <this>.#x + ")"
  }

  override fun hashCode(): Int {
    return <this>.#x.hashCode()
  }

  override operator fun equals(other: Any?): Boolean {
    when {
      EQEQEQ(arg0 = <this>, arg1 = other) -> return true
    }
    when {
      other !is B -> return false
    }
    val tmp0_other_with_cast: B = other as B
    when {
      EQEQ(arg0 = <this>.#x, arg1 = tmp0_other_with_cast.#x).not() -> return false
    }
    return true
  }

}
