[go: nahoru, domu]

Start tracking annotations that come from the classpath.

Due to a bug in metalava, we used to not track annotations that
come from the classpath. This CL updates to the latest metalava
and starts tracking these annotations.

This also fixes reified missing parent information fixed in UAST.

Test: ./gradlew updateApi
Change-Id: I2963b3eac4dbe5eb3ba12b32c0e962b3e71b7833
diff --git a/ui/ui-animation-core/api/0.1.0-dev14.txt b/ui/ui-animation-core/api/0.1.0-dev14.txt
index cbfe198..3944e4a 100644
--- a/ui/ui-animation-core/api/0.1.0-dev14.txt
+++ b/ui/ui-animation-core/api/0.1.0-dev14.txt
@@ -340,7 +340,7 @@
 
   public final class TransitionDefinitionKt {
     method public static <T> androidx.animation.TransitionAnimation<T> createAnimation(androidx.animation.TransitionDefinition<T>, androidx.animation.AnimationClockObservable clock, T? initState = null);
-    method public static <T> androidx.animation.TransitionDefinition<T> transitionDefinition(kotlin.jvm.functions.Function1<? super androidx.animation.TransitionDefinition<T>,kotlin.Unit> init);
+    method public static <T> androidx.animation.TransitionDefinition<T> transitionDefinition(@kotlin.BuilderInference kotlin.jvm.functions.Function1<? super androidx.animation.TransitionDefinition<T>,kotlin.Unit> init);
   }
 
   public final class TransitionSpec<S> {
diff --git a/ui/ui-animation-core/api/current.txt b/ui/ui-animation-core/api/current.txt
index cbfe198..3944e4a 100644
--- a/ui/ui-animation-core/api/current.txt
+++ b/ui/ui-animation-core/api/current.txt
@@ -340,7 +340,7 @@
 
   public final class TransitionDefinitionKt {
     method public static <T> androidx.animation.TransitionAnimation<T> createAnimation(androidx.animation.TransitionDefinition<T>, androidx.animation.AnimationClockObservable clock, T? initState = null);
-    method public static <T> androidx.animation.TransitionDefinition<T> transitionDefinition(kotlin.jvm.functions.Function1<? super androidx.animation.TransitionDefinition<T>,kotlin.Unit> init);
+    method public static <T> androidx.animation.TransitionDefinition<T> transitionDefinition(@kotlin.BuilderInference kotlin.jvm.functions.Function1<? super androidx.animation.TransitionDefinition<T>,kotlin.Unit> init);
   }
 
   public final class TransitionSpec<S> {
diff --git a/ui/ui-animation-core/api/public_plus_experimental_0.1.0-dev14.txt b/ui/ui-animation-core/api/public_plus_experimental_0.1.0-dev14.txt
index 8c88e88..b3720d5 100644
--- a/ui/ui-animation-core/api/public_plus_experimental_0.1.0-dev14.txt
+++ b/ui/ui-animation-core/api/public_plus_experimental_0.1.0-dev14.txt
@@ -357,7 +357,7 @@
 
   public final class TransitionDefinitionKt {
     method public static <T> androidx.animation.TransitionAnimation<T> createAnimation(androidx.animation.TransitionDefinition<T>, androidx.animation.AnimationClockObservable clock, T? initState = null);
-    method public static <T> androidx.animation.TransitionDefinition<T> transitionDefinition(kotlin.jvm.functions.Function1<? super androidx.animation.TransitionDefinition<T>,kotlin.Unit> init);
+    method public static <T> androidx.animation.TransitionDefinition<T> transitionDefinition(@kotlin.BuilderInference kotlin.jvm.functions.Function1<? super androidx.animation.TransitionDefinition<T>,kotlin.Unit> init);
   }
 
   public final class TransitionSpec<S> {
diff --git a/ui/ui-animation-core/api/public_plus_experimental_current.txt b/ui/ui-animation-core/api/public_plus_experimental_current.txt
index 8c88e88..b3720d5 100644
--- a/ui/ui-animation-core/api/public_plus_experimental_current.txt
+++ b/ui/ui-animation-core/api/public_plus_experimental_current.txt
@@ -357,7 +357,7 @@
 
   public final class TransitionDefinitionKt {
     method public static <T> androidx.animation.TransitionAnimation<T> createAnimation(androidx.animation.TransitionDefinition<T>, androidx.animation.AnimationClockObservable clock, T? initState = null);
-    method public static <T> androidx.animation.TransitionDefinition<T> transitionDefinition(kotlin.jvm.functions.Function1<? super androidx.animation.TransitionDefinition<T>,kotlin.Unit> init);
+    method public static <T> androidx.animation.TransitionDefinition<T> transitionDefinition(@kotlin.BuilderInference kotlin.jvm.functions.Function1<? super androidx.animation.TransitionDefinition<T>,kotlin.Unit> init);
   }
 
   public final class TransitionSpec<S> {
diff --git a/ui/ui-animation-core/api/restricted_0.1.0-dev14.txt b/ui/ui-animation-core/api/restricted_0.1.0-dev14.txt
index 8c88e88..b3720d5 100644
--- a/ui/ui-animation-core/api/restricted_0.1.0-dev14.txt
+++ b/ui/ui-animation-core/api/restricted_0.1.0-dev14.txt
@@ -357,7 +357,7 @@
 
   public final class TransitionDefinitionKt {
     method public static <T> androidx.animation.TransitionAnimation<T> createAnimation(androidx.animation.TransitionDefinition<T>, androidx.animation.AnimationClockObservable clock, T? initState = null);
-    method public static <T> androidx.animation.TransitionDefinition<T> transitionDefinition(kotlin.jvm.functions.Function1<? super androidx.animation.TransitionDefinition<T>,kotlin.Unit> init);
+    method public static <T> androidx.animation.TransitionDefinition<T> transitionDefinition(@kotlin.BuilderInference kotlin.jvm.functions.Function1<? super androidx.animation.TransitionDefinition<T>,kotlin.Unit> init);
   }
 
   public final class TransitionSpec<S> {
diff --git a/ui/ui-animation-core/api/restricted_current.txt b/ui/ui-animation-core/api/restricted_current.txt
index 8c88e88..b3720d5 100644
--- a/ui/ui-animation-core/api/restricted_current.txt
+++ b/ui/ui-animation-core/api/restricted_current.txt
@@ -357,7 +357,7 @@
 
   public final class TransitionDefinitionKt {
     method public static <T> androidx.animation.TransitionAnimation<T> createAnimation(androidx.animation.TransitionDefinition<T>, androidx.animation.AnimationClockObservable clock, T? initState = null);
-    method public static <T> androidx.animation.TransitionDefinition<T> transitionDefinition(kotlin.jvm.functions.Function1<? super androidx.animation.TransitionDefinition<T>,kotlin.Unit> init);
+    method public static <T> androidx.animation.TransitionDefinition<T> transitionDefinition(@kotlin.BuilderInference kotlin.jvm.functions.Function1<? super androidx.animation.TransitionDefinition<T>,kotlin.Unit> init);
   }
 
   public final class TransitionSpec<S> {
diff --git a/ui/ui-animation/api/0.1.0-dev14.txt b/ui/ui-animation/api/0.1.0-dev14.txt
index 8a2c48c..5f89483 100644
--- a/ui/ui-animation/api/0.1.0-dev14.txt
+++ b/ui/ui-animation/api/0.1.0-dev14.txt
@@ -1,7 +1,7 @@
 // Signature format: 3.0
 package androidx.ui.animation {
 
-  public final class AnimatedFloatModel extends androidx.animation.AnimatedFloat {
+  @androidx.compose.Stable public final class AnimatedFloatModel extends androidx.animation.AnimatedFloat {
     ctor public AnimatedFloatModel(float initialValue, androidx.animation.AnimationClockObservable clock, float visibilityThreshold);
     method public Float! getValue();
     method protected void setValue(float p);
@@ -9,12 +9,12 @@
   }
 
   public final class AnimatedValueEffectsKt {
-    method public static androidx.animation.AnimatedValue<androidx.ui.graphics.Color,androidx.animation.AnimationVector4D> animatedColor-o4iVt3U(long initVal, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
-    method public static androidx.animation.AnimatedFloat animatedFloat(float initVal, float visibilityThreshold = 0.01f, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
-    method public static <T, V extends androidx.animation.AnimationVector> androidx.animation.AnimatedValue<T,V> animatedValue(T? initVal, androidx.animation.TwoWayConverter<T,V> converter, V? visibilityThreshold = null, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
+    method @androidx.compose.Composable public static androidx.animation.AnimatedValue<androidx.ui.graphics.Color,androidx.animation.AnimationVector4D> animatedColor-o4iVt3U(long initVal, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
+    method @androidx.compose.Composable public static androidx.animation.AnimatedFloat animatedFloat(float initVal, float visibilityThreshold = 0.01f, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
+    method @androidx.compose.Composable public static <T, V extends androidx.animation.AnimationVector> androidx.animation.AnimatedValue<T,V> animatedValue(T? initVal, androidx.animation.TwoWayConverter<T,V> converter, V? visibilityThreshold = null, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
   }
 
-  public final class AnimatedValueModel<T, V extends androidx.animation.AnimationVector> extends androidx.animation.AnimatedValue<T,V> {
+  @androidx.compose.Stable public final class AnimatedValueModel<T, V extends androidx.animation.AnimationVector> extends androidx.animation.AnimatedValue<T,V> {
     ctor public AnimatedValueModel(T! initialValue, androidx.animation.TwoWayConverter<T,V> typeConverter, androidx.animation.AnimationClockObservable clock, V? visibilityThreshold);
     method public T! getValue();
     method protected void setValue(T! p);
@@ -30,7 +30,7 @@
   }
 
   public final class CrossfadeKt {
-    method public static <T> void Crossfade(T? current, androidx.animation.AnimationBuilder<java.lang.Float> animation = androidx.animation.TweenBuilder(), kotlin.jvm.functions.Function1<? super T,kotlin.Unit> children);
+    method @androidx.compose.Composable public static <T> void Crossfade(T? current, androidx.animation.AnimationBuilder<java.lang.Float> animation = androidx.animation.TweenBuilder(), kotlin.jvm.functions.Function1<? super T,kotlin.Unit> children);
   }
 
   public final class DisposableAnimationClock implements androidx.animation.AnimationClockObservable {
@@ -43,7 +43,7 @@
   }
 
   public final class DisposableAnimationClockKt {
-    method public static androidx.ui.animation.DisposableAnimationClock asDisposableClock(androidx.animation.AnimationClockObservable);
+    method @androidx.compose.Composable public static androidx.ui.animation.DisposableAnimationClock asDisposableClock(androidx.animation.AnimationClockObservable);
   }
 
   public final class DpPropKey implements androidx.animation.PropKey<androidx.ui.unit.Dp,androidx.animation.AnimationVector1D> {
@@ -96,58 +96,58 @@
   }
 
   public final class SingleValueAnimationKt {
-    method public static float animate(float target, androidx.animation.AnimationBuilder<java.lang.Float> animBuilder = remember({ 
+    method @androidx.compose.Composable public static float animate(float target, androidx.animation.AnimationBuilder<java.lang.Float> animBuilder = remember({ 
     return <init>()
 }), float visibilityThreshold = 0.01f, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.Bounds animate(androidx.ui.unit.Bounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.Bounds> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.Bounds animate(androidx.ui.unit.Bounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.Bounds> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.Bounds,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.PxSize animate(androidx.ui.unit.PxSize target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxSize> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.PxSize animate(androidx.ui.unit.PxSize target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxSize> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxSize,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.PxPosition animate(androidx.ui.unit.PxPosition target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxPosition> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.PxPosition animate(androidx.ui.unit.PxPosition target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxPosition> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.PxBounds animate(androidx.ui.unit.PxBounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxBounds> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.PxBounds animate(androidx.ui.unit.PxBounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxBounds> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxBounds,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.IntPxPosition animate(androidx.ui.unit.IntPxPosition target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxPosition> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.IntPxPosition animate(androidx.ui.unit.IntPxPosition target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxPosition> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPxPosition,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.IntPxSize animate(androidx.ui.unit.IntPxSize target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxSize> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.IntPxSize animate(androidx.ui.unit.IntPxSize target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxSize> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPxSize,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.IntPxBounds animate(androidx.ui.unit.IntPxBounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxBounds> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.IntPxBounds animate(androidx.ui.unit.IntPxBounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxBounds> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPxBounds,kotlin.Unit>? endListener = null);
-    method public static <T extends androidx.animation.AnimationVector> T animate(T target, androidx.animation.AnimationBuilder<T> animBuilder = remember({ 
+    method @androidx.compose.Composable public static <T extends androidx.animation.AnimationVector> T animate(T target, androidx.animation.AnimationBuilder<T> animBuilder = remember({ 
     return <init>()
 }), T? visibilityThreshold = null, kotlin.jvm.functions.Function1<? super T,kotlin.Unit>? endListener = null);
-    method public static <T, V extends androidx.animation.AnimationVector> T! animate(T? target, androidx.animation.TwoWayConverter<T,V> converter, androidx.animation.AnimationBuilder<T> animBuilder = remember({ 
+    method @androidx.compose.Composable public static <T, V extends androidx.animation.AnimationVector> T! animate(T? target, androidx.animation.TwoWayConverter<T,V> converter, androidx.animation.AnimationBuilder<T> animBuilder = remember({ 
     return <init>()
 }), V? visibilityThreshold = null, kotlin.jvm.functions.Function1<? super T,kotlin.Unit>? endListener = null);
-    method public static long animate-4Ketza8(long target, androidx.animation.AnimationBuilder<androidx.ui.geometry.Size> animBuilder = remember({ 
+    method @androidx.compose.Composable public static long animate-4Ketza8(long target, androidx.animation.AnimationBuilder<androidx.ui.geometry.Size> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.geometry.Size,kotlin.Unit>? endListener = null);
-    method public static long animate-90dr43Y(long target, androidx.animation.AnimationBuilder<androidx.ui.graphics.Color> animBuilder = remember({ 
+    method @androidx.compose.Composable public static long animate-90dr43Y(long target, androidx.animation.AnimationBuilder<androidx.ui.graphics.Color> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.graphics.Color,kotlin.Unit>? endListener = null);
-    method public static float animate-aPXp8Ng(float target, androidx.animation.AnimationBuilder<androidx.ui.unit.Px> animBuilder = remember({ 
+    method @androidx.compose.Composable public static float animate-aPXp8Ng(float target, androidx.animation.AnimationBuilder<androidx.ui.unit.Px> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.Px,kotlin.Unit>? endListener = null);
-    method public static int animate-gxe4dkU(int target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPx> animBuilder = remember({ 
+    method @androidx.compose.Composable public static int animate-gxe4dkU(int target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPx> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPx,kotlin.Unit>? endListener = null);
-    method public static long animate-le0sloQ(long target, androidx.animation.AnimationBuilder<androidx.ui.unit.Position> animBuilder = remember({ 
+    method @androidx.compose.Composable public static long animate-le0sloQ(long target, androidx.animation.AnimationBuilder<androidx.ui.unit.Position> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.Position,kotlin.Unit>? endListener = null);
-    method public static float animate-qfPNtGo(float target, androidx.animation.AnimationBuilder<androidx.ui.unit.Dp> animBuilder = remember({ 
+    method @androidx.compose.Composable public static float animate-qfPNtGo(float target, androidx.animation.AnimationBuilder<androidx.ui.unit.Dp> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.Dp,kotlin.Unit>? endListener = null);
   }
 
   public final class TransitionKt {
-    method public static <T> void Transition(androidx.animation.TransitionDefinition<T> definition, T? toState, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current, T? initState = toState, kotlin.jvm.functions.Function1<? super T,kotlin.Unit>?  kotlin.jvm.functions.Function1<? super androidx.animation.TransitionState,kotlin.Unit> children);
+    method @androidx.compose.Composable public static <T> void Transition(androidx.animation.TransitionDefinition<T> definition, T? toState, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current, T? initState = toState, kotlin.jvm.functions.Function1<? super T,kotlin.Unit>?  kotlin.jvm.functions.Function1<? super androidx.animation.TransitionState,kotlin.Unit> children);
     method public static boolean getTransitionsEnabled();
     method public static void setTransitionsEnabled(boolean p);
   }
diff --git a/ui/ui-animation/api/current.txt b/ui/ui-animation/api/current.txt
index 8a2c48c..5f89483 100644
--- a/ui/ui-animation/api/current.txt
+++ b/ui/ui-animation/api/current.txt
@@ -1,7 +1,7 @@
 // Signature format: 3.0
 package androidx.ui.animation {
 
-  public final class AnimatedFloatModel extends androidx.animation.AnimatedFloat {
+  @androidx.compose.Stable public final class AnimatedFloatModel extends androidx.animation.AnimatedFloat {
     ctor public AnimatedFloatModel(float initialValue, androidx.animation.AnimationClockObservable clock, float visibilityThreshold);
     method public Float! getValue();
     method protected void setValue(float p);
@@ -9,12 +9,12 @@
   }
 
   public final class AnimatedValueEffectsKt {
-    method public static androidx.animation.AnimatedValue<androidx.ui.graphics.Color,androidx.animation.AnimationVector4D> animatedColor-o4iVt3U(long initVal, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
-    method public static androidx.animation.AnimatedFloat animatedFloat(float initVal, float visibilityThreshold = 0.01f, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
-    method public static <T, V extends androidx.animation.AnimationVector> androidx.animation.AnimatedValue<T,V> animatedValue(T? initVal, androidx.animation.TwoWayConverter<T,V> converter, V? visibilityThreshold = null, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
+    method @androidx.compose.Composable public static androidx.animation.AnimatedValue<androidx.ui.graphics.Color,androidx.animation.AnimationVector4D> animatedColor-o4iVt3U(long initVal, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
+    method @androidx.compose.Composable public static androidx.animation.AnimatedFloat animatedFloat(float initVal, float visibilityThreshold = 0.01f, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
+    method @androidx.compose.Composable public static <T, V extends androidx.animation.AnimationVector> androidx.animation.AnimatedValue<T,V> animatedValue(T? initVal, androidx.animation.TwoWayConverter<T,V> converter, V? visibilityThreshold = null, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
   }
 
-  public final class AnimatedValueModel<T, V extends androidx.animation.AnimationVector> extends androidx.animation.AnimatedValue<T,V> {
+  @androidx.compose.Stable public final class AnimatedValueModel<T, V extends androidx.animation.AnimationVector> extends androidx.animation.AnimatedValue<T,V> {
     ctor public AnimatedValueModel(T! initialValue, androidx.animation.TwoWayConverter<T,V> typeConverter, androidx.animation.AnimationClockObservable clock, V? visibilityThreshold);
     method public T! getValue();
     method protected void setValue(T! p);
@@ -30,7 +30,7 @@
   }
 
   public final class CrossfadeKt {
-    method public static <T> void Crossfade(T? current, androidx.animation.AnimationBuilder<java.lang.Float> animation = androidx.animation.TweenBuilder(), kotlin.jvm.functions.Function1<? super T,kotlin.Unit> children);
+    method @androidx.compose.Composable public static <T> void Crossfade(T? current, androidx.animation.AnimationBuilder<java.lang.Float> animation = androidx.animation.TweenBuilder(), kotlin.jvm.functions.Function1<? super T,kotlin.Unit> children);
   }
 
   public final class DisposableAnimationClock implements androidx.animation.AnimationClockObservable {
@@ -43,7 +43,7 @@
   }
 
   public final class DisposableAnimationClockKt {
-    method public static androidx.ui.animation.DisposableAnimationClock asDisposableClock(androidx.animation.AnimationClockObservable);
+    method @androidx.compose.Composable public static androidx.ui.animation.DisposableAnimationClock asDisposableClock(androidx.animation.AnimationClockObservable);
   }
 
   public final class DpPropKey implements androidx.animation.PropKey<androidx.ui.unit.Dp,androidx.animation.AnimationVector1D> {
@@ -96,58 +96,58 @@
   }
 
   public final class SingleValueAnimationKt {
-    method public static float animate(float target, androidx.animation.AnimationBuilder<java.lang.Float> animBuilder = remember({ 
+    method @androidx.compose.Composable public static float animate(float target, androidx.animation.AnimationBuilder<java.lang.Float> animBuilder = remember({ 
     return <init>()
 }), float visibilityThreshold = 0.01f, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.Bounds animate(androidx.ui.unit.Bounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.Bounds> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.Bounds animate(androidx.ui.unit.Bounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.Bounds> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.Bounds,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.PxSize animate(androidx.ui.unit.PxSize target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxSize> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.PxSize animate(androidx.ui.unit.PxSize target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxSize> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxSize,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.PxPosition animate(androidx.ui.unit.PxPosition target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxPosition> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.PxPosition animate(androidx.ui.unit.PxPosition target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxPosition> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.PxBounds animate(androidx.ui.unit.PxBounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxBounds> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.PxBounds animate(androidx.ui.unit.PxBounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxBounds> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxBounds,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.IntPxPosition animate(androidx.ui.unit.IntPxPosition target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxPosition> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.IntPxPosition animate(androidx.ui.unit.IntPxPosition target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxPosition> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPxPosition,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.IntPxSize animate(androidx.ui.unit.IntPxSize target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxSize> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.IntPxSize animate(androidx.ui.unit.IntPxSize target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxSize> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPxSize,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.IntPxBounds animate(androidx.ui.unit.IntPxBounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxBounds> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.IntPxBounds animate(androidx.ui.unit.IntPxBounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxBounds> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPxBounds,kotlin.Unit>? endListener = null);
-    method public static <T extends androidx.animation.AnimationVector> T animate(T target, androidx.animation.AnimationBuilder<T> animBuilder = remember({ 
+    method @androidx.compose.Composable public static <T extends androidx.animation.AnimationVector> T animate(T target, androidx.animation.AnimationBuilder<T> animBuilder = remember({ 
     return <init>()
 }), T? visibilityThreshold = null, kotlin.jvm.functions.Function1<? super T,kotlin.Unit>? endListener = null);
-    method public static <T, V extends androidx.animation.AnimationVector> T! animate(T? target, androidx.animation.TwoWayConverter<T,V> converter, androidx.animation.AnimationBuilder<T> animBuilder = remember({ 
+    method @androidx.compose.Composable public static <T, V extends androidx.animation.AnimationVector> T! animate(T? target, androidx.animation.TwoWayConverter<T,V> converter, androidx.animation.AnimationBuilder<T> animBuilder = remember({ 
     return <init>()
 }), V? visibilityThreshold = null, kotlin.jvm.functions.Function1<? super T,kotlin.Unit>? endListener = null);
-    method public static long animate-4Ketza8(long target, androidx.animation.AnimationBuilder<androidx.ui.geometry.Size> animBuilder = remember({ 
+    method @androidx.compose.Composable public static long animate-4Ketza8(long target, androidx.animation.AnimationBuilder<androidx.ui.geometry.Size> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.geometry.Size,kotlin.Unit>? endListener = null);
-    method public static long animate-90dr43Y(long target, androidx.animation.AnimationBuilder<androidx.ui.graphics.Color> animBuilder = remember({ 
+    method @androidx.compose.Composable public static long animate-90dr43Y(long target, androidx.animation.AnimationBuilder<androidx.ui.graphics.Color> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.graphics.Color,kotlin.Unit>? endListener = null);
-    method public static float animate-aPXp8Ng(float target, androidx.animation.AnimationBuilder<androidx.ui.unit.Px> animBuilder = remember({ 
+    method @androidx.compose.Composable public static float animate-aPXp8Ng(float target, androidx.animation.AnimationBuilder<androidx.ui.unit.Px> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.Px,kotlin.Unit>? endListener = null);
-    method public static int animate-gxe4dkU(int target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPx> animBuilder = remember({ 
+    method @androidx.compose.Composable public static int animate-gxe4dkU(int target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPx> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPx,kotlin.Unit>? endListener = null);
-    method public static long animate-le0sloQ(long target, androidx.animation.AnimationBuilder<androidx.ui.unit.Position> animBuilder = remember({ 
+    method @androidx.compose.Composable public static long animate-le0sloQ(long target, androidx.animation.AnimationBuilder<androidx.ui.unit.Position> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.Position,kotlin.Unit>? endListener = null);
-    method public static float animate-qfPNtGo(float target, androidx.animation.AnimationBuilder<androidx.ui.unit.Dp> animBuilder = remember({ 
+    method @androidx.compose.Composable public static float animate-qfPNtGo(float target, androidx.animation.AnimationBuilder<androidx.ui.unit.Dp> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.Dp,kotlin.Unit>? endListener = null);
   }
 
   public final class TransitionKt {
-    method public static <T> void Transition(androidx.animation.TransitionDefinition<T> definition, T? toState, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current, T? initState = toState, kotlin.jvm.functions.Function1<? super T,kotlin.Unit>?  kotlin.jvm.functions.Function1<? super androidx.animation.TransitionState,kotlin.Unit> children);
+    method @androidx.compose.Composable public static <T> void Transition(androidx.animation.TransitionDefinition<T> definition, T? toState, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current, T? initState = toState, kotlin.jvm.functions.Function1<? super T,kotlin.Unit>?  kotlin.jvm.functions.Function1<? super androidx.animation.TransitionState,kotlin.Unit> children);
     method public static boolean getTransitionsEnabled();
     method public static void setTransitionsEnabled(boolean p);
   }
diff --git a/ui/ui-animation/api/public_plus_experimental_0.1.0-dev14.txt b/ui/ui-animation/api/public_plus_experimental_0.1.0-dev14.txt
index 8a2c48c..5f89483 100644
--- a/ui/ui-animation/api/public_plus_experimental_0.1.0-dev14.txt
+++ b/ui/ui-animation/api/public_plus_experimental_0.1.0-dev14.txt
@@ -1,7 +1,7 @@
 // Signature format: 3.0
 package androidx.ui.animation {
 
-  public final class AnimatedFloatModel extends androidx.animation.AnimatedFloat {
+  @androidx.compose.Stable public final class AnimatedFloatModel extends androidx.animation.AnimatedFloat {
     ctor public AnimatedFloatModel(float initialValue, androidx.animation.AnimationClockObservable clock, float visibilityThreshold);
     method public Float! getValue();
     method protected void setValue(float p);
@@ -9,12 +9,12 @@
   }
 
   public final class AnimatedValueEffectsKt {
-    method public static androidx.animation.AnimatedValue<androidx.ui.graphics.Color,androidx.animation.AnimationVector4D> animatedColor-o4iVt3U(long initVal, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
-    method public static androidx.animation.AnimatedFloat animatedFloat(float initVal, float visibilityThreshold = 0.01f, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
-    method public static <T, V extends androidx.animation.AnimationVector> androidx.animation.AnimatedValue<T,V> animatedValue(T? initVal, androidx.animation.TwoWayConverter<T,V> converter, V? visibilityThreshold = null, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
+    method @androidx.compose.Composable public static androidx.animation.AnimatedValue<androidx.ui.graphics.Color,androidx.animation.AnimationVector4D> animatedColor-o4iVt3U(long initVal, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
+    method @androidx.compose.Composable public static androidx.animation.AnimatedFloat animatedFloat(float initVal, float visibilityThreshold = 0.01f, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
+    method @androidx.compose.Composable public static <T, V extends androidx.animation.AnimationVector> androidx.animation.AnimatedValue<T,V> animatedValue(T? initVal, androidx.animation.TwoWayConverter<T,V> converter, V? visibilityThreshold = null, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
   }
 
-  public final class AnimatedValueModel<T, V extends androidx.animation.AnimationVector> extends androidx.animation.AnimatedValue<T,V> {
+  @androidx.compose.Stable public final class AnimatedValueModel<T, V extends androidx.animation.AnimationVector> extends androidx.animation.AnimatedValue<T,V> {
     ctor public AnimatedValueModel(T! initialValue, androidx.animation.TwoWayConverter<T,V> typeConverter, androidx.animation.AnimationClockObservable clock, V? visibilityThreshold);
     method public T! getValue();
     method protected void setValue(T! p);
@@ -30,7 +30,7 @@
   }
 
   public final class CrossfadeKt {
-    method public static <T> void Crossfade(T? current, androidx.animation.AnimationBuilder<java.lang.Float> animation = androidx.animation.TweenBuilder(), kotlin.jvm.functions.Function1<? super T,kotlin.Unit> children);
+    method @androidx.compose.Composable public static <T> void Crossfade(T? current, androidx.animation.AnimationBuilder<java.lang.Float> animation = androidx.animation.TweenBuilder(), kotlin.jvm.functions.Function1<? super T,kotlin.Unit> children);
   }
 
   public final class DisposableAnimationClock implements androidx.animation.AnimationClockObservable {
@@ -43,7 +43,7 @@
   }
 
   public final class DisposableAnimationClockKt {
-    method public static androidx.ui.animation.DisposableAnimationClock asDisposableClock(androidx.animation.AnimationClockObservable);
+    method @androidx.compose.Composable public static androidx.ui.animation.DisposableAnimationClock asDisposableClock(androidx.animation.AnimationClockObservable);
   }
 
   public final class DpPropKey implements androidx.animation.PropKey<androidx.ui.unit.Dp,androidx.animation.AnimationVector1D> {
@@ -96,58 +96,58 @@
   }
 
   public final class SingleValueAnimationKt {
-    method public static float animate(float target, androidx.animation.AnimationBuilder<java.lang.Float> animBuilder = remember({ 
+    method @androidx.compose.Composable public static float animate(float target, androidx.animation.AnimationBuilder<java.lang.Float> animBuilder = remember({ 
     return <init>()
 }), float visibilityThreshold = 0.01f, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.Bounds animate(androidx.ui.unit.Bounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.Bounds> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.Bounds animate(androidx.ui.unit.Bounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.Bounds> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.Bounds,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.PxSize animate(androidx.ui.unit.PxSize target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxSize> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.PxSize animate(androidx.ui.unit.PxSize target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxSize> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxSize,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.PxPosition animate(androidx.ui.unit.PxPosition target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxPosition> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.PxPosition animate(androidx.ui.unit.PxPosition target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxPosition> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.PxBounds animate(androidx.ui.unit.PxBounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxBounds> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.PxBounds animate(androidx.ui.unit.PxBounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxBounds> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxBounds,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.IntPxPosition animate(androidx.ui.unit.IntPxPosition target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxPosition> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.IntPxPosition animate(androidx.ui.unit.IntPxPosition target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxPosition> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPxPosition,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.IntPxSize animate(androidx.ui.unit.IntPxSize target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxSize> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.IntPxSize animate(androidx.ui.unit.IntPxSize target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxSize> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPxSize,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.IntPxBounds animate(androidx.ui.unit.IntPxBounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxBounds> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.IntPxBounds animate(androidx.ui.unit.IntPxBounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxBounds> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPxBounds,kotlin.Unit>? endListener = null);
-    method public static <T extends androidx.animation.AnimationVector> T animate(T target, androidx.animation.AnimationBuilder<T> animBuilder = remember({ 
+    method @androidx.compose.Composable public static <T extends androidx.animation.AnimationVector> T animate(T target, androidx.animation.AnimationBuilder<T> animBuilder = remember({ 
     return <init>()
 }), T? visibilityThreshold = null, kotlin.jvm.functions.Function1<? super T,kotlin.Unit>? endListener = null);
-    method public static <T, V extends androidx.animation.AnimationVector> T! animate(T? target, androidx.animation.TwoWayConverter<T,V> converter, androidx.animation.AnimationBuilder<T> animBuilder = remember({ 
+    method @androidx.compose.Composable public static <T, V extends androidx.animation.AnimationVector> T! animate(T? target, androidx.animation.TwoWayConverter<T,V> converter, androidx.animation.AnimationBuilder<T> animBuilder = remember({ 
     return <init>()
 }), V? visibilityThreshold = null, kotlin.jvm.functions.Function1<? super T,kotlin.Unit>? endListener = null);
-    method public static long animate-4Ketza8(long target, androidx.animation.AnimationBuilder<androidx.ui.geometry.Size> animBuilder = remember({ 
+    method @androidx.compose.Composable public static long animate-4Ketza8(long target, androidx.animation.AnimationBuilder<androidx.ui.geometry.Size> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.geometry.Size,kotlin.Unit>? endListener = null);
-    method public static long animate-90dr43Y(long target, androidx.animation.AnimationBuilder<androidx.ui.graphics.Color> animBuilder = remember({ 
+    method @androidx.compose.Composable public static long animate-90dr43Y(long target, androidx.animation.AnimationBuilder<androidx.ui.graphics.Color> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.graphics.Color,kotlin.Unit>? endListener = null);
-    method public static float animate-aPXp8Ng(float target, androidx.animation.AnimationBuilder<androidx.ui.unit.Px> animBuilder = remember({ 
+    method @androidx.compose.Composable public static float animate-aPXp8Ng(float target, androidx.animation.AnimationBuilder<androidx.ui.unit.Px> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.Px,kotlin.Unit>? endListener = null);
-    method public static int animate-gxe4dkU(int target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPx> animBuilder = remember({ 
+    method @androidx.compose.Composable public static int animate-gxe4dkU(int target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPx> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPx,kotlin.Unit>? endListener = null);
-    method public static long animate-le0sloQ(long target, androidx.animation.AnimationBuilder<androidx.ui.unit.Position> animBuilder = remember({ 
+    method @androidx.compose.Composable public static long animate-le0sloQ(long target, androidx.animation.AnimationBuilder<androidx.ui.unit.Position> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.Position,kotlin.Unit>? endListener = null);
-    method public static float animate-qfPNtGo(float target, androidx.animation.AnimationBuilder<androidx.ui.unit.Dp> animBuilder = remember({ 
+    method @androidx.compose.Composable public static float animate-qfPNtGo(float target, androidx.animation.AnimationBuilder<androidx.ui.unit.Dp> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.Dp,kotlin.Unit>? endListener = null);
   }
 
   public final class TransitionKt {
-    method public static <T> void Transition(androidx.animation.TransitionDefinition<T> definition, T? toState, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current, T? initState = toState, kotlin.jvm.functions.Function1<? super T,kotlin.Unit>?  kotlin.jvm.functions.Function1<? super androidx.animation.TransitionState,kotlin.Unit> children);
+    method @androidx.compose.Composable public static <T> void Transition(androidx.animation.TransitionDefinition<T> definition, T? toState, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current, T? initState = toState, kotlin.jvm.functions.Function1<? super T,kotlin.Unit>?  kotlin.jvm.functions.Function1<? super androidx.animation.TransitionState,kotlin.Unit> children);
     method public static boolean getTransitionsEnabled();
     method public static void setTransitionsEnabled(boolean p);
   }
diff --git a/ui/ui-animation/api/public_plus_experimental_current.txt b/ui/ui-animation/api/public_plus_experimental_current.txt
index 8a2c48c..5f89483 100644
--- a/ui/ui-animation/api/public_plus_experimental_current.txt
+++ b/ui/ui-animation/api/public_plus_experimental_current.txt
@@ -1,7 +1,7 @@
 // Signature format: 3.0
 package androidx.ui.animation {
 
-  public final class AnimatedFloatModel extends androidx.animation.AnimatedFloat {
+  @androidx.compose.Stable public final class AnimatedFloatModel extends androidx.animation.AnimatedFloat {
     ctor public AnimatedFloatModel(float initialValue, androidx.animation.AnimationClockObservable clock, float visibilityThreshold);
     method public Float! getValue();
     method protected void setValue(float p);
@@ -9,12 +9,12 @@
   }
 
   public final class AnimatedValueEffectsKt {
-    method public static androidx.animation.AnimatedValue<androidx.ui.graphics.Color,androidx.animation.AnimationVector4D> animatedColor-o4iVt3U(long initVal, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
-    method public static androidx.animation.AnimatedFloat animatedFloat(float initVal, float visibilityThreshold = 0.01f, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
-    method public static <T, V extends androidx.animation.AnimationVector> androidx.animation.AnimatedValue<T,V> animatedValue(T? initVal, androidx.animation.TwoWayConverter<T,V> converter, V? visibilityThreshold = null, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
+    method @androidx.compose.Composable public static androidx.animation.AnimatedValue<androidx.ui.graphics.Color,androidx.animation.AnimationVector4D> animatedColor-o4iVt3U(long initVal, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
+    method @androidx.compose.Composable public static androidx.animation.AnimatedFloat animatedFloat(float initVal, float visibilityThreshold = 0.01f, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
+    method @androidx.compose.Composable public static <T, V extends androidx.animation.AnimationVector> androidx.animation.AnimatedValue<T,V> animatedValue(T? initVal, androidx.animation.TwoWayConverter<T,V> converter, V? visibilityThreshold = null, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
   }
 
-  public final class AnimatedValueModel<T, V extends androidx.animation.AnimationVector> extends androidx.animation.AnimatedValue<T,V> {
+  @androidx.compose.Stable public final class AnimatedValueModel<T, V extends androidx.animation.AnimationVector> extends androidx.animation.AnimatedValue<T,V> {
     ctor public AnimatedValueModel(T! initialValue, androidx.animation.TwoWayConverter<T,V> typeConverter, androidx.animation.AnimationClockObservable clock, V? visibilityThreshold);
     method public T! getValue();
     method protected void setValue(T! p);
@@ -30,7 +30,7 @@
   }
 
   public final class CrossfadeKt {
-    method public static <T> void Crossfade(T? current, androidx.animation.AnimationBuilder<java.lang.Float> animation = androidx.animation.TweenBuilder(), kotlin.jvm.functions.Function1<? super T,kotlin.Unit> children);
+    method @androidx.compose.Composable public static <T> void Crossfade(T? current, androidx.animation.AnimationBuilder<java.lang.Float> animation = androidx.animation.TweenBuilder(), kotlin.jvm.functions.Function1<? super T,kotlin.Unit> children);
   }
 
   public final class DisposableAnimationClock implements androidx.animation.AnimationClockObservable {
@@ -43,7 +43,7 @@
   }
 
   public final class DisposableAnimationClockKt {
-    method public static androidx.ui.animation.DisposableAnimationClock asDisposableClock(androidx.animation.AnimationClockObservable);
+    method @androidx.compose.Composable public static androidx.ui.animation.DisposableAnimationClock asDisposableClock(androidx.animation.AnimationClockObservable);
   }
 
   public final class DpPropKey implements androidx.animation.PropKey<androidx.ui.unit.Dp,androidx.animation.AnimationVector1D> {
@@ -96,58 +96,58 @@
   }
 
   public final class SingleValueAnimationKt {
-    method public static float animate(float target, androidx.animation.AnimationBuilder<java.lang.Float> animBuilder = remember({ 
+    method @androidx.compose.Composable public static float animate(float target, androidx.animation.AnimationBuilder<java.lang.Float> animBuilder = remember({ 
     return <init>()
 }), float visibilityThreshold = 0.01f, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.Bounds animate(androidx.ui.unit.Bounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.Bounds> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.Bounds animate(androidx.ui.unit.Bounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.Bounds> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.Bounds,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.PxSize animate(androidx.ui.unit.PxSize target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxSize> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.PxSize animate(androidx.ui.unit.PxSize target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxSize> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxSize,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.PxPosition animate(androidx.ui.unit.PxPosition target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxPosition> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.PxPosition animate(androidx.ui.unit.PxPosition target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxPosition> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.PxBounds animate(androidx.ui.unit.PxBounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxBounds> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.PxBounds animate(androidx.ui.unit.PxBounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxBounds> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxBounds,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.IntPxPosition animate(androidx.ui.unit.IntPxPosition target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxPosition> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.IntPxPosition animate(androidx.ui.unit.IntPxPosition target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxPosition> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPxPosition,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.IntPxSize animate(androidx.ui.unit.IntPxSize target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxSize> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.IntPxSize animate(androidx.ui.unit.IntPxSize target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxSize> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPxSize,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.IntPxBounds animate(androidx.ui.unit.IntPxBounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxBounds> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.IntPxBounds animate(androidx.ui.unit.IntPxBounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxBounds> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPxBounds,kotlin.Unit>? endListener = null);
-    method public static <T extends androidx.animation.AnimationVector> T animate(T target, androidx.animation.AnimationBuilder<T> animBuilder = remember({ 
+    method @androidx.compose.Composable public static <T extends androidx.animation.AnimationVector> T animate(T target, androidx.animation.AnimationBuilder<T> animBuilder = remember({ 
     return <init>()
 }), T? visibilityThreshold = null, kotlin.jvm.functions.Function1<? super T,kotlin.Unit>? endListener = null);
-    method public static <T, V extends androidx.animation.AnimationVector> T! animate(T? target, androidx.animation.TwoWayConverter<T,V> converter, androidx.animation.AnimationBuilder<T> animBuilder = remember({ 
+    method @androidx.compose.Composable public static <T, V extends androidx.animation.AnimationVector> T! animate(T? target, androidx.animation.TwoWayConverter<T,V> converter, androidx.animation.AnimationBuilder<T> animBuilder = remember({ 
     return <init>()
 }), V? visibilityThreshold = null, kotlin.jvm.functions.Function1<? super T,kotlin.Unit>? endListener = null);
-    method public static long animate-4Ketza8(long target, androidx.animation.AnimationBuilder<androidx.ui.geometry.Size> animBuilder = remember({ 
+    method @androidx.compose.Composable public static long animate-4Ketza8(long target, androidx.animation.AnimationBuilder<androidx.ui.geometry.Size> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.geometry.Size,kotlin.Unit>? endListener = null);
-    method public static long animate-90dr43Y(long target, androidx.animation.AnimationBuilder<androidx.ui.graphics.Color> animBuilder = remember({ 
+    method @androidx.compose.Composable public static long animate-90dr43Y(long target, androidx.animation.AnimationBuilder<androidx.ui.graphics.Color> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.graphics.Color,kotlin.Unit>? endListener = null);
-    method public static float animate-aPXp8Ng(float target, androidx.animation.AnimationBuilder<androidx.ui.unit.Px> animBuilder = remember({ 
+    method @androidx.compose.Composable public static float animate-aPXp8Ng(float target, androidx.animation.AnimationBuilder<androidx.ui.unit.Px> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.Px,kotlin.Unit>? endListener = null);
-    method public static int animate-gxe4dkU(int target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPx> animBuilder = remember({ 
+    method @androidx.compose.Composable public static int animate-gxe4dkU(int target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPx> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPx,kotlin.Unit>? endListener = null);
-    method public static long animate-le0sloQ(long target, androidx.animation.AnimationBuilder<androidx.ui.unit.Position> animBuilder = remember({ 
+    method @androidx.compose.Composable public static long animate-le0sloQ(long target, androidx.animation.AnimationBuilder<androidx.ui.unit.Position> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.Position,kotlin.Unit>? endListener = null);
-    method public static float animate-qfPNtGo(float target, androidx.animation.AnimationBuilder<androidx.ui.unit.Dp> animBuilder = remember({ 
+    method @androidx.compose.Composable public static float animate-qfPNtGo(float target, androidx.animation.AnimationBuilder<androidx.ui.unit.Dp> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.Dp,kotlin.Unit>? endListener = null);
   }
 
   public final class TransitionKt {
-    method public static <T> void Transition(androidx.animation.TransitionDefinition<T> definition, T? toState, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current, T? initState = toState, kotlin.jvm.functions.Function1<? super T,kotlin.Unit>?  kotlin.jvm.functions.Function1<? super androidx.animation.TransitionState,kotlin.Unit> children);
+    method @androidx.compose.Composable public static <T> void Transition(androidx.animation.TransitionDefinition<T> definition, T? toState, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current, T? initState = toState, kotlin.jvm.functions.Function1<? super T,kotlin.Unit>?  kotlin.jvm.functions.Function1<? super androidx.animation.TransitionState,kotlin.Unit> children);
     method public static boolean getTransitionsEnabled();
     method public static void setTransitionsEnabled(boolean p);
   }
diff --git a/ui/ui-animation/api/restricted_0.1.0-dev14.txt b/ui/ui-animation/api/restricted_0.1.0-dev14.txt
index 8a2c48c..5f89483 100644
--- a/ui/ui-animation/api/restricted_0.1.0-dev14.txt
+++ b/ui/ui-animation/api/restricted_0.1.0-dev14.txt
@@ -1,7 +1,7 @@
 // Signature format: 3.0
 package androidx.ui.animation {
 
-  public final class AnimatedFloatModel extends androidx.animation.AnimatedFloat {
+  @androidx.compose.Stable public final class AnimatedFloatModel extends androidx.animation.AnimatedFloat {
     ctor public AnimatedFloatModel(float initialValue, androidx.animation.AnimationClockObservable clock, float visibilityThreshold);
     method public Float! getValue();
     method protected void setValue(float p);
@@ -9,12 +9,12 @@
   }
 
   public final class AnimatedValueEffectsKt {
-    method public static androidx.animation.AnimatedValue<androidx.ui.graphics.Color,androidx.animation.AnimationVector4D> animatedColor-o4iVt3U(long initVal, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
-    method public static androidx.animation.AnimatedFloat animatedFloat(float initVal, float visibilityThreshold = 0.01f, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
-    method public static <T, V extends androidx.animation.AnimationVector> androidx.animation.AnimatedValue<T,V> animatedValue(T? initVal, androidx.animation.TwoWayConverter<T,V> converter, V? visibilityThreshold = null, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
+    method @androidx.compose.Composable public static androidx.animation.AnimatedValue<androidx.ui.graphics.Color,androidx.animation.AnimationVector4D> animatedColor-o4iVt3U(long initVal, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
+    method @androidx.compose.Composable public static androidx.animation.AnimatedFloat animatedFloat(float initVal, float visibilityThreshold = 0.01f, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
+    method @androidx.compose.Composable public static <T, V extends androidx.animation.AnimationVector> androidx.animation.AnimatedValue<T,V> animatedValue(T? initVal, androidx.animation.TwoWayConverter<T,V> converter, V? visibilityThreshold = null, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
   }
 
-  public final class AnimatedValueModel<T, V extends androidx.animation.AnimationVector> extends androidx.animation.AnimatedValue<T,V> {
+  @androidx.compose.Stable public final class AnimatedValueModel<T, V extends androidx.animation.AnimationVector> extends androidx.animation.AnimatedValue<T,V> {
     ctor public AnimatedValueModel(T! initialValue, androidx.animation.TwoWayConverter<T,V> typeConverter, androidx.animation.AnimationClockObservable clock, V? visibilityThreshold);
     method public T! getValue();
     method protected void setValue(T! p);
@@ -30,7 +30,7 @@
   }
 
   public final class CrossfadeKt {
-    method public static <T> void Crossfade(T? current, androidx.animation.AnimationBuilder<java.lang.Float> animation = androidx.animation.TweenBuilder(), kotlin.jvm.functions.Function1<? super T,kotlin.Unit> children);
+    method @androidx.compose.Composable public static <T> void Crossfade(T? current, androidx.animation.AnimationBuilder<java.lang.Float> animation = androidx.animation.TweenBuilder(), kotlin.jvm.functions.Function1<? super T,kotlin.Unit> children);
   }
 
   public final class DisposableAnimationClock implements androidx.animation.AnimationClockObservable {
@@ -43,7 +43,7 @@
   }
 
   public final class DisposableAnimationClockKt {
-    method public static androidx.ui.animation.DisposableAnimationClock asDisposableClock(androidx.animation.AnimationClockObservable);
+    method @androidx.compose.Composable public static androidx.ui.animation.DisposableAnimationClock asDisposableClock(androidx.animation.AnimationClockObservable);
   }
 
   public final class DpPropKey implements androidx.animation.PropKey<androidx.ui.unit.Dp,androidx.animation.AnimationVector1D> {
@@ -96,58 +96,58 @@
   }
 
   public final class SingleValueAnimationKt {
-    method public static float animate(float target, androidx.animation.AnimationBuilder<java.lang.Float> animBuilder = remember({ 
+    method @androidx.compose.Composable public static float animate(float target, androidx.animation.AnimationBuilder<java.lang.Float> animBuilder = remember({ 
     return <init>()
 }), float visibilityThreshold = 0.01f, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.Bounds animate(androidx.ui.unit.Bounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.Bounds> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.Bounds animate(androidx.ui.unit.Bounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.Bounds> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.Bounds,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.PxSize animate(androidx.ui.unit.PxSize target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxSize> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.PxSize animate(androidx.ui.unit.PxSize target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxSize> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxSize,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.PxPosition animate(androidx.ui.unit.PxPosition target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxPosition> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.PxPosition animate(androidx.ui.unit.PxPosition target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxPosition> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.PxBounds animate(androidx.ui.unit.PxBounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxBounds> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.PxBounds animate(androidx.ui.unit.PxBounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxBounds> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxBounds,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.IntPxPosition animate(androidx.ui.unit.IntPxPosition target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxPosition> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.IntPxPosition animate(androidx.ui.unit.IntPxPosition target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxPosition> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPxPosition,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.IntPxSize animate(androidx.ui.unit.IntPxSize target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxSize> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.IntPxSize animate(androidx.ui.unit.IntPxSize target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxSize> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPxSize,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.IntPxBounds animate(androidx.ui.unit.IntPxBounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxBounds> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.IntPxBounds animate(androidx.ui.unit.IntPxBounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxBounds> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPxBounds,kotlin.Unit>? endListener = null);
-    method public static <T extends androidx.animation.AnimationVector> T animate(T target, androidx.animation.AnimationBuilder<T> animBuilder = remember({ 
+    method @androidx.compose.Composable public static <T extends androidx.animation.AnimationVector> T animate(T target, androidx.animation.AnimationBuilder<T> animBuilder = remember({ 
     return <init>()
 }), T? visibilityThreshold = null, kotlin.jvm.functions.Function1<? super T,kotlin.Unit>? endListener = null);
-    method public static <T, V extends androidx.animation.AnimationVector> T! animate(T? target, androidx.animation.TwoWayConverter<T,V> converter, androidx.animation.AnimationBuilder<T> animBuilder = remember({ 
+    method @androidx.compose.Composable public static <T, V extends androidx.animation.AnimationVector> T! animate(T? target, androidx.animation.TwoWayConverter<T,V> converter, androidx.animation.AnimationBuilder<T> animBuilder = remember({ 
     return <init>()
 }), V? visibilityThreshold = null, kotlin.jvm.functions.Function1<? super T,kotlin.Unit>? endListener = null);
-    method public static long animate-4Ketza8(long target, androidx.animation.AnimationBuilder<androidx.ui.geometry.Size> animBuilder = remember({ 
+    method @androidx.compose.Composable public static long animate-4Ketza8(long target, androidx.animation.AnimationBuilder<androidx.ui.geometry.Size> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.geometry.Size,kotlin.Unit>? endListener = null);
-    method public static long animate-90dr43Y(long target, androidx.animation.AnimationBuilder<androidx.ui.graphics.Color> animBuilder = remember({ 
+    method @androidx.compose.Composable public static long animate-90dr43Y(long target, androidx.animation.AnimationBuilder<androidx.ui.graphics.Color> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.graphics.Color,kotlin.Unit>? endListener = null);
-    method public static float animate-aPXp8Ng(float target, androidx.animation.AnimationBuilder<androidx.ui.unit.Px> animBuilder = remember({ 
+    method @androidx.compose.Composable public static float animate-aPXp8Ng(float target, androidx.animation.AnimationBuilder<androidx.ui.unit.Px> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.Px,kotlin.Unit>? endListener = null);
-    method public static int animate-gxe4dkU(int target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPx> animBuilder = remember({ 
+    method @androidx.compose.Composable public static int animate-gxe4dkU(int target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPx> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPx,kotlin.Unit>? endListener = null);
-    method public static long animate-le0sloQ(long target, androidx.animation.AnimationBuilder<androidx.ui.unit.Position> animBuilder = remember({ 
+    method @androidx.compose.Composable public static long animate-le0sloQ(long target, androidx.animation.AnimationBuilder<androidx.ui.unit.Position> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.Position,kotlin.Unit>? endListener = null);
-    method public static float animate-qfPNtGo(float target, androidx.animation.AnimationBuilder<androidx.ui.unit.Dp> animBuilder = remember({ 
+    method @androidx.compose.Composable public static float animate-qfPNtGo(float target, androidx.animation.AnimationBuilder<androidx.ui.unit.Dp> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.Dp,kotlin.Unit>? endListener = null);
   }
 
   public final class TransitionKt {
-    method public static <T> void Transition(androidx.animation.TransitionDefinition<T> definition, T? toState, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current, T? initState = toState, kotlin.jvm.functions.Function1<? super T,kotlin.Unit>?  kotlin.jvm.functions.Function1<? super androidx.animation.TransitionState,kotlin.Unit> children);
+    method @androidx.compose.Composable public static <T> void Transition(androidx.animation.TransitionDefinition<T> definition, T? toState, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current, T? initState = toState, kotlin.jvm.functions.Function1<? super T,kotlin.Unit>?  kotlin.jvm.functions.Function1<? super androidx.animation.TransitionState,kotlin.Unit> children);
     method public static boolean getTransitionsEnabled();
     method public static void setTransitionsEnabled(boolean p);
   }
diff --git a/ui/ui-animation/api/restricted_current.txt b/ui/ui-animation/api/restricted_current.txt
index 8a2c48c..5f89483 100644
--- a/ui/ui-animation/api/restricted_current.txt
+++ b/ui/ui-animation/api/restricted_current.txt
@@ -1,7 +1,7 @@
 // Signature format: 3.0
 package androidx.ui.animation {
 
-  public final class AnimatedFloatModel extends androidx.animation.AnimatedFloat {
+  @androidx.compose.Stable public final class AnimatedFloatModel extends androidx.animation.AnimatedFloat {
     ctor public AnimatedFloatModel(float initialValue, androidx.animation.AnimationClockObservable clock, float visibilityThreshold);
     method public Float! getValue();
     method protected void setValue(float p);
@@ -9,12 +9,12 @@
   }
 
   public final class AnimatedValueEffectsKt {
-    method public static androidx.animation.AnimatedValue<androidx.ui.graphics.Color,androidx.animation.AnimationVector4D> animatedColor-o4iVt3U(long initVal, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
-    method public static androidx.animation.AnimatedFloat animatedFloat(float initVal, float visibilityThreshold = 0.01f, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
-    method public static <T, V extends androidx.animation.AnimationVector> androidx.animation.AnimatedValue<T,V> animatedValue(T? initVal, androidx.animation.TwoWayConverter<T,V> converter, V? visibilityThreshold = null, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
+    method @androidx.compose.Composable public static androidx.animation.AnimatedValue<androidx.ui.graphics.Color,androidx.animation.AnimationVector4D> animatedColor-o4iVt3U(long initVal, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
+    method @androidx.compose.Composable public static androidx.animation.AnimatedFloat animatedFloat(float initVal, float visibilityThreshold = 0.01f, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
+    method @androidx.compose.Composable public static <T, V extends androidx.animation.AnimationVector> androidx.animation.AnimatedValue<T,V> animatedValue(T? initVal, androidx.animation.TwoWayConverter<T,V> converter, V? visibilityThreshold = null, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current);
   }
 
-  public final class AnimatedValueModel<T, V extends androidx.animation.AnimationVector> extends androidx.animation.AnimatedValue<T,V> {
+  @androidx.compose.Stable public final class AnimatedValueModel<T, V extends androidx.animation.AnimationVector> extends androidx.animation.AnimatedValue<T,V> {
     ctor public AnimatedValueModel(T! initialValue, androidx.animation.TwoWayConverter<T,V> typeConverter, androidx.animation.AnimationClockObservable clock, V? visibilityThreshold);
     method public T! getValue();
     method protected void setValue(T! p);
@@ -30,7 +30,7 @@
   }
 
   public final class CrossfadeKt {
-    method public static <T> void Crossfade(T? current, androidx.animation.AnimationBuilder<java.lang.Float> animation = androidx.animation.TweenBuilder(), kotlin.jvm.functions.Function1<? super T,kotlin.Unit> children);
+    method @androidx.compose.Composable public static <T> void Crossfade(T? current, androidx.animation.AnimationBuilder<java.lang.Float> animation = androidx.animation.TweenBuilder(), kotlin.jvm.functions.Function1<? super T,kotlin.Unit> children);
   }
 
   public final class DisposableAnimationClock implements androidx.animation.AnimationClockObservable {
@@ -43,7 +43,7 @@
   }
 
   public final class DisposableAnimationClockKt {
-    method public static androidx.ui.animation.DisposableAnimationClock asDisposableClock(androidx.animation.AnimationClockObservable);
+    method @androidx.compose.Composable public static androidx.ui.animation.DisposableAnimationClock asDisposableClock(androidx.animation.AnimationClockObservable);
   }
 
   public final class DpPropKey implements androidx.animation.PropKey<androidx.ui.unit.Dp,androidx.animation.AnimationVector1D> {
@@ -96,58 +96,58 @@
   }
 
   public final class SingleValueAnimationKt {
-    method public static float animate(float target, androidx.animation.AnimationBuilder<java.lang.Float> animBuilder = remember({ 
+    method @androidx.compose.Composable public static float animate(float target, androidx.animation.AnimationBuilder<java.lang.Float> animBuilder = remember({ 
     return <init>()
 }), float visibilityThreshold = 0.01f, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.Bounds animate(androidx.ui.unit.Bounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.Bounds> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.Bounds animate(androidx.ui.unit.Bounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.Bounds> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.Bounds,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.PxSize animate(androidx.ui.unit.PxSize target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxSize> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.PxSize animate(androidx.ui.unit.PxSize target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxSize> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxSize,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.PxPosition animate(androidx.ui.unit.PxPosition target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxPosition> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.PxPosition animate(androidx.ui.unit.PxPosition target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxPosition> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.PxBounds animate(androidx.ui.unit.PxBounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxBounds> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.PxBounds animate(androidx.ui.unit.PxBounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.PxBounds> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxBounds,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.IntPxPosition animate(androidx.ui.unit.IntPxPosition target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxPosition> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.IntPxPosition animate(androidx.ui.unit.IntPxPosition target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxPosition> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPxPosition,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.IntPxSize animate(androidx.ui.unit.IntPxSize target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxSize> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.IntPxSize animate(androidx.ui.unit.IntPxSize target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxSize> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPxSize,kotlin.Unit>? endListener = null);
-    method public static androidx.ui.unit.IntPxBounds animate(androidx.ui.unit.IntPxBounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxBounds> animBuilder = remember({ 
+    method @androidx.compose.Composable public static androidx.ui.unit.IntPxBounds animate(androidx.ui.unit.IntPxBounds target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPxBounds> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPxBounds,kotlin.Unit>? endListener = null);
-    method public static <T extends androidx.animation.AnimationVector> T animate(T target, androidx.animation.AnimationBuilder<T> animBuilder = remember({ 
+    method @androidx.compose.Composable public static <T extends androidx.animation.AnimationVector> T animate(T target, androidx.animation.AnimationBuilder<T> animBuilder = remember({ 
     return <init>()
 }), T? visibilityThreshold = null, kotlin.jvm.functions.Function1<? super T,kotlin.Unit>? endListener = null);
-    method public static <T, V extends androidx.animation.AnimationVector> T! animate(T? target, androidx.animation.TwoWayConverter<T,V> converter, androidx.animation.AnimationBuilder<T> animBuilder = remember({ 
+    method @androidx.compose.Composable public static <T, V extends androidx.animation.AnimationVector> T! animate(T? target, androidx.animation.TwoWayConverter<T,V> converter, androidx.animation.AnimationBuilder<T> animBuilder = remember({ 
     return <init>()
 }), V? visibilityThreshold = null, kotlin.jvm.functions.Function1<? super T,kotlin.Unit>? endListener = null);
-    method public static long animate-4Ketza8(long target, androidx.animation.AnimationBuilder<androidx.ui.geometry.Size> animBuilder = remember({ 
+    method @androidx.compose.Composable public static long animate-4Ketza8(long target, androidx.animation.AnimationBuilder<androidx.ui.geometry.Size> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.geometry.Size,kotlin.Unit>? endListener = null);
-    method public static long animate-90dr43Y(long target, androidx.animation.AnimationBuilder<androidx.ui.graphics.Color> animBuilder = remember({ 
+    method @androidx.compose.Composable public static long animate-90dr43Y(long target, androidx.animation.AnimationBuilder<androidx.ui.graphics.Color> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.graphics.Color,kotlin.Unit>? endListener = null);
-    method public static float animate-aPXp8Ng(float target, androidx.animation.AnimationBuilder<androidx.ui.unit.Px> animBuilder = remember({ 
+    method @androidx.compose.Composable public static float animate-aPXp8Ng(float target, androidx.animation.AnimationBuilder<androidx.ui.unit.Px> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.Px,kotlin.Unit>? endListener = null);
-    method public static int animate-gxe4dkU(int target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPx> animBuilder = remember({ 
+    method @androidx.compose.Composable public static int animate-gxe4dkU(int target, androidx.animation.AnimationBuilder<androidx.ui.unit.IntPx> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPx,kotlin.Unit>? endListener = null);
-    method public static long animate-le0sloQ(long target, androidx.animation.AnimationBuilder<androidx.ui.unit.Position> animBuilder = remember({ 
+    method @androidx.compose.Composable public static long animate-le0sloQ(long target, androidx.animation.AnimationBuilder<androidx.ui.unit.Position> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.Position,kotlin.Unit>? endListener = null);
-    method public static float animate-qfPNtGo(float target, androidx.animation.AnimationBuilder<androidx.ui.unit.Dp> animBuilder = remember({ 
+    method @androidx.compose.Composable public static float animate-qfPNtGo(float target, androidx.animation.AnimationBuilder<androidx.ui.unit.Dp> animBuilder = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function1<? super androidx.ui.unit.Dp,kotlin.Unit>? endListener = null);
   }
 
   public final class TransitionKt {
-    method public static <T> void Transition(androidx.animation.TransitionDefinition<T> definition, T? toState, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current, T? initState = toState, kotlin.jvm.functions.Function1<? super T,kotlin.Unit>?  kotlin.jvm.functions.Function1<? super androidx.animation.TransitionState,kotlin.Unit> children);
+    method @androidx.compose.Composable public static <T> void Transition(androidx.animation.TransitionDefinition<T> definition, T? toState, androidx.animation.AnimationClockObservable clock = AnimationClockAmbient.current, T? initState = toState, kotlin.jvm.functions.Function1<? super T,kotlin.Unit>?  kotlin.jvm.functions.Function1<? super androidx.animation.TransitionState,kotlin.Unit> children);
     method public static boolean getTransitionsEnabled();
     method public static void setTransitionsEnabled(boolean p);
   }
diff --git a/ui/ui-core/api/0.1.0-dev14.txt b/ui/ui-core/api/0.1.0-dev14.txt
index 9ab7e39..39d56df 100644
--- a/ui/ui-core/api/0.1.0-dev14.txt
+++ b/ui/ui-core/api/0.1.0-dev14.txt
@@ -89,9 +89,9 @@
 
 package androidx.ui.core {
 
-  public final class AbsoluteAlignment implements androidx.ui.core.Alignment {
+  @androidx.compose.Immutable public final class AbsoluteAlignment implements androidx.ui.core.Alignment {
     method public androidx.ui.unit.IntPxPosition align(androidx.ui.unit.IntPxSize size, androidx.ui.core.LayoutDirection layoutDirection);
-    method public androidx.ui.core.AbsoluteAlignment copy(float verticalBias, float horizontalBias);
+    method @androidx.compose.Immutable public androidx.ui.core.AbsoluteAlignment copy(float verticalBias, float horizontalBias);
     field public static final androidx.ui.core.AbsoluteAlignment.Companion! Companion;
   }
 
@@ -114,12 +114,12 @@
     property public final androidx.ui.core.AbsoluteAlignment TopRight;
   }
 
-  public static final class AbsoluteAlignment.Horizontal implements androidx.ui.core.Alignment.Horizontal {
+  @androidx.compose.Immutable public static final class AbsoluteAlignment.Horizontal implements androidx.ui.core.Alignment.Horizontal {
     method public int align-Ujlv2dA(int size, androidx.ui.core.LayoutDirection layoutDirection);
-    method public androidx.ui.core.AbsoluteAlignment.Horizontal copy(float bias);
+    method @androidx.compose.Immutable public androidx.ui.core.AbsoluteAlignment.Horizontal copy(float bias);
   }
 
-  public interface Alignment {
+  @androidx.compose.Immutable public interface Alignment {
     method public androidx.ui.unit.IntPxPosition align(androidx.ui.unit.IntPxSize size, androidx.ui.core.LayoutDirection layoutDirection = LayoutDirection.Ltr);
     field public static final androidx.ui.core.Alignment.Companion! Companion;
   }
@@ -157,15 +157,15 @@
     property public final androidx.ui.core.Alignment TopStart;
   }
 
-  public static interface Alignment.Horizontal {
+  @androidx.compose.Immutable public static interface Alignment.Horizontal {
     method public int align-Ujlv2dA(int size, androidx.ui.core.LayoutDirection layoutDirection = LayoutDirection.Ltr);
   }
 
-  public static interface Alignment.Vertical {
+  @androidx.compose.Immutable public static interface Alignment.Vertical {
     method public int align-gshw56o(int size);
   }
 
-  public abstract sealed class AlignmentLine {
+  @androidx.compose.Immutable public abstract sealed class AlignmentLine {
   }
 
   public final class AlignmentLineKt {
@@ -185,8 +185,8 @@
   }
 
   public final class ClipKt {
-    method public static androidx.ui.core.Modifier clip(androidx.ui.core.Modifier, androidx.ui.graphics.Shape shape);
-    method public static androidx.ui.core.Modifier clipToBounds(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier clip(androidx.ui.core.Modifier, androidx.ui.graphics.Shape shape);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier clipToBounds(androidx.ui.core.Modifier);
   }
 
   public final class CombinedModifier implements androidx.ui.core.Modifier {
@@ -202,12 +202,12 @@
     method public static androidx.ui.core.Modifier materialize(androidx.compose.Composer<?>, androidx.ui.core.Modifier modifier);
   }
 
-  public final class ConsumedData {
+  @androidx.compose.Immutable public final class ConsumedData {
     ctor public ConsumedData(androidx.ui.unit.PxPosition positionChange, boolean downChange);
     ctor public ConsumedData();
     method public androidx.ui.unit.PxPosition component1();
     method public boolean component2();
-    method public androidx.ui.core.ConsumedData copy(androidx.ui.unit.PxPosition positionChange, boolean downChange);
+    method @androidx.compose.Immutable public androidx.ui.core.ConsumedData copy(androidx.ui.unit.PxPosition positionChange, boolean downChange);
     method public boolean getDownChange();
     method public androidx.ui.unit.PxPosition getPositionChange();
   }
@@ -217,7 +217,7 @@
     method public abstract void drawContent();
   }
 
-  public interface ContentScale {
+  @androidx.compose.Stable public interface ContentScale {
     method public float scale-8JNMT64(long srcSize, long dstSize);
     field public static final androidx.ui.core.ContentScale.Companion! Companion;
   }
@@ -288,7 +288,7 @@
 
   public final class DrawLayerModifierKt {
     method public static inline long TransformOrigin(float pivotFractionX, float pivotFractionY);
-    method public static androidx.ui.core.Modifier drawLayer-RgGWxk0(androidx.ui.core.Modifier, float scaleX = 1f, float scaleY = 1f, float alpha = 1f, float translationX = 0f, float translationY = 0f, float shadowElevation = 0f, float rotationX = 0f, float rotationY = 0f, float rotationZ = 0f, long transformOrigin = TransformOrigin.Center, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, boolean clip = false);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier drawLayer-RgGWxk0(androidx.ui.core.Modifier, float scaleX = 1f, float scaleY = 1f, float alpha = 1f, float translationX = 0f, float translationY = 0f, float shadowElevation = 0f, float rotationX = 0f, float rotationY = 0f, float rotationZ = 0f, long transformOrigin = TransformOrigin.Center, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, boolean clip = false);
   }
 
   public interface DrawModifier extends androidx.ui.core.Modifier.Element {
@@ -303,7 +303,7 @@
   }
 
   public final class DrawShadowKt {
-    method public static androidx.ui.core.Modifier drawShadow-xWKVMPI(androidx.ui.core.Modifier, float elevation, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, boolean clip = elevation > 0.dp, @FloatRange(from=0.0, to=1.0) float opacity = 1f);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier drawShadow-xWKVMPI(androidx.ui.core.Modifier, float elevation, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, boolean clip = elevation > 0.dp, @FloatRange(from=0.0, to=1.0) float opacity = 1f);
   }
 
   public enum DropDownAlignment {
@@ -311,10 +311,10 @@
     enum_constant public static final androidx.ui.core.DropDownAlignment Start;
   }
 
-  public final class FixedScale implements androidx.ui.core.ContentScale {
+  @androidx.compose.Immutable public final class FixedScale implements androidx.ui.core.ContentScale {
     ctor public FixedScale(float value);
     method public float component1();
-    method public androidx.ui.core.FixedScale copy(float value);
+    method @androidx.compose.Immutable public androidx.ui.core.FixedScale copy(float value);
     method public float getValue();
     method public float scale-8JNMT64(long srcSize, long dstSize);
   }
@@ -372,12 +372,12 @@
   }
 
   public final class LayoutKt {
-    method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> minIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> minIntrinsicHeightMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> maxIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> maxIntrinsicHeightMeasureBlock, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
-    method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
+    method @androidx.compose.Composable public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> minIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> minIntrinsicHeightMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> maxIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> maxIntrinsicHeightMeasureBlock, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
+    method @androidx.compose.Composable public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
     method public static androidx.ui.core.LayoutNode.MeasureBlocks MeasuringIntrinsicsMeasureBlocks(kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
-    method @Deprecated public static void MultiMeasureLayout(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
-    method @Deprecated public static void PassThroughLayout(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void WithConstraints(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.WithConstraintsScope,kotlin.Unit> children);
+    method @Deprecated @androidx.compose.Composable public static void MultiMeasureLayout(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
+    method @Deprecated @androidx.compose.Composable public static void PassThroughLayout(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void WithConstraints(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.WithConstraintsScope,kotlin.Unit> children);
   }
 
   public interface LayoutModifier extends androidx.ui.core.Modifier.Element {
@@ -494,7 +494,7 @@
 
   public final class LayoutTagKt {
     method public static Object? getTag(androidx.ui.core.Measurable);
-    method public static androidx.ui.core.Modifier tag(androidx.ui.core.Modifier, Object tag);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier tag(androidx.ui.core.Modifier, Object tag);
   }
 
   public interface LayoutTagParentData {
@@ -542,7 +542,7 @@
     method public void pauseObservingReads(kotlin.jvm.functions.Function0<kotlin.Unit> block);
   }
 
-  public interface Modifier {
+  @androidx.compose.Stable public interface Modifier {
     method public boolean all(kotlin.jvm.functions.Function1<? super androidx.ui.core.Modifier.Element,java.lang.Boolean> predicate);
     method public boolean any(kotlin.jvm.functions.Function1<? super androidx.ui.core.Modifier.Element,java.lang.Boolean> predicate);
     method public <R> R! foldIn(R? initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
@@ -590,7 +590,7 @@
   }
 
   public final class OpacityKt {
-    method public static androidx.ui.core.Modifier drawOpacity(androidx.ui.core.Modifier, @FloatRange(from=0.0, to=1.0) float opacity);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier drawOpacity(androidx.ui.core.Modifier, @FloatRange(from=0.0, to=1.0) float opacity);
   }
 
   public interface OwnedLayer {
@@ -662,7 +662,7 @@
   }
 
   public final class PainterModifierKt {
-    method @Deprecated public static androidx.ui.core.DrawModifier asModifier(androidx.ui.graphics.painter.Painter, boolean sizeToIntrinsics = true, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, boolean rtl = false);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.core.DrawModifier asModifier(androidx.ui.graphics.painter.Painter, boolean sizeToIntrinsics = true, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, boolean rtl = false);
     method public static androidx.ui.core.Modifier paint(androidx.ui.core.Modifier, androidx.ui.graphics.painter.Painter painter, boolean sizeToIntrinsics = true, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
   }
 
@@ -720,25 +720,25 @@
     method public static inline String! toString-impl(long p);
   }
 
-  public final class PointerInputChange {
+  @androidx.compose.Immutable public final class PointerInputChange {
     method public long component1();
     method public androidx.ui.core.PointerInputData component2();
     method public androidx.ui.core.PointerInputData component3();
     method public androidx.ui.core.ConsumedData component4();
-    method public androidx.ui.core.PointerInputChange copy-jh1A5Og(long id, androidx.ui.core.PointerInputData current, androidx.ui.core.PointerInputData previous, androidx.ui.core.ConsumedData consumed);
+    method @androidx.compose.Immutable public androidx.ui.core.PointerInputChange copy-jh1A5Og(long id, androidx.ui.core.PointerInputData current, androidx.ui.core.PointerInputData previous, androidx.ui.core.ConsumedData consumed);
     method public androidx.ui.core.ConsumedData getConsumed();
     method public androidx.ui.core.PointerInputData getCurrent();
     method public long getId();
     method public androidx.ui.core.PointerInputData getPrevious();
   }
 
-  public final class PointerInputData {
+  @androidx.compose.Immutable public final class PointerInputData {
     ctor public PointerInputData(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
     ctor public PointerInputData();
     method public androidx.ui.unit.Uptime? component1();
     method public androidx.ui.unit.PxPosition? component2();
     method public boolean component3();
-    method public androidx.ui.core.PointerInputData copy(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
+    method @androidx.compose.Immutable public androidx.ui.core.PointerInputData copy(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
     method public boolean getDown();
     method public androidx.ui.unit.PxPosition? getPosition();
     method public androidx.ui.unit.Uptime? getUptime();
@@ -761,13 +761,13 @@
   }
 
   public final class PopupKt {
-    method public static void DropdownPopup(androidx.ui.core.DropDownAlignment dropDownAlignment = androidx.ui.core.DropDownAlignment.Start, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Popup(androidx.ui.core.Alignment alignment = Alignment.TopStart, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Popup(androidx.ui.core.PopupPositionProvider popupPositionProvider, boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static boolean isPopupLayout(android.view.View view, String? testTag = null);
+    method @androidx.compose.Composable public static void DropdownPopup(androidx.ui.core.DropDownAlignment dropDownAlignment = androidx.ui.core.DropDownAlignment.Start, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Popup(androidx.ui.core.Alignment alignment = Alignment.TopStart, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Popup(androidx.ui.core.PopupPositionProvider popupPositionProvider, boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @org.jetbrains.annotations.TestOnly public static boolean isPopupLayout(android.view.View view, String? testTag = null);
   }
 
-  public interface PopupPositionProvider {
+  @androidx.compose.Immutable public interface PopupPositionProvider {
     method public androidx.ui.unit.IntPxPosition calculatePosition(androidx.ui.unit.IntPxPosition parentLayoutPosition, androidx.ui.unit.IntPxSize parentLayoutSize, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.unit.IntPxSize popupSize);
   }
 
@@ -782,19 +782,19 @@
   }
 
   public final class TestTagKt {
-    method public static void TestTag(String tag, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static androidx.ui.core.Modifier testTag(androidx.ui.core.Modifier, String tag);
+    method @androidx.compose.Composable public static void TestTag(String tag, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier testTag(androidx.ui.core.Modifier, String tag);
   }
 
-  public final inline class TransformOrigin {
+  @androidx.compose.Immutable public final inline class TransformOrigin {
     ctor public TransformOrigin();
     method public static long constructor-impl(internal long value);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static float getPivotFractionX-impl(long $this);
     method public static float getPivotFractionY-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static inline String! toString-impl(long p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Immutable public static inline String! toString-impl(long p);
     field public static final androidx.ui.core.TransformOrigin.Companion! Companion;
   }
 
@@ -807,7 +807,7 @@
     ctor public VerticalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.unit.IntPx,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> merger);
   }
 
-  public interface WithConstraintsScope {
+  @androidx.compose.Stable public interface WithConstraintsScope {
     method public androidx.ui.core.Constraints getConstraints();
     method public androidx.ui.core.LayoutDirection getLayoutDirection();
     method public float getMaxHeight();
@@ -852,7 +852,7 @@
   }
 
   public final class ZIndexModifierKt {
-    method public static androidx.ui.core.Modifier zIndex(androidx.ui.core.Modifier, float zIndex);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier zIndex(androidx.ui.core.Modifier, float zIndex);
   }
 
 }
@@ -888,7 +888,7 @@
   }
 
   public final class FocusModifierKt {
-    method public static androidx.ui.core.focus.FocusModifier FocusModifier();
+    method @androidx.compose.Composable public static androidx.ui.core.focus.FocusModifier FocusModifier();
     method public static androidx.ui.core.focus.FocusState getFocusState(androidx.ui.core.focus.FocusModifier);
   }
 
@@ -1738,12 +1738,12 @@
     method public androidx.ui.text.AnnotatedString getText();
   }
 
-  public final class Selection {
+  @androidx.compose.Immutable public final class Selection {
     ctor public Selection(androidx.ui.core.selection.Selection.AnchorInfo start, androidx.ui.core.selection.Selection.AnchorInfo end, boolean handlesCrossed);
     method public androidx.ui.core.selection.Selection.AnchorInfo component1();
     method public androidx.ui.core.selection.Selection.AnchorInfo component2();
     method public boolean component3();
-    method public androidx.ui.core.selection.Selection copy(androidx.ui.core.selection.Selection.AnchorInfo start, androidx.ui.core.selection.Selection.AnchorInfo end, boolean handlesCrossed);
+    method @androidx.compose.Immutable public androidx.ui.core.selection.Selection copy(androidx.ui.core.selection.Selection.AnchorInfo start, androidx.ui.core.selection.Selection.AnchorInfo end, boolean handlesCrossed);
     method public androidx.ui.core.selection.Selection.AnchorInfo getEnd();
     method public boolean getHandlesCrossed();
     method public androidx.ui.core.selection.Selection.AnchorInfo getStart();
@@ -1751,19 +1751,19 @@
     method public androidx.ui.text.TextRange toTextRange();
   }
 
-  public static final class Selection.AnchorInfo {
+  @androidx.compose.Immutable public static final class Selection.AnchorInfo {
     ctor public Selection.AnchorInfo(androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.selection.Selectable selectable);
     method public androidx.ui.text.style.TextDirection component1();
     method public int component2();
     method public androidx.ui.core.selection.Selectable component3();
-    method public androidx.ui.core.selection.Selection.AnchorInfo copy(androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.selection.Selectable selectable);
+    method @androidx.compose.Immutable public androidx.ui.core.selection.Selection.AnchorInfo copy(androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.selection.Selectable selectable);
     method public androidx.ui.text.style.TextDirection getDirection();
     method public int getOffset();
     method public androidx.ui.core.selection.Selectable getSelectable();
   }
 
   public final class SelectionContainerKt {
-    method public static void SelectionContainer(androidx.ui.core.selection.Selection? selection, kotlin.jvm.functions.Function1<? super androidx.ui.core.selection.Selection,kotlin.Unit> onSelectionChange, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void SelectionContainer(androidx.ui.core.selection.Selection? selection, kotlin.jvm.functions.Function1<? super androidx.ui.core.selection.Selection,kotlin.Unit> onSelectionChange, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class SelectionHandlesKt {
@@ -1936,12 +1936,12 @@
   }
 
   public final class VectorAssetKt {
-    method @Deprecated public static androidx.ui.core.Modifier drawVector-N7QT3do(androidx.ui.graphics.vector.VectorAsset vectorImage, long tintColor = Color.Transparent, androidx.ui.graphics.BlendMode tintBlendMode = androidx.ui.graphics.vector.VectorKt.DefaultTintBlendMode, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.core.Modifier drawVector-N7QT3do(androidx.ui.graphics.vector.VectorAsset vectorImage, long tintColor = Color.Transparent, androidx.ui.graphics.BlendMode tintBlendMode = androidx.ui.graphics.vector.VectorKt.DefaultTintBlendMode, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside);
   }
 
   public final class VectorComposeKt {
-    method public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<? extends androidx.ui.graphics.vector.PathNode> clipPathData = androidx.ui.graphics.vector.VectorKt.EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
-    method public static void Path(androidx.ui.graphics.vector.VectorScope, java.util.List<? extends androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = androidx.ui.graphics.vector.VectorKt.DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = androidx.ui.graphics.vector.VectorKt.DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
+    method @androidx.compose.Composable public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<? extends androidx.ui.graphics.vector.PathNode> clipPathData = androidx.ui.graphics.vector.VectorKt.EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Path(androidx.ui.graphics.vector.VectorScope, java.util.List<? extends androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = androidx.ui.graphics.vector.VectorKt.DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = androidx.ui.graphics.vector.VectorKt.DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
   }
 
   public final class VectorGroup extends androidx.ui.graphics.vector.VectorNode implements java.lang.Iterable<androidx.ui.graphics.vector.VectorNode> kotlin.jvm.internal.markers.KMappedMarker {
@@ -1972,8 +1972,8 @@
   }
 
   public final class VectorPainterKt {
-    method public static androidx.ui.graphics.vector.VectorPainter VectorPainter(androidx.ui.graphics.vector.VectorAsset asset);
-    method public static androidx.ui.graphics.vector.VectorPainter VectorPainter-uAXuNKI(float defaultWidth, float defaultHeight, float viewportWidth = Float.NaN, float viewportHeight = Float.NaN, String name = "VectorRootGroup", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+    method @androidx.compose.Composable public static androidx.ui.graphics.vector.VectorPainter VectorPainter(androidx.ui.graphics.vector.VectorAsset asset);
+    method @androidx.compose.Composable public static androidx.ui.graphics.vector.VectorPainter VectorPainter-uAXuNKI(float defaultWidth, float defaultHeight, float viewportWidth = Float.NaN, float viewportHeight = Float.NaN, String name = "VectorRootGroup", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
     field public static final String RootGroupName = "VectorRootGroup";
   }
 
@@ -2063,10 +2063,10 @@
 package androidx.ui.res {
 
   public final class ColorResourcesKt {
-    method public static long colorResource(@ColorRes int id);
+    method @androidx.compose.Composable public static long colorResource(@ColorRes int id);
   }
 
-  public final class DeferredResource<T> {
+  @androidx.compose.Stable public final class DeferredResource<T> {
     method public androidx.ui.res.Resource<T> getResource();
     property public final androidx.ui.res.Resource<T> resource;
   }
@@ -2077,14 +2077,14 @@
   }
 
   public final class FontResourcesKt {
-    method public static androidx.ui.text.Typeface fontResource(androidx.ui.text.font.FontFamily fontFamily);
-    method public static androidx.ui.res.DeferredResource<androidx.ui.text.Typeface> loadFontResource(androidx.ui.text.font.FontFamily fontFamily, androidx.ui.text.font.FontFamily? pendingFontFamily = null, androidx.ui.text.font.FontFamily? failedFontFamily = null);
-    method public static androidx.ui.res.DeferredResource<androidx.ui.text.Typeface> loadFontResource(androidx.ui.text.font.FontFamily fontFamily, androidx.ui.text.Typeface? pendingTypeface = null, androidx.ui.text.Typeface? failedTypeface = null);
+    method @androidx.compose.Composable public static androidx.ui.text.Typeface fontResource(androidx.ui.text.font.FontFamily fontFamily);
+    method @androidx.compose.Composable public static androidx.ui.res.DeferredResource<androidx.ui.text.Typeface> loadFontResource(androidx.ui.text.font.FontFamily fontFamily, androidx.ui.text.font.FontFamily? pendingFontFamily = null, androidx.ui.text.font.FontFamily? failedFontFamily = null);
+    method @androidx.compose.Composable public static androidx.ui.res.DeferredResource<androidx.ui.text.Typeface> loadFontResource(androidx.ui.text.font.FontFamily fontFamily, androidx.ui.text.Typeface? pendingTypeface = null, androidx.ui.text.Typeface? failedTypeface = null);
   }
 
   public final class ImageResourcesKt {
-    method public static androidx.ui.graphics.ImageAsset imageResource(@DrawableRes int id);
-    method public static androidx.ui.res.DeferredResource<androidx.ui.graphics.ImageAsset> loadImageResource(int id, androidx.ui.graphics.ImageAsset? pendingImage = null, androidx.ui.graphics.ImageAsset? failedImage = null);
+    method @androidx.compose.Composable public static androidx.ui.graphics.ImageAsset imageResource(@DrawableRes int id);
+    method @androidx.compose.Composable public static androidx.ui.res.DeferredResource<androidx.ui.graphics.ImageAsset> loadImageResource(int id, androidx.ui.graphics.ImageAsset? pendingImage = null, androidx.ui.graphics.ImageAsset? failedImage = null);
   }
 
   public final class LoadedResource<T> extends androidx.ui.res.Resource<T> {
@@ -2096,10 +2096,10 @@
   }
 
   public final class PrimitiveResourcesKt {
-    method public static boolean booleanResource(@BoolRes int id);
-    method public static float dimensionResource(@DimenRes int id);
-    method public static int[] integerArrayResource(@ArrayRes int id);
-    method public static int integerResource(@IntegerRes int id);
+    method @androidx.compose.Composable public static boolean booleanResource(@BoolRes int id);
+    method @androidx.compose.Composable public static float dimensionResource(@DimenRes int id);
+    method @androidx.compose.Composable public static int[] integerArrayResource(@ArrayRes int id);
+    method @androidx.compose.Composable public static int integerResource(@IntegerRes int id);
   }
 
   public abstract sealed class Resource<T> {
@@ -2110,14 +2110,14 @@
   }
 
   public final class StringResourcesKt {
-    method public static String![] stringArrayResource(@ArrayRes int id);
-    method public static String stringResource(@StringRes int id);
-    method public static String stringResource(@StringRes int id, java.lang.Object... formatArgs);
+    method @androidx.compose.Composable public static String![] stringArrayResource(@ArrayRes int id);
+    method @androidx.compose.Composable public static String stringResource(@StringRes int id);
+    method @androidx.compose.Composable public static String stringResource(@StringRes int id, java.lang.Object... formatArgs);
   }
 
   public final class VectorResourcesKt {
-    method public static androidx.ui.res.DeferredResource<androidx.ui.graphics.vector.VectorAsset> loadVectorResource(int id, androidx.ui.graphics.vector.VectorAsset? pendingResource = null, androidx.ui.graphics.vector.VectorAsset? failedResource = null);
-    method public static androidx.ui.graphics.vector.VectorAsset vectorResource(@DrawableRes int id);
+    method @androidx.compose.Composable public static androidx.ui.res.DeferredResource<androidx.ui.graphics.vector.VectorAsset> loadVectorResource(int id, androidx.ui.graphics.vector.VectorAsset? pendingResource = null, androidx.ui.graphics.vector.VectorAsset? failedResource = null);
+    method @androidx.compose.Composable public static androidx.ui.graphics.vector.VectorAsset vectorResource(@DrawableRes int id);
   }
 
 }
@@ -2166,7 +2166,7 @@
   }
 
   public final class SemanticsKt {
-    method public static void Semantics(boolean container = false, boolean mergeAllDescendants = false, kotlin.jvm.functions.Function1<? super androidx.ui.semantics.SemanticsPropertyReceiver,kotlin.Unit>? properties = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Semantics(boolean container = false, boolean mergeAllDescendants = false, kotlin.jvm.functions.Function1<? super androidx.ui.semantics.SemanticsPropertyReceiver,kotlin.Unit>? properties = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class SemanticsProperties {
@@ -2265,8 +2265,8 @@
 package androidx.ui.viewinterop {
 
   public final class ComposedViewKt {
-    method public static void AndroidView(@LayoutRes int resId, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> postInflationCallback = { _ ->  });
-    method public static void AndroidView(android.view.View view);
+    method @androidx.compose.Composable public static void AndroidView(@LayoutRes int resId, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> postInflationCallback = { _ ->  });
+    method @androidx.compose.Composable public static void AndroidView(android.view.View view);
   }
 
 }
diff --git a/ui/ui-core/api/current.txt b/ui/ui-core/api/current.txt
index 9ab7e39..39d56df 100644
--- a/ui/ui-core/api/current.txt
+++ b/ui/ui-core/api/current.txt
@@ -89,9 +89,9 @@
 
 package androidx.ui.core {
 
-  public final class AbsoluteAlignment implements androidx.ui.core.Alignment {
+  @androidx.compose.Immutable public final class AbsoluteAlignment implements androidx.ui.core.Alignment {
     method public androidx.ui.unit.IntPxPosition align(androidx.ui.unit.IntPxSize size, androidx.ui.core.LayoutDirection layoutDirection);
-    method public androidx.ui.core.AbsoluteAlignment copy(float verticalBias, float horizontalBias);
+    method @androidx.compose.Immutable public androidx.ui.core.AbsoluteAlignment copy(float verticalBias, float horizontalBias);
     field public static final androidx.ui.core.AbsoluteAlignment.Companion! Companion;
   }
 
@@ -114,12 +114,12 @@
     property public final androidx.ui.core.AbsoluteAlignment TopRight;
   }
 
-  public static final class AbsoluteAlignment.Horizontal implements androidx.ui.core.Alignment.Horizontal {
+  @androidx.compose.Immutable public static final class AbsoluteAlignment.Horizontal implements androidx.ui.core.Alignment.Horizontal {
     method public int align-Ujlv2dA(int size, androidx.ui.core.LayoutDirection layoutDirection);
-    method public androidx.ui.core.AbsoluteAlignment.Horizontal copy(float bias);
+    method @androidx.compose.Immutable public androidx.ui.core.AbsoluteAlignment.Horizontal copy(float bias);
   }
 
-  public interface Alignment {
+  @androidx.compose.Immutable public interface Alignment {
     method public androidx.ui.unit.IntPxPosition align(androidx.ui.unit.IntPxSize size, androidx.ui.core.LayoutDirection layoutDirection = LayoutDirection.Ltr);
     field public static final androidx.ui.core.Alignment.Companion! Companion;
   }
@@ -157,15 +157,15 @@
     property public final androidx.ui.core.Alignment TopStart;
   }
 
-  public static interface Alignment.Horizontal {
+  @androidx.compose.Immutable public static interface Alignment.Horizontal {
     method public int align-Ujlv2dA(int size, androidx.ui.core.LayoutDirection layoutDirection = LayoutDirection.Ltr);
   }
 
-  public static interface Alignment.Vertical {
+  @androidx.compose.Immutable public static interface Alignment.Vertical {
     method public int align-gshw56o(int size);
   }
 
-  public abstract sealed class AlignmentLine {
+  @androidx.compose.Immutable public abstract sealed class AlignmentLine {
   }
 
   public final class AlignmentLineKt {
@@ -185,8 +185,8 @@
   }
 
   public final class ClipKt {
-    method public static androidx.ui.core.Modifier clip(androidx.ui.core.Modifier, androidx.ui.graphics.Shape shape);
-    method public static androidx.ui.core.Modifier clipToBounds(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier clip(androidx.ui.core.Modifier, androidx.ui.graphics.Shape shape);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier clipToBounds(androidx.ui.core.Modifier);
   }
 
   public final class CombinedModifier implements androidx.ui.core.Modifier {
@@ -202,12 +202,12 @@
     method public static androidx.ui.core.Modifier materialize(androidx.compose.Composer<?>, androidx.ui.core.Modifier modifier);
   }
 
-  public final class ConsumedData {
+  @androidx.compose.Immutable public final class ConsumedData {
     ctor public ConsumedData(androidx.ui.unit.PxPosition positionChange, boolean downChange);
     ctor public ConsumedData();
     method public androidx.ui.unit.PxPosition component1();
     method public boolean component2();
-    method public androidx.ui.core.ConsumedData copy(androidx.ui.unit.PxPosition positionChange, boolean downChange);
+    method @androidx.compose.Immutable public androidx.ui.core.ConsumedData copy(androidx.ui.unit.PxPosition positionChange, boolean downChange);
     method public boolean getDownChange();
     method public androidx.ui.unit.PxPosition getPositionChange();
   }
@@ -217,7 +217,7 @@
     method public abstract void drawContent();
   }
 
-  public interface ContentScale {
+  @androidx.compose.Stable public interface ContentScale {
     method public float scale-8JNMT64(long srcSize, long dstSize);
     field public static final androidx.ui.core.ContentScale.Companion! Companion;
   }
@@ -288,7 +288,7 @@
 
   public final class DrawLayerModifierKt {
     method public static inline long TransformOrigin(float pivotFractionX, float pivotFractionY);
-    method public static androidx.ui.core.Modifier drawLayer-RgGWxk0(androidx.ui.core.Modifier, float scaleX = 1f, float scaleY = 1f, float alpha = 1f, float translationX = 0f, float translationY = 0f, float shadowElevation = 0f, float rotationX = 0f, float rotationY = 0f, float rotationZ = 0f, long transformOrigin = TransformOrigin.Center, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, boolean clip = false);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier drawLayer-RgGWxk0(androidx.ui.core.Modifier, float scaleX = 1f, float scaleY = 1f, float alpha = 1f, float translationX = 0f, float translationY = 0f, float shadowElevation = 0f, float rotationX = 0f, float rotationY = 0f, float rotationZ = 0f, long transformOrigin = TransformOrigin.Center, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, boolean clip = false);
   }
 
   public interface DrawModifier extends androidx.ui.core.Modifier.Element {
@@ -303,7 +303,7 @@
   }
 
   public final class DrawShadowKt {
-    method public static androidx.ui.core.Modifier drawShadow-xWKVMPI(androidx.ui.core.Modifier, float elevation, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, boolean clip = elevation > 0.dp, @FloatRange(from=0.0, to=1.0) float opacity = 1f);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier drawShadow-xWKVMPI(androidx.ui.core.Modifier, float elevation, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, boolean clip = elevation > 0.dp, @FloatRange(from=0.0, to=1.0) float opacity = 1f);
   }
 
   public enum DropDownAlignment {
@@ -311,10 +311,10 @@
     enum_constant public static final androidx.ui.core.DropDownAlignment Start;
   }
 
-  public final class FixedScale implements androidx.ui.core.ContentScale {
+  @androidx.compose.Immutable public final class FixedScale implements androidx.ui.core.ContentScale {
     ctor public FixedScale(float value);
     method public float component1();
-    method public androidx.ui.core.FixedScale copy(float value);
+    method @androidx.compose.Immutable public androidx.ui.core.FixedScale copy(float value);
     method public float getValue();
     method public float scale-8JNMT64(long srcSize, long dstSize);
   }
@@ -372,12 +372,12 @@
   }
 
   public final class LayoutKt {
-    method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> minIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> minIntrinsicHeightMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> maxIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> maxIntrinsicHeightMeasureBlock, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
-    method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
+    method @androidx.compose.Composable public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> minIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> minIntrinsicHeightMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> maxIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> maxIntrinsicHeightMeasureBlock, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
+    method @androidx.compose.Composable public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
     method public static androidx.ui.core.LayoutNode.MeasureBlocks MeasuringIntrinsicsMeasureBlocks(kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
-    method @Deprecated public static void MultiMeasureLayout(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
-    method @Deprecated public static void PassThroughLayout(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void WithConstraints(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.WithConstraintsScope,kotlin.Unit> children);
+    method @Deprecated @androidx.compose.Composable public static void MultiMeasureLayout(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
+    method @Deprecated @androidx.compose.Composable public static void PassThroughLayout(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void WithConstraints(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.WithConstraintsScope,kotlin.Unit> children);
   }
 
   public interface LayoutModifier extends androidx.ui.core.Modifier.Element {
@@ -494,7 +494,7 @@
 
   public final class LayoutTagKt {
     method public static Object? getTag(androidx.ui.core.Measurable);
-    method public static androidx.ui.core.Modifier tag(androidx.ui.core.Modifier, Object tag);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier tag(androidx.ui.core.Modifier, Object tag);
   }
 
   public interface LayoutTagParentData {
@@ -542,7 +542,7 @@
     method public void pauseObservingReads(kotlin.jvm.functions.Function0<kotlin.Unit> block);
   }
 
-  public interface Modifier {
+  @androidx.compose.Stable public interface Modifier {
     method public boolean all(kotlin.jvm.functions.Function1<? super androidx.ui.core.Modifier.Element,java.lang.Boolean> predicate);
     method public boolean any(kotlin.jvm.functions.Function1<? super androidx.ui.core.Modifier.Element,java.lang.Boolean> predicate);
     method public <R> R! foldIn(R? initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
@@ -590,7 +590,7 @@
   }
 
   public final class OpacityKt {
-    method public static androidx.ui.core.Modifier drawOpacity(androidx.ui.core.Modifier, @FloatRange(from=0.0, to=1.0) float opacity);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier drawOpacity(androidx.ui.core.Modifier, @FloatRange(from=0.0, to=1.0) float opacity);
   }
 
   public interface OwnedLayer {
@@ -662,7 +662,7 @@
   }
 
   public final class PainterModifierKt {
-    method @Deprecated public static androidx.ui.core.DrawModifier asModifier(androidx.ui.graphics.painter.Painter, boolean sizeToIntrinsics = true, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, boolean rtl = false);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.core.DrawModifier asModifier(androidx.ui.graphics.painter.Painter, boolean sizeToIntrinsics = true, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, boolean rtl = false);
     method public static androidx.ui.core.Modifier paint(androidx.ui.core.Modifier, androidx.ui.graphics.painter.Painter painter, boolean sizeToIntrinsics = true, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
   }
 
@@ -720,25 +720,25 @@
     method public static inline String! toString-impl(long p);
   }
 
-  public final class PointerInputChange {
+  @androidx.compose.Immutable public final class PointerInputChange {
     method public long component1();
     method public androidx.ui.core.PointerInputData component2();
     method public androidx.ui.core.PointerInputData component3();
     method public androidx.ui.core.ConsumedData component4();
-    method public androidx.ui.core.PointerInputChange copy-jh1A5Og(long id, androidx.ui.core.PointerInputData current, androidx.ui.core.PointerInputData previous, androidx.ui.core.ConsumedData consumed);
+    method @androidx.compose.Immutable public androidx.ui.core.PointerInputChange copy-jh1A5Og(long id, androidx.ui.core.PointerInputData current, androidx.ui.core.PointerInputData previous, androidx.ui.core.ConsumedData consumed);
     method public androidx.ui.core.ConsumedData getConsumed();
     method public androidx.ui.core.PointerInputData getCurrent();
     method public long getId();
     method public androidx.ui.core.PointerInputData getPrevious();
   }
 
-  public final class PointerInputData {
+  @androidx.compose.Immutable public final class PointerInputData {
     ctor public PointerInputData(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
     ctor public PointerInputData();
     method public androidx.ui.unit.Uptime? component1();
     method public androidx.ui.unit.PxPosition? component2();
     method public boolean component3();
-    method public androidx.ui.core.PointerInputData copy(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
+    method @androidx.compose.Immutable public androidx.ui.core.PointerInputData copy(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
     method public boolean getDown();
     method public androidx.ui.unit.PxPosition? getPosition();
     method public androidx.ui.unit.Uptime? getUptime();
@@ -761,13 +761,13 @@
   }
 
   public final class PopupKt {
-    method public static void DropdownPopup(androidx.ui.core.DropDownAlignment dropDownAlignment = androidx.ui.core.DropDownAlignment.Start, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Popup(androidx.ui.core.Alignment alignment = Alignment.TopStart, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Popup(androidx.ui.core.PopupPositionProvider popupPositionProvider, boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static boolean isPopupLayout(android.view.View view, String? testTag = null);
+    method @androidx.compose.Composable public static void DropdownPopup(androidx.ui.core.DropDownAlignment dropDownAlignment = androidx.ui.core.DropDownAlignment.Start, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Popup(androidx.ui.core.Alignment alignment = Alignment.TopStart, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Popup(androidx.ui.core.PopupPositionProvider popupPositionProvider, boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @org.jetbrains.annotations.TestOnly public static boolean isPopupLayout(android.view.View view, String? testTag = null);
   }
 
-  public interface PopupPositionProvider {
+  @androidx.compose.Immutable public interface PopupPositionProvider {
     method public androidx.ui.unit.IntPxPosition calculatePosition(androidx.ui.unit.IntPxPosition parentLayoutPosition, androidx.ui.unit.IntPxSize parentLayoutSize, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.unit.IntPxSize popupSize);
   }
 
@@ -782,19 +782,19 @@
   }
 
   public final class TestTagKt {
-    method public static void TestTag(String tag, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static androidx.ui.core.Modifier testTag(androidx.ui.core.Modifier, String tag);
+    method @androidx.compose.Composable public static void TestTag(String tag, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier testTag(androidx.ui.core.Modifier, String tag);
   }
 
-  public final inline class TransformOrigin {
+  @androidx.compose.Immutable public final inline class TransformOrigin {
     ctor public TransformOrigin();
     method public static long constructor-impl(internal long value);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static float getPivotFractionX-impl(long $this);
     method public static float getPivotFractionY-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static inline String! toString-impl(long p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Immutable public static inline String! toString-impl(long p);
     field public static final androidx.ui.core.TransformOrigin.Companion! Companion;
   }
 
@@ -807,7 +807,7 @@
     ctor public VerticalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.unit.IntPx,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> merger);
   }
 
-  public interface WithConstraintsScope {
+  @androidx.compose.Stable public interface WithConstraintsScope {
     method public androidx.ui.core.Constraints getConstraints();
     method public androidx.ui.core.LayoutDirection getLayoutDirection();
     method public float getMaxHeight();
@@ -852,7 +852,7 @@
   }
 
   public final class ZIndexModifierKt {
-    method public static androidx.ui.core.Modifier zIndex(androidx.ui.core.Modifier, float zIndex);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier zIndex(androidx.ui.core.Modifier, float zIndex);
   }
 
 }
@@ -888,7 +888,7 @@
   }
 
   public final class FocusModifierKt {
-    method public static androidx.ui.core.focus.FocusModifier FocusModifier();
+    method @androidx.compose.Composable public static androidx.ui.core.focus.FocusModifier FocusModifier();
     method public static androidx.ui.core.focus.FocusState getFocusState(androidx.ui.core.focus.FocusModifier);
   }
 
@@ -1738,12 +1738,12 @@
     method public androidx.ui.text.AnnotatedString getText();
   }
 
-  public final class Selection {
+  @androidx.compose.Immutable public final class Selection {
     ctor public Selection(androidx.ui.core.selection.Selection.AnchorInfo start, androidx.ui.core.selection.Selection.AnchorInfo end, boolean handlesCrossed);
     method public androidx.ui.core.selection.Selection.AnchorInfo component1();
     method public androidx.ui.core.selection.Selection.AnchorInfo component2();
     method public boolean component3();
-    method public androidx.ui.core.selection.Selection copy(androidx.ui.core.selection.Selection.AnchorInfo start, androidx.ui.core.selection.Selection.AnchorInfo end, boolean handlesCrossed);
+    method @androidx.compose.Immutable public androidx.ui.core.selection.Selection copy(androidx.ui.core.selection.Selection.AnchorInfo start, androidx.ui.core.selection.Selection.AnchorInfo end, boolean handlesCrossed);
     method public androidx.ui.core.selection.Selection.AnchorInfo getEnd();
     method public boolean getHandlesCrossed();
     method public androidx.ui.core.selection.Selection.AnchorInfo getStart();
@@ -1751,19 +1751,19 @@
     method public androidx.ui.text.TextRange toTextRange();
   }
 
-  public static final class Selection.AnchorInfo {
+  @androidx.compose.Immutable public static final class Selection.AnchorInfo {
     ctor public Selection.AnchorInfo(androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.selection.Selectable selectable);
     method public androidx.ui.text.style.TextDirection component1();
     method public int component2();
     method public androidx.ui.core.selection.Selectable component3();
-    method public androidx.ui.core.selection.Selection.AnchorInfo copy(androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.selection.Selectable selectable);
+    method @androidx.compose.Immutable public androidx.ui.core.selection.Selection.AnchorInfo copy(androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.selection.Selectable selectable);
     method public androidx.ui.text.style.TextDirection getDirection();
     method public int getOffset();
     method public androidx.ui.core.selection.Selectable getSelectable();
   }
 
   public final class SelectionContainerKt {
-    method public static void SelectionContainer(androidx.ui.core.selection.Selection? selection, kotlin.jvm.functions.Function1<? super androidx.ui.core.selection.Selection,kotlin.Unit> onSelectionChange, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void SelectionContainer(androidx.ui.core.selection.Selection? selection, kotlin.jvm.functions.Function1<? super androidx.ui.core.selection.Selection,kotlin.Unit> onSelectionChange, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class SelectionHandlesKt {
@@ -1936,12 +1936,12 @@
   }
 
   public final class VectorAssetKt {
-    method @Deprecated public static androidx.ui.core.Modifier drawVector-N7QT3do(androidx.ui.graphics.vector.VectorAsset vectorImage, long tintColor = Color.Transparent, androidx.ui.graphics.BlendMode tintBlendMode = androidx.ui.graphics.vector.VectorKt.DefaultTintBlendMode, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.core.Modifier drawVector-N7QT3do(androidx.ui.graphics.vector.VectorAsset vectorImage, long tintColor = Color.Transparent, androidx.ui.graphics.BlendMode tintBlendMode = androidx.ui.graphics.vector.VectorKt.DefaultTintBlendMode, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside);
   }
 
   public final class VectorComposeKt {
-    method public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<? extends androidx.ui.graphics.vector.PathNode> clipPathData = androidx.ui.graphics.vector.VectorKt.EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
-    method public static void Path(androidx.ui.graphics.vector.VectorScope, java.util.List<? extends androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = androidx.ui.graphics.vector.VectorKt.DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = androidx.ui.graphics.vector.VectorKt.DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
+    method @androidx.compose.Composable public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<? extends androidx.ui.graphics.vector.PathNode> clipPathData = androidx.ui.graphics.vector.VectorKt.EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Path(androidx.ui.graphics.vector.VectorScope, java.util.List<? extends androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = androidx.ui.graphics.vector.VectorKt.DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = androidx.ui.graphics.vector.VectorKt.DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
   }
 
   public final class VectorGroup extends androidx.ui.graphics.vector.VectorNode implements java.lang.Iterable<androidx.ui.graphics.vector.VectorNode> kotlin.jvm.internal.markers.KMappedMarker {
@@ -1972,8 +1972,8 @@
   }
 
   public final class VectorPainterKt {
-    method public static androidx.ui.graphics.vector.VectorPainter VectorPainter(androidx.ui.graphics.vector.VectorAsset asset);
-    method public static androidx.ui.graphics.vector.VectorPainter VectorPainter-uAXuNKI(float defaultWidth, float defaultHeight, float viewportWidth = Float.NaN, float viewportHeight = Float.NaN, String name = "VectorRootGroup", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+    method @androidx.compose.Composable public static androidx.ui.graphics.vector.VectorPainter VectorPainter(androidx.ui.graphics.vector.VectorAsset asset);
+    method @androidx.compose.Composable public static androidx.ui.graphics.vector.VectorPainter VectorPainter-uAXuNKI(float defaultWidth, float defaultHeight, float viewportWidth = Float.NaN, float viewportHeight = Float.NaN, String name = "VectorRootGroup", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
     field public static final String RootGroupName = "VectorRootGroup";
   }
 
@@ -2063,10 +2063,10 @@
 package androidx.ui.res {
 
   public final class ColorResourcesKt {
-    method public static long colorResource(@ColorRes int id);
+    method @androidx.compose.Composable public static long colorResource(@ColorRes int id);
   }
 
-  public final class DeferredResource<T> {
+  @androidx.compose.Stable public final class DeferredResource<T> {
     method public androidx.ui.res.Resource<T> getResource();
     property public final androidx.ui.res.Resource<T> resource;
   }
@@ -2077,14 +2077,14 @@
   }
 
   public final class FontResourcesKt {
-    method public static androidx.ui.text.Typeface fontResource(androidx.ui.text.font.FontFamily fontFamily);
-    method public static androidx.ui.res.DeferredResource<androidx.ui.text.Typeface> loadFontResource(androidx.ui.text.font.FontFamily fontFamily, androidx.ui.text.font.FontFamily? pendingFontFamily = null, androidx.ui.text.font.FontFamily? failedFontFamily = null);
-    method public static androidx.ui.res.DeferredResource<androidx.ui.text.Typeface> loadFontResource(androidx.ui.text.font.FontFamily fontFamily, androidx.ui.text.Typeface? pendingTypeface = null, androidx.ui.text.Typeface? failedTypeface = null);
+    method @androidx.compose.Composable public static androidx.ui.text.Typeface fontResource(androidx.ui.text.font.FontFamily fontFamily);
+    method @androidx.compose.Composable public static androidx.ui.res.DeferredResource<androidx.ui.text.Typeface> loadFontResource(androidx.ui.text.font.FontFamily fontFamily, androidx.ui.text.font.FontFamily? pendingFontFamily = null, androidx.ui.text.font.FontFamily? failedFontFamily = null);
+    method @androidx.compose.Composable public static androidx.ui.res.DeferredResource<androidx.ui.text.Typeface> loadFontResource(androidx.ui.text.font.FontFamily fontFamily, androidx.ui.text.Typeface? pendingTypeface = null, androidx.ui.text.Typeface? failedTypeface = null);
   }
 
   public final class ImageResourcesKt {
-    method public static androidx.ui.graphics.ImageAsset imageResource(@DrawableRes int id);
-    method public static androidx.ui.res.DeferredResource<androidx.ui.graphics.ImageAsset> loadImageResource(int id, androidx.ui.graphics.ImageAsset? pendingImage = null, androidx.ui.graphics.ImageAsset? failedImage = null);
+    method @androidx.compose.Composable public static androidx.ui.graphics.ImageAsset imageResource(@DrawableRes int id);
+    method @androidx.compose.Composable public static androidx.ui.res.DeferredResource<androidx.ui.graphics.ImageAsset> loadImageResource(int id, androidx.ui.graphics.ImageAsset? pendingImage = null, androidx.ui.graphics.ImageAsset? failedImage = null);
   }
 
   public final class LoadedResource<T> extends androidx.ui.res.Resource<T> {
@@ -2096,10 +2096,10 @@
   }
 
   public final class PrimitiveResourcesKt {
-    method public static boolean booleanResource(@BoolRes int id);
-    method public static float dimensionResource(@DimenRes int id);
-    method public static int[] integerArrayResource(@ArrayRes int id);
-    method public static int integerResource(@IntegerRes int id);
+    method @androidx.compose.Composable public static boolean booleanResource(@BoolRes int id);
+    method @androidx.compose.Composable public static float dimensionResource(@DimenRes int id);
+    method @androidx.compose.Composable public static int[] integerArrayResource(@ArrayRes int id);
+    method @androidx.compose.Composable public static int integerResource(@IntegerRes int id);
   }
 
   public abstract sealed class Resource<T> {
@@ -2110,14 +2110,14 @@
   }
 
   public final class StringResourcesKt {
-    method public static String![] stringArrayResource(@ArrayRes int id);
-    method public static String stringResource(@StringRes int id);
-    method public static String stringResource(@StringRes int id, java.lang.Object... formatArgs);
+    method @androidx.compose.Composable public static String![] stringArrayResource(@ArrayRes int id);
+    method @androidx.compose.Composable public static String stringResource(@StringRes int id);
+    method @androidx.compose.Composable public static String stringResource(@StringRes int id, java.lang.Object... formatArgs);
   }
 
   public final class VectorResourcesKt {
-    method public static androidx.ui.res.DeferredResource<androidx.ui.graphics.vector.VectorAsset> loadVectorResource(int id, androidx.ui.graphics.vector.VectorAsset? pendingResource = null, androidx.ui.graphics.vector.VectorAsset? failedResource = null);
-    method public static androidx.ui.graphics.vector.VectorAsset vectorResource(@DrawableRes int id);
+    method @androidx.compose.Composable public static androidx.ui.res.DeferredResource<androidx.ui.graphics.vector.VectorAsset> loadVectorResource(int id, androidx.ui.graphics.vector.VectorAsset? pendingResource = null, androidx.ui.graphics.vector.VectorAsset? failedResource = null);
+    method @androidx.compose.Composable public static androidx.ui.graphics.vector.VectorAsset vectorResource(@DrawableRes int id);
   }
 
 }
@@ -2166,7 +2166,7 @@
   }
 
   public final class SemanticsKt {
-    method public static void Semantics(boolean container = false, boolean mergeAllDescendants = false, kotlin.jvm.functions.Function1<? super androidx.ui.semantics.SemanticsPropertyReceiver,kotlin.Unit>? properties = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Semantics(boolean container = false, boolean mergeAllDescendants = false, kotlin.jvm.functions.Function1<? super androidx.ui.semantics.SemanticsPropertyReceiver,kotlin.Unit>? properties = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class SemanticsProperties {
@@ -2265,8 +2265,8 @@
 package androidx.ui.viewinterop {
 
   public final class ComposedViewKt {
-    method public static void AndroidView(@LayoutRes int resId, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> postInflationCallback = { _ ->  });
-    method public static void AndroidView(android.view.View view);
+    method @androidx.compose.Composable public static void AndroidView(@LayoutRes int resId, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> postInflationCallback = { _ ->  });
+    method @androidx.compose.Composable public static void AndroidView(android.view.View view);
   }
 
 }
diff --git a/ui/ui-core/api/public_plus_experimental_0.1.0-dev14.txt b/ui/ui-core/api/public_plus_experimental_0.1.0-dev14.txt
index 80af6ba..d9a1d07 100644
--- a/ui/ui-core/api/public_plus_experimental_0.1.0-dev14.txt
+++ b/ui/ui-core/api/public_plus_experimental_0.1.0-dev14.txt
@@ -89,9 +89,9 @@
 
 package androidx.ui.core {
 
-  public final class AbsoluteAlignment implements androidx.ui.core.Alignment {
+  @androidx.compose.Immutable public final class AbsoluteAlignment implements androidx.ui.core.Alignment {
     method public androidx.ui.unit.IntPxPosition align(androidx.ui.unit.IntPxSize size, androidx.ui.core.LayoutDirection layoutDirection);
-    method public androidx.ui.core.AbsoluteAlignment copy(float verticalBias, float horizontalBias);
+    method @androidx.compose.Immutable public androidx.ui.core.AbsoluteAlignment copy(float verticalBias, float horizontalBias);
     field public static final androidx.ui.core.AbsoluteAlignment.Companion! Companion;
   }
 
@@ -114,12 +114,12 @@
     property public final androidx.ui.core.AbsoluteAlignment TopRight;
   }
 
-  public static final class AbsoluteAlignment.Horizontal implements androidx.ui.core.Alignment.Horizontal {
+  @androidx.compose.Immutable public static final class AbsoluteAlignment.Horizontal implements androidx.ui.core.Alignment.Horizontal {
     method public int align-Ujlv2dA(int size, androidx.ui.core.LayoutDirection layoutDirection);
-    method public androidx.ui.core.AbsoluteAlignment.Horizontal copy(float bias);
+    method @androidx.compose.Immutable public androidx.ui.core.AbsoluteAlignment.Horizontal copy(float bias);
   }
 
-  public interface Alignment {
+  @androidx.compose.Immutable public interface Alignment {
     method public androidx.ui.unit.IntPxPosition align(androidx.ui.unit.IntPxSize size, androidx.ui.core.LayoutDirection layoutDirection = LayoutDirection.Ltr);
     field public static final androidx.ui.core.Alignment.Companion! Companion;
   }
@@ -157,15 +157,15 @@
     property public final androidx.ui.core.Alignment TopStart;
   }
 
-  public static interface Alignment.Horizontal {
+  @androidx.compose.Immutable public static interface Alignment.Horizontal {
     method public int align-Ujlv2dA(int size, androidx.ui.core.LayoutDirection layoutDirection = LayoutDirection.Ltr);
   }
 
-  public static interface Alignment.Vertical {
+  @androidx.compose.Immutable public static interface Alignment.Vertical {
     method public int align-gshw56o(int size);
   }
 
-  public abstract sealed class AlignmentLine {
+  @androidx.compose.Immutable public abstract sealed class AlignmentLine {
   }
 
   public final class AlignmentLineKt {
@@ -185,8 +185,8 @@
   }
 
   public final class ClipKt {
-    method public static androidx.ui.core.Modifier clip(androidx.ui.core.Modifier, androidx.ui.graphics.Shape shape);
-    method public static androidx.ui.core.Modifier clipToBounds(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier clip(androidx.ui.core.Modifier, androidx.ui.graphics.Shape shape);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier clipToBounds(androidx.ui.core.Modifier);
   }
 
   public final class CombinedModifier implements androidx.ui.core.Modifier {
@@ -202,12 +202,12 @@
     method public static androidx.ui.core.Modifier materialize(androidx.compose.Composer<?>, androidx.ui.core.Modifier modifier);
   }
 
-  public final class ConsumedData {
+  @androidx.compose.Immutable public final class ConsumedData {
     ctor public ConsumedData(androidx.ui.unit.PxPosition positionChange, boolean downChange);
     ctor public ConsumedData();
     method public androidx.ui.unit.PxPosition component1();
     method public boolean component2();
-    method public androidx.ui.core.ConsumedData copy(androidx.ui.unit.PxPosition positionChange, boolean downChange);
+    method @androidx.compose.Immutable public androidx.ui.core.ConsumedData copy(androidx.ui.unit.PxPosition positionChange, boolean downChange);
     method public boolean getDownChange();
     method public androidx.ui.unit.PxPosition getPositionChange();
   }
@@ -217,7 +217,7 @@
     method public abstract void drawContent();
   }
 
-  public interface ContentScale {
+  @androidx.compose.Stable public interface ContentScale {
     method public float scale-8JNMT64(long srcSize, long dstSize);
     field public static final androidx.ui.core.ContentScale.Companion! Companion;
   }
@@ -289,7 +289,7 @@
 
   public final class DrawLayerModifierKt {
     method public static inline long TransformOrigin(float pivotFractionX, float pivotFractionY);
-    method public static androidx.ui.core.Modifier drawLayer-RgGWxk0(androidx.ui.core.Modifier, float scaleX = 1f, float scaleY = 1f, float alpha = 1f, float translationX = 0f, float translationY = 0f, float shadowElevation = 0f, float rotationX = 0f, float rotationY = 0f, float rotationZ = 0f, long transformOrigin = TransformOrigin.Center, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, boolean clip = false);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier drawLayer-RgGWxk0(androidx.ui.core.Modifier, float scaleX = 1f, float scaleY = 1f, float alpha = 1f, float translationX = 0f, float translationY = 0f, float shadowElevation = 0f, float rotationX = 0f, float rotationY = 0f, float rotationZ = 0f, long transformOrigin = TransformOrigin.Center, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, boolean clip = false);
   }
 
   public interface DrawModifier extends androidx.ui.core.Modifier.Element {
@@ -304,7 +304,7 @@
   }
 
   public final class DrawShadowKt {
-    method public static androidx.ui.core.Modifier drawShadow-xWKVMPI(androidx.ui.core.Modifier, float elevation, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, boolean clip = elevation > 0.dp, @FloatRange(from=0.0, to=1.0) float opacity = 1f);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier drawShadow-xWKVMPI(androidx.ui.core.Modifier, float elevation, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, boolean clip = elevation > 0.dp, @FloatRange(from=0.0, to=1.0) float opacity = 1f);
   }
 
   public enum DropDownAlignment {
@@ -312,10 +312,10 @@
     enum_constant public static final androidx.ui.core.DropDownAlignment Start;
   }
 
-  public final class FixedScale implements androidx.ui.core.ContentScale {
+  @androidx.compose.Immutable public final class FixedScale implements androidx.ui.core.ContentScale {
     ctor public FixedScale(float value);
     method public float component1();
-    method public androidx.ui.core.FixedScale copy(float value);
+    method @androidx.compose.Immutable public androidx.ui.core.FixedScale copy(float value);
     method public float getValue();
     method public float scale-8JNMT64(long srcSize, long dstSize);
   }
@@ -373,12 +373,12 @@
   }
 
   public final class LayoutKt {
-    method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> minIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> minIntrinsicHeightMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> maxIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> maxIntrinsicHeightMeasureBlock, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
-    method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
+    method @androidx.compose.Composable public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> minIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> minIntrinsicHeightMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> maxIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> maxIntrinsicHeightMeasureBlock, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
+    method @androidx.compose.Composable public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
     method public static androidx.ui.core.LayoutNode.MeasureBlocks MeasuringIntrinsicsMeasureBlocks(kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
-    method @Deprecated public static void MultiMeasureLayout(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
-    method @Deprecated public static void PassThroughLayout(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void WithConstraints(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.WithConstraintsScope,kotlin.Unit> children);
+    method @Deprecated @androidx.compose.Composable public static void MultiMeasureLayout(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
+    method @Deprecated @androidx.compose.Composable public static void PassThroughLayout(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void WithConstraints(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.WithConstraintsScope,kotlin.Unit> children);
   }
 
   public interface LayoutModifier extends androidx.ui.core.Modifier.Element {
@@ -495,7 +495,7 @@
 
   public final class LayoutTagKt {
     method public static Object? getTag(androidx.ui.core.Measurable);
-    method public static androidx.ui.core.Modifier tag(androidx.ui.core.Modifier, Object tag);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier tag(androidx.ui.core.Modifier, Object tag);
   }
 
   public interface LayoutTagParentData {
@@ -543,7 +543,7 @@
     method public void pauseObservingReads(kotlin.jvm.functions.Function0<kotlin.Unit> block);
   }
 
-  public interface Modifier {
+  @androidx.compose.Stable public interface Modifier {
     method public boolean all(kotlin.jvm.functions.Function1<? super androidx.ui.core.Modifier.Element,java.lang.Boolean> predicate);
     method public boolean any(kotlin.jvm.functions.Function1<? super androidx.ui.core.Modifier.Element,java.lang.Boolean> predicate);
     method public <R> R! foldIn(R? initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
@@ -591,7 +591,7 @@
   }
 
   public final class OpacityKt {
-    method public static androidx.ui.core.Modifier drawOpacity(androidx.ui.core.Modifier, @FloatRange(from=0.0, to=1.0) float opacity);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier drawOpacity(androidx.ui.core.Modifier, @FloatRange(from=0.0, to=1.0) float opacity);
   }
 
   public interface OwnedLayer {
@@ -638,7 +638,7 @@
     method public void setConfigurationChangeObserver(kotlin.jvm.functions.Function0<kotlin.Unit> p);
     method public void setOnLifecycleOwnerAvailable(kotlin.jvm.functions.Function1<? super androidx.lifecycle.LifecycleOwner,kotlin.Unit> callback);
     method public void setOnSavedStateRegistryAvailable(kotlin.jvm.functions.Function1<? super androidx.ui.savedinstancestate.UiSavedStateRegistry,kotlin.Unit> callback);
-    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setShowLayoutBounds(boolean p);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @org.jetbrains.annotations.TestOnly public void setShowLayoutBounds(boolean p);
     property public abstract androidx.ui.autofill.Autofill? autofill;
     property public abstract androidx.ui.autofill.AutofillTree autofillTree;
     property public abstract androidx.ui.core.clipboard.ClipboardManager clipboardManager;
@@ -664,7 +664,7 @@
   }
 
   public final class PainterModifierKt {
-    method @Deprecated public static androidx.ui.core.DrawModifier asModifier(androidx.ui.graphics.painter.Painter, boolean sizeToIntrinsics = true, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, boolean rtl = false);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.core.DrawModifier asModifier(androidx.ui.graphics.painter.Painter, boolean sizeToIntrinsics = true, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, boolean rtl = false);
     method public static androidx.ui.core.Modifier paint(androidx.ui.core.Modifier, androidx.ui.graphics.painter.Painter painter, boolean sizeToIntrinsics = true, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
   }
 
@@ -722,25 +722,25 @@
     method public static inline String! toString-impl(long p);
   }
 
-  public final class PointerInputChange {
+  @androidx.compose.Immutable public final class PointerInputChange {
     method public long component1();
     method public androidx.ui.core.PointerInputData component2();
     method public androidx.ui.core.PointerInputData component3();
     method public androidx.ui.core.ConsumedData component4();
-    method public androidx.ui.core.PointerInputChange copy-jh1A5Og(long id, androidx.ui.core.PointerInputData current, androidx.ui.core.PointerInputData previous, androidx.ui.core.ConsumedData consumed);
+    method @androidx.compose.Immutable public androidx.ui.core.PointerInputChange copy-jh1A5Og(long id, androidx.ui.core.PointerInputData current, androidx.ui.core.PointerInputData previous, androidx.ui.core.ConsumedData consumed);
     method public androidx.ui.core.ConsumedData getConsumed();
     method public androidx.ui.core.PointerInputData getCurrent();
     method public long getId();
     method public androidx.ui.core.PointerInputData getPrevious();
   }
 
-  public final class PointerInputData {
+  @androidx.compose.Immutable public final class PointerInputData {
     ctor public PointerInputData(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
     ctor public PointerInputData();
     method public androidx.ui.unit.Uptime? component1();
     method public androidx.ui.unit.PxPosition? component2();
     method public boolean component3();
-    method public androidx.ui.core.PointerInputData copy(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
+    method @androidx.compose.Immutable public androidx.ui.core.PointerInputData copy(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
     method public boolean getDown();
     method public androidx.ui.unit.PxPosition? getPosition();
     method public androidx.ui.unit.Uptime? getUptime();
@@ -763,13 +763,13 @@
   }
 
   public final class PopupKt {
-    method public static void DropdownPopup(androidx.ui.core.DropDownAlignment dropDownAlignment = androidx.ui.core.DropDownAlignment.Start, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Popup(androidx.ui.core.Alignment alignment = Alignment.TopStart, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Popup(androidx.ui.core.PopupPositionProvider popupPositionProvider, boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static boolean isPopupLayout(android.view.View view, String? testTag = null);
+    method @androidx.compose.Composable public static void DropdownPopup(androidx.ui.core.DropDownAlignment dropDownAlignment = androidx.ui.core.DropDownAlignment.Start, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Popup(androidx.ui.core.Alignment alignment = Alignment.TopStart, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Popup(androidx.ui.core.PopupPositionProvider popupPositionProvider, boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @org.jetbrains.annotations.TestOnly public static boolean isPopupLayout(android.view.View view, String? testTag = null);
   }
 
-  public interface PopupPositionProvider {
+  @androidx.compose.Immutable public interface PopupPositionProvider {
     method public androidx.ui.unit.IntPxPosition calculatePosition(androidx.ui.unit.IntPxPosition parentLayoutPosition, androidx.ui.unit.IntPxSize parentLayoutSize, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.unit.IntPxSize popupSize);
   }
 
@@ -784,19 +784,19 @@
   }
 
   public final class TestTagKt {
-    method public static void TestTag(String tag, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static androidx.ui.core.Modifier testTag(androidx.ui.core.Modifier, String tag);
+    method @androidx.compose.Composable public static void TestTag(String tag, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier testTag(androidx.ui.core.Modifier, String tag);
   }
 
-  public final inline class TransformOrigin {
+  @androidx.compose.Immutable public final inline class TransformOrigin {
     ctor public TransformOrigin();
     method public static long constructor-impl(internal long value);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static float getPivotFractionX-impl(long $this);
     method public static float getPivotFractionY-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static inline String! toString-impl(long p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Immutable public static inline String! toString-impl(long p);
     field public static final androidx.ui.core.TransformOrigin.Companion! Companion;
   }
 
@@ -809,7 +809,7 @@
     ctor public VerticalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.unit.IntPx,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> merger);
   }
 
-  public interface WithConstraintsScope {
+  @androidx.compose.Stable public interface WithConstraintsScope {
     method public androidx.ui.core.Constraints getConstraints();
     method public androidx.ui.core.LayoutDirection getLayoutDirection();
     method public float getMaxHeight();
@@ -854,7 +854,7 @@
   }
 
   public final class ZIndexModifierKt {
-    method public static androidx.ui.core.Modifier zIndex(androidx.ui.core.Modifier, float zIndex);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier zIndex(androidx.ui.core.Modifier, float zIndex);
   }
 
 }
@@ -890,7 +890,7 @@
   }
 
   public final class FocusModifierKt {
-    method public static androidx.ui.core.focus.FocusModifier FocusModifier();
+    method @androidx.compose.Composable public static androidx.ui.core.focus.FocusModifier FocusModifier();
     method public static androidx.ui.core.focus.FocusState getFocusState(androidx.ui.core.focus.FocusModifier);
   }
 
@@ -1740,12 +1740,12 @@
     method public androidx.ui.text.AnnotatedString getText();
   }
 
-  public final class Selection {
+  @androidx.compose.Immutable public final class Selection {
     ctor public Selection(androidx.ui.core.selection.Selection.AnchorInfo start, androidx.ui.core.selection.Selection.AnchorInfo end, boolean handlesCrossed);
     method public androidx.ui.core.selection.Selection.AnchorInfo component1();
     method public androidx.ui.core.selection.Selection.AnchorInfo component2();
     method public boolean component3();
-    method public androidx.ui.core.selection.Selection copy(androidx.ui.core.selection.Selection.AnchorInfo start, androidx.ui.core.selection.Selection.AnchorInfo end, boolean handlesCrossed);
+    method @androidx.compose.Immutable public androidx.ui.core.selection.Selection copy(androidx.ui.core.selection.Selection.AnchorInfo start, androidx.ui.core.selection.Selection.AnchorInfo end, boolean handlesCrossed);
     method public androidx.ui.core.selection.Selection.AnchorInfo getEnd();
     method public boolean getHandlesCrossed();
     method public androidx.ui.core.selection.Selection.AnchorInfo getStart();
@@ -1753,19 +1753,19 @@
     method public androidx.ui.text.TextRange toTextRange();
   }
 
-  public static final class Selection.AnchorInfo {
+  @androidx.compose.Immutable public static final class Selection.AnchorInfo {
     ctor public Selection.AnchorInfo(androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.selection.Selectable selectable);
     method public androidx.ui.text.style.TextDirection component1();
     method public int component2();
     method public androidx.ui.core.selection.Selectable component3();
-    method public androidx.ui.core.selection.Selection.AnchorInfo copy(androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.selection.Selectable selectable);
+    method @androidx.compose.Immutable public androidx.ui.core.selection.Selection.AnchorInfo copy(androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.selection.Selectable selectable);
     method public androidx.ui.text.style.TextDirection getDirection();
     method public int getOffset();
     method public androidx.ui.core.selection.Selectable getSelectable();
   }
 
   public final class SelectionContainerKt {
-    method public static void SelectionContainer(androidx.ui.core.selection.Selection? selection, kotlin.jvm.functions.Function1<? super androidx.ui.core.selection.Selection,kotlin.Unit> onSelectionChange, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void SelectionContainer(androidx.ui.core.selection.Selection? selection, kotlin.jvm.functions.Function1<? super androidx.ui.core.selection.Selection,kotlin.Unit> onSelectionChange, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class SelectionHandlesKt {
@@ -1938,12 +1938,12 @@
   }
 
   public final class VectorAssetKt {
-    method @Deprecated public static androidx.ui.core.Modifier drawVector-N7QT3do(androidx.ui.graphics.vector.VectorAsset vectorImage, long tintColor = Color.Transparent, androidx.ui.graphics.BlendMode tintBlendMode = androidx.ui.graphics.vector.VectorKt.DefaultTintBlendMode, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.core.Modifier drawVector-N7QT3do(androidx.ui.graphics.vector.VectorAsset vectorImage, long tintColor = Color.Transparent, androidx.ui.graphics.BlendMode tintBlendMode = androidx.ui.graphics.vector.VectorKt.DefaultTintBlendMode, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside);
   }
 
   public final class VectorComposeKt {
-    method public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<? extends androidx.ui.graphics.vector.PathNode> clipPathData = androidx.ui.graphics.vector.VectorKt.EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
-    method public static void Path(androidx.ui.graphics.vector.VectorScope, java.util.List<? extends androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = androidx.ui.graphics.vector.VectorKt.DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = androidx.ui.graphics.vector.VectorKt.DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
+    method @androidx.compose.Composable public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<? extends androidx.ui.graphics.vector.PathNode> clipPathData = androidx.ui.graphics.vector.VectorKt.EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Path(androidx.ui.graphics.vector.VectorScope, java.util.List<? extends androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = androidx.ui.graphics.vector.VectorKt.DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = androidx.ui.graphics.vector.VectorKt.DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
   }
 
   public final class VectorGroup extends androidx.ui.graphics.vector.VectorNode implements java.lang.Iterable<androidx.ui.graphics.vector.VectorNode> kotlin.jvm.internal.markers.KMappedMarker {
@@ -1974,8 +1974,8 @@
   }
 
   public final class VectorPainterKt {
-    method public static androidx.ui.graphics.vector.VectorPainter VectorPainter(androidx.ui.graphics.vector.VectorAsset asset);
-    method public static androidx.ui.graphics.vector.VectorPainter VectorPainter-uAXuNKI(float defaultWidth, float defaultHeight, float viewportWidth = Float.NaN, float viewportHeight = Float.NaN, String name = "VectorRootGroup", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+    method @androidx.compose.Composable public static androidx.ui.graphics.vector.VectorPainter VectorPainter(androidx.ui.graphics.vector.VectorAsset asset);
+    method @androidx.compose.Composable public static androidx.ui.graphics.vector.VectorPainter VectorPainter-uAXuNKI(float defaultWidth, float defaultHeight, float viewportWidth = Float.NaN, float viewportHeight = Float.NaN, String name = "VectorRootGroup", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
     field public static final String RootGroupName = "VectorRootGroup";
   }
 
@@ -2065,10 +2065,10 @@
 package androidx.ui.res {
 
   public final class ColorResourcesKt {
-    method public static long colorResource(@ColorRes int id);
+    method @androidx.compose.Composable public static long colorResource(@ColorRes int id);
   }
 
-  public final class DeferredResource<T> {
+  @androidx.compose.Stable public final class DeferredResource<T> {
     method public androidx.ui.res.Resource<T> getResource();
     property public final androidx.ui.res.Resource<T> resource;
   }
@@ -2079,14 +2079,14 @@
   }
 
   public final class FontResourcesKt {
-    method public static androidx.ui.text.Typeface fontResource(androidx.ui.text.font.FontFamily fontFamily);
-    method public static androidx.ui.res.DeferredResource<androidx.ui.text.Typeface> loadFontResource(androidx.ui.text.font.FontFamily fontFamily, androidx.ui.text.font.FontFamily? pendingFontFamily = null, androidx.ui.text.font.FontFamily? failedFontFamily = null);
-    method public static androidx.ui.res.DeferredResource<androidx.ui.text.Typeface> loadFontResource(androidx.ui.text.font.FontFamily fontFamily, androidx.ui.text.Typeface? pendingTypeface = null, androidx.ui.text.Typeface? failedTypeface = null);
+    method @androidx.compose.Composable public static androidx.ui.text.Typeface fontResource(androidx.ui.text.font.FontFamily fontFamily);
+    method @androidx.compose.Composable public static androidx.ui.res.DeferredResource<androidx.ui.text.Typeface> loadFontResource(androidx.ui.text.font.FontFamily fontFamily, androidx.ui.text.font.FontFamily? pendingFontFamily = null, androidx.ui.text.font.FontFamily? failedFontFamily = null);
+    method @androidx.compose.Composable public static androidx.ui.res.DeferredResource<androidx.ui.text.Typeface> loadFontResource(androidx.ui.text.font.FontFamily fontFamily, androidx.ui.text.Typeface? pendingTypeface = null, androidx.ui.text.Typeface? failedTypeface = null);
   }
 
   public final class ImageResourcesKt {
-    method public static androidx.ui.graphics.ImageAsset imageResource(@DrawableRes int id);
-    method public static androidx.ui.res.DeferredResource<androidx.ui.graphics.ImageAsset> loadImageResource(int id, androidx.ui.graphics.ImageAsset? pendingImage = null, androidx.ui.graphics.ImageAsset? failedImage = null);
+    method @androidx.compose.Composable public static androidx.ui.graphics.ImageAsset imageResource(@DrawableRes int id);
+    method @androidx.compose.Composable public static androidx.ui.res.DeferredResource<androidx.ui.graphics.ImageAsset> loadImageResource(int id, androidx.ui.graphics.ImageAsset? pendingImage = null, androidx.ui.graphics.ImageAsset? failedImage = null);
   }
 
   public final class LoadedResource<T> extends androidx.ui.res.Resource<T> {
@@ -2098,10 +2098,10 @@
   }
 
   public final class PrimitiveResourcesKt {
-    method public static boolean booleanResource(@BoolRes int id);
-    method public static float dimensionResource(@DimenRes int id);
-    method public static int[] integerArrayResource(@ArrayRes int id);
-    method public static int integerResource(@IntegerRes int id);
+    method @androidx.compose.Composable public static boolean booleanResource(@BoolRes int id);
+    method @androidx.compose.Composable public static float dimensionResource(@DimenRes int id);
+    method @androidx.compose.Composable public static int[] integerArrayResource(@ArrayRes int id);
+    method @androidx.compose.Composable public static int integerResource(@IntegerRes int id);
   }
 
   public abstract sealed class Resource<T> {
@@ -2112,14 +2112,14 @@
   }
 
   public final class StringResourcesKt {
-    method public static String![] stringArrayResource(@ArrayRes int id);
-    method public static String stringResource(@StringRes int id);
-    method public static String stringResource(@StringRes int id, java.lang.Object... formatArgs);
+    method @androidx.compose.Composable public static String![] stringArrayResource(@ArrayRes int id);
+    method @androidx.compose.Composable public static String stringResource(@StringRes int id);
+    method @androidx.compose.Composable public static String stringResource(@StringRes int id, java.lang.Object... formatArgs);
   }
 
   public final class VectorResourcesKt {
-    method public static androidx.ui.res.DeferredResource<androidx.ui.graphics.vector.VectorAsset> loadVectorResource(int id, androidx.ui.graphics.vector.VectorAsset? pendingResource = null, androidx.ui.graphics.vector.VectorAsset? failedResource = null);
-    method public static androidx.ui.graphics.vector.VectorAsset vectorResource(@DrawableRes int id);
+    method @androidx.compose.Composable public static androidx.ui.res.DeferredResource<androidx.ui.graphics.vector.VectorAsset> loadVectorResource(int id, androidx.ui.graphics.vector.VectorAsset? pendingResource = null, androidx.ui.graphics.vector.VectorAsset? failedResource = null);
+    method @androidx.compose.Composable public static androidx.ui.graphics.vector.VectorAsset vectorResource(@DrawableRes int id);
   }
 
 }
@@ -2168,7 +2168,7 @@
   }
 
   public final class SemanticsKt {
-    method public static void Semantics(boolean container = false, boolean mergeAllDescendants = false, kotlin.jvm.functions.Function1<? super androidx.ui.semantics.SemanticsPropertyReceiver,kotlin.Unit>? properties = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Semantics(boolean container = false, boolean mergeAllDescendants = false, kotlin.jvm.functions.Function1<? super androidx.ui.semantics.SemanticsPropertyReceiver,kotlin.Unit>? properties = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class SemanticsProperties {
@@ -2267,8 +2267,8 @@
 package androidx.ui.viewinterop {
 
   public final class ComposedViewKt {
-    method public static void AndroidView(@LayoutRes int resId, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> postInflationCallback = { _ ->  });
-    method public static void AndroidView(android.view.View view);
+    method @androidx.compose.Composable public static void AndroidView(@LayoutRes int resId, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> postInflationCallback = { _ ->  });
+    method @androidx.compose.Composable public static void AndroidView(android.view.View view);
   }
 
 }
diff --git a/ui/ui-core/api/public_plus_experimental_current.txt b/ui/ui-core/api/public_plus_experimental_current.txt
index 80af6ba..d9a1d07 100644
--- a/ui/ui-core/api/public_plus_experimental_current.txt
+++ b/ui/ui-core/api/public_plus_experimental_current.txt
@@ -89,9 +89,9 @@
 
 package androidx.ui.core {
 
-  public final class AbsoluteAlignment implements androidx.ui.core.Alignment {
+  @androidx.compose.Immutable public final class AbsoluteAlignment implements androidx.ui.core.Alignment {
     method public androidx.ui.unit.IntPxPosition align(androidx.ui.unit.IntPxSize size, androidx.ui.core.LayoutDirection layoutDirection);
-    method public androidx.ui.core.AbsoluteAlignment copy(float verticalBias, float horizontalBias);
+    method @androidx.compose.Immutable public androidx.ui.core.AbsoluteAlignment copy(float verticalBias, float horizontalBias);
     field public static final androidx.ui.core.AbsoluteAlignment.Companion! Companion;
   }
 
@@ -114,12 +114,12 @@
     property public final androidx.ui.core.AbsoluteAlignment TopRight;
   }
 
-  public static final class AbsoluteAlignment.Horizontal implements androidx.ui.core.Alignment.Horizontal {
+  @androidx.compose.Immutable public static final class AbsoluteAlignment.Horizontal implements androidx.ui.core.Alignment.Horizontal {
     method public int align-Ujlv2dA(int size, androidx.ui.core.LayoutDirection layoutDirection);
-    method public androidx.ui.core.AbsoluteAlignment.Horizontal copy(float bias);
+    method @androidx.compose.Immutable public androidx.ui.core.AbsoluteAlignment.Horizontal copy(float bias);
   }
 
-  public interface Alignment {
+  @androidx.compose.Immutable public interface Alignment {
     method public androidx.ui.unit.IntPxPosition align(androidx.ui.unit.IntPxSize size, androidx.ui.core.LayoutDirection layoutDirection = LayoutDirection.Ltr);
     field public static final androidx.ui.core.Alignment.Companion! Companion;
   }
@@ -157,15 +157,15 @@
     property public final androidx.ui.core.Alignment TopStart;
   }
 
-  public static interface Alignment.Horizontal {
+  @androidx.compose.Immutable public static interface Alignment.Horizontal {
     method public int align-Ujlv2dA(int size, androidx.ui.core.LayoutDirection layoutDirection = LayoutDirection.Ltr);
   }
 
-  public static interface Alignment.Vertical {
+  @androidx.compose.Immutable public static interface Alignment.Vertical {
     method public int align-gshw56o(int size);
   }
 
-  public abstract sealed class AlignmentLine {
+  @androidx.compose.Immutable public abstract sealed class AlignmentLine {
   }
 
   public final class AlignmentLineKt {
@@ -185,8 +185,8 @@
   }
 
   public final class ClipKt {
-    method public static androidx.ui.core.Modifier clip(androidx.ui.core.Modifier, androidx.ui.graphics.Shape shape);
-    method public static androidx.ui.core.Modifier clipToBounds(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier clip(androidx.ui.core.Modifier, androidx.ui.graphics.Shape shape);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier clipToBounds(androidx.ui.core.Modifier);
   }
 
   public final class CombinedModifier implements androidx.ui.core.Modifier {
@@ -202,12 +202,12 @@
     method public static androidx.ui.core.Modifier materialize(androidx.compose.Composer<?>, androidx.ui.core.Modifier modifier);
   }
 
-  public final class ConsumedData {
+  @androidx.compose.Immutable public final class ConsumedData {
     ctor public ConsumedData(androidx.ui.unit.PxPosition positionChange, boolean downChange);
     ctor public ConsumedData();
     method public androidx.ui.unit.PxPosition component1();
     method public boolean component2();
-    method public androidx.ui.core.ConsumedData copy(androidx.ui.unit.PxPosition positionChange, boolean downChange);
+    method @androidx.compose.Immutable public androidx.ui.core.ConsumedData copy(androidx.ui.unit.PxPosition positionChange, boolean downChange);
     method public boolean getDownChange();
     method public androidx.ui.unit.PxPosition getPositionChange();
   }
@@ -217,7 +217,7 @@
     method public abstract void drawContent();
   }
 
-  public interface ContentScale {
+  @androidx.compose.Stable public interface ContentScale {
     method public float scale-8JNMT64(long srcSize, long dstSize);
     field public static final androidx.ui.core.ContentScale.Companion! Companion;
   }
@@ -289,7 +289,7 @@
 
   public final class DrawLayerModifierKt {
     method public static inline long TransformOrigin(float pivotFractionX, float pivotFractionY);
-    method public static androidx.ui.core.Modifier drawLayer-RgGWxk0(androidx.ui.core.Modifier, float scaleX = 1f, float scaleY = 1f, float alpha = 1f, float translationX = 0f, float translationY = 0f, float shadowElevation = 0f, float rotationX = 0f, float rotationY = 0f, float rotationZ = 0f, long transformOrigin = TransformOrigin.Center, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, boolean clip = false);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier drawLayer-RgGWxk0(androidx.ui.core.Modifier, float scaleX = 1f, float scaleY = 1f, float alpha = 1f, float translationX = 0f, float translationY = 0f, float shadowElevation = 0f, float rotationX = 0f, float rotationY = 0f, float rotationZ = 0f, long transformOrigin = TransformOrigin.Center, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, boolean clip = false);
   }
 
   public interface DrawModifier extends androidx.ui.core.Modifier.Element {
@@ -304,7 +304,7 @@
   }
 
   public final class DrawShadowKt {
-    method public static androidx.ui.core.Modifier drawShadow-xWKVMPI(androidx.ui.core.Modifier, float elevation, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, boolean clip = elevation > 0.dp, @FloatRange(from=0.0, to=1.0) float opacity = 1f);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier drawShadow-xWKVMPI(androidx.ui.core.Modifier, float elevation, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, boolean clip = elevation > 0.dp, @FloatRange(from=0.0, to=1.0) float opacity = 1f);
   }
 
   public enum DropDownAlignment {
@@ -312,10 +312,10 @@
     enum_constant public static final androidx.ui.core.DropDownAlignment Start;
   }
 
-  public final class FixedScale implements androidx.ui.core.ContentScale {
+  @androidx.compose.Immutable public final class FixedScale implements androidx.ui.core.ContentScale {
     ctor public FixedScale(float value);
     method public float component1();
-    method public androidx.ui.core.FixedScale copy(float value);
+    method @androidx.compose.Immutable public androidx.ui.core.FixedScale copy(float value);
     method public float getValue();
     method public float scale-8JNMT64(long srcSize, long dstSize);
   }
@@ -373,12 +373,12 @@
   }
 
   public final class LayoutKt {
-    method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> minIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> minIntrinsicHeightMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> maxIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> maxIntrinsicHeightMeasureBlock, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
-    method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
+    method @androidx.compose.Composable public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> minIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> minIntrinsicHeightMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> maxIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> maxIntrinsicHeightMeasureBlock, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
+    method @androidx.compose.Composable public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
     method public static androidx.ui.core.LayoutNode.MeasureBlocks MeasuringIntrinsicsMeasureBlocks(kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
-    method @Deprecated public static void MultiMeasureLayout(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
-    method @Deprecated public static void PassThroughLayout(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void WithConstraints(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.WithConstraintsScope,kotlin.Unit> children);
+    method @Deprecated @androidx.compose.Composable public static void MultiMeasureLayout(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
+    method @Deprecated @androidx.compose.Composable public static void PassThroughLayout(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void WithConstraints(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.WithConstraintsScope,kotlin.Unit> children);
   }
 
   public interface LayoutModifier extends androidx.ui.core.Modifier.Element {
@@ -495,7 +495,7 @@
 
   public final class LayoutTagKt {
     method public static Object? getTag(androidx.ui.core.Measurable);
-    method public static androidx.ui.core.Modifier tag(androidx.ui.core.Modifier, Object tag);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier tag(androidx.ui.core.Modifier, Object tag);
   }
 
   public interface LayoutTagParentData {
@@ -543,7 +543,7 @@
     method public void pauseObservingReads(kotlin.jvm.functions.Function0<kotlin.Unit> block);
   }
 
-  public interface Modifier {
+  @androidx.compose.Stable public interface Modifier {
     method public boolean all(kotlin.jvm.functions.Function1<? super androidx.ui.core.Modifier.Element,java.lang.Boolean> predicate);
     method public boolean any(kotlin.jvm.functions.Function1<? super androidx.ui.core.Modifier.Element,java.lang.Boolean> predicate);
     method public <R> R! foldIn(R? initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
@@ -591,7 +591,7 @@
   }
 
   public final class OpacityKt {
-    method public static androidx.ui.core.Modifier drawOpacity(androidx.ui.core.Modifier, @FloatRange(from=0.0, to=1.0) float opacity);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier drawOpacity(androidx.ui.core.Modifier, @FloatRange(from=0.0, to=1.0) float opacity);
   }
 
   public interface OwnedLayer {
@@ -638,7 +638,7 @@
     method public void setConfigurationChangeObserver(kotlin.jvm.functions.Function0<kotlin.Unit> p);
     method public void setOnLifecycleOwnerAvailable(kotlin.jvm.functions.Function1<? super androidx.lifecycle.LifecycleOwner,kotlin.Unit> callback);
     method public void setOnSavedStateRegistryAvailable(kotlin.jvm.functions.Function1<? super androidx.ui.savedinstancestate.UiSavedStateRegistry,kotlin.Unit> callback);
-    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setShowLayoutBounds(boolean p);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @org.jetbrains.annotations.TestOnly public void setShowLayoutBounds(boolean p);
     property public abstract androidx.ui.autofill.Autofill? autofill;
     property public abstract androidx.ui.autofill.AutofillTree autofillTree;
     property public abstract androidx.ui.core.clipboard.ClipboardManager clipboardManager;
@@ -664,7 +664,7 @@
   }
 
   public final class PainterModifierKt {
-    method @Deprecated public static androidx.ui.core.DrawModifier asModifier(androidx.ui.graphics.painter.Painter, boolean sizeToIntrinsics = true, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, boolean rtl = false);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.core.DrawModifier asModifier(androidx.ui.graphics.painter.Painter, boolean sizeToIntrinsics = true, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, boolean rtl = false);
     method public static androidx.ui.core.Modifier paint(androidx.ui.core.Modifier, androidx.ui.graphics.painter.Painter painter, boolean sizeToIntrinsics = true, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
   }
 
@@ -722,25 +722,25 @@
     method public static inline String! toString-impl(long p);
   }
 
-  public final class PointerInputChange {
+  @androidx.compose.Immutable public final class PointerInputChange {
     method public long component1();
     method public androidx.ui.core.PointerInputData component2();
     method public androidx.ui.core.PointerInputData component3();
     method public androidx.ui.core.ConsumedData component4();
-    method public androidx.ui.core.PointerInputChange copy-jh1A5Og(long id, androidx.ui.core.PointerInputData current, androidx.ui.core.PointerInputData previous, androidx.ui.core.ConsumedData consumed);
+    method @androidx.compose.Immutable public androidx.ui.core.PointerInputChange copy-jh1A5Og(long id, androidx.ui.core.PointerInputData current, androidx.ui.core.PointerInputData previous, androidx.ui.core.ConsumedData consumed);
     method public androidx.ui.core.ConsumedData getConsumed();
     method public androidx.ui.core.PointerInputData getCurrent();
     method public long getId();
     method public androidx.ui.core.PointerInputData getPrevious();
   }
 
-  public final class PointerInputData {
+  @androidx.compose.Immutable public final class PointerInputData {
     ctor public PointerInputData(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
     ctor public PointerInputData();
     method public androidx.ui.unit.Uptime? component1();
     method public androidx.ui.unit.PxPosition? component2();
     method public boolean component3();
-    method public androidx.ui.core.PointerInputData copy(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
+    method @androidx.compose.Immutable public androidx.ui.core.PointerInputData copy(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
     method public boolean getDown();
     method public androidx.ui.unit.PxPosition? getPosition();
     method public androidx.ui.unit.Uptime? getUptime();
@@ -763,13 +763,13 @@
   }
 
   public final class PopupKt {
-    method public static void DropdownPopup(androidx.ui.core.DropDownAlignment dropDownAlignment = androidx.ui.core.DropDownAlignment.Start, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Popup(androidx.ui.core.Alignment alignment = Alignment.TopStart, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Popup(androidx.ui.core.PopupPositionProvider popupPositionProvider, boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static boolean isPopupLayout(android.view.View view, String? testTag = null);
+    method @androidx.compose.Composable public static void DropdownPopup(androidx.ui.core.DropDownAlignment dropDownAlignment = androidx.ui.core.DropDownAlignment.Start, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Popup(androidx.ui.core.Alignment alignment = Alignment.TopStart, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Popup(androidx.ui.core.PopupPositionProvider popupPositionProvider, boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @org.jetbrains.annotations.TestOnly public static boolean isPopupLayout(android.view.View view, String? testTag = null);
   }
 
-  public interface PopupPositionProvider {
+  @androidx.compose.Immutable public interface PopupPositionProvider {
     method public androidx.ui.unit.IntPxPosition calculatePosition(androidx.ui.unit.IntPxPosition parentLayoutPosition, androidx.ui.unit.IntPxSize parentLayoutSize, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.unit.IntPxSize popupSize);
   }
 
@@ -784,19 +784,19 @@
   }
 
   public final class TestTagKt {
-    method public static void TestTag(String tag, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static androidx.ui.core.Modifier testTag(androidx.ui.core.Modifier, String tag);
+    method @androidx.compose.Composable public static void TestTag(String tag, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier testTag(androidx.ui.core.Modifier, String tag);
   }
 
-  public final inline class TransformOrigin {
+  @androidx.compose.Immutable public final inline class TransformOrigin {
     ctor public TransformOrigin();
     method public static long constructor-impl(internal long value);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static float getPivotFractionX-impl(long $this);
     method public static float getPivotFractionY-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static inline String! toString-impl(long p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Immutable public static inline String! toString-impl(long p);
     field public static final androidx.ui.core.TransformOrigin.Companion! Companion;
   }
 
@@ -809,7 +809,7 @@
     ctor public VerticalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.unit.IntPx,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> merger);
   }
 
-  public interface WithConstraintsScope {
+  @androidx.compose.Stable public interface WithConstraintsScope {
     method public androidx.ui.core.Constraints getConstraints();
     method public androidx.ui.core.LayoutDirection getLayoutDirection();
     method public float getMaxHeight();
@@ -854,7 +854,7 @@
   }
 
   public final class ZIndexModifierKt {
-    method public static androidx.ui.core.Modifier zIndex(androidx.ui.core.Modifier, float zIndex);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier zIndex(androidx.ui.core.Modifier, float zIndex);
   }
 
 }
@@ -890,7 +890,7 @@
   }
 
   public final class FocusModifierKt {
-    method public static androidx.ui.core.focus.FocusModifier FocusModifier();
+    method @androidx.compose.Composable public static androidx.ui.core.focus.FocusModifier FocusModifier();
     method public static androidx.ui.core.focus.FocusState getFocusState(androidx.ui.core.focus.FocusModifier);
   }
 
@@ -1740,12 +1740,12 @@
     method public androidx.ui.text.AnnotatedString getText();
   }
 
-  public final class Selection {
+  @androidx.compose.Immutable public final class Selection {
     ctor public Selection(androidx.ui.core.selection.Selection.AnchorInfo start, androidx.ui.core.selection.Selection.AnchorInfo end, boolean handlesCrossed);
     method public androidx.ui.core.selection.Selection.AnchorInfo component1();
     method public androidx.ui.core.selection.Selection.AnchorInfo component2();
     method public boolean component3();
-    method public androidx.ui.core.selection.Selection copy(androidx.ui.core.selection.Selection.AnchorInfo start, androidx.ui.core.selection.Selection.AnchorInfo end, boolean handlesCrossed);
+    method @androidx.compose.Immutable public androidx.ui.core.selection.Selection copy(androidx.ui.core.selection.Selection.AnchorInfo start, androidx.ui.core.selection.Selection.AnchorInfo end, boolean handlesCrossed);
     method public androidx.ui.core.selection.Selection.AnchorInfo getEnd();
     method public boolean getHandlesCrossed();
     method public androidx.ui.core.selection.Selection.AnchorInfo getStart();
@@ -1753,19 +1753,19 @@
     method public androidx.ui.text.TextRange toTextRange();
   }
 
-  public static final class Selection.AnchorInfo {
+  @androidx.compose.Immutable public static final class Selection.AnchorInfo {
     ctor public Selection.AnchorInfo(androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.selection.Selectable selectable);
     method public androidx.ui.text.style.TextDirection component1();
     method public int component2();
     method public androidx.ui.core.selection.Selectable component3();
-    method public androidx.ui.core.selection.Selection.AnchorInfo copy(androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.selection.Selectable selectable);
+    method @androidx.compose.Immutable public androidx.ui.core.selection.Selection.AnchorInfo copy(androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.selection.Selectable selectable);
     method public androidx.ui.text.style.TextDirection getDirection();
     method public int getOffset();
     method public androidx.ui.core.selection.Selectable getSelectable();
   }
 
   public final class SelectionContainerKt {
-    method public static void SelectionContainer(androidx.ui.core.selection.Selection? selection, kotlin.jvm.functions.Function1<? super androidx.ui.core.selection.Selection,kotlin.Unit> onSelectionChange, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void SelectionContainer(androidx.ui.core.selection.Selection? selection, kotlin.jvm.functions.Function1<? super androidx.ui.core.selection.Selection,kotlin.Unit> onSelectionChange, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class SelectionHandlesKt {
@@ -1938,12 +1938,12 @@
   }
 
   public final class VectorAssetKt {
-    method @Deprecated public static androidx.ui.core.Modifier drawVector-N7QT3do(androidx.ui.graphics.vector.VectorAsset vectorImage, long tintColor = Color.Transparent, androidx.ui.graphics.BlendMode tintBlendMode = androidx.ui.graphics.vector.VectorKt.DefaultTintBlendMode, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.core.Modifier drawVector-N7QT3do(androidx.ui.graphics.vector.VectorAsset vectorImage, long tintColor = Color.Transparent, androidx.ui.graphics.BlendMode tintBlendMode = androidx.ui.graphics.vector.VectorKt.DefaultTintBlendMode, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside);
   }
 
   public final class VectorComposeKt {
-    method public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<? extends androidx.ui.graphics.vector.PathNode> clipPathData = androidx.ui.graphics.vector.VectorKt.EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
-    method public static void Path(androidx.ui.graphics.vector.VectorScope, java.util.List<? extends androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = androidx.ui.graphics.vector.VectorKt.DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = androidx.ui.graphics.vector.VectorKt.DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
+    method @androidx.compose.Composable public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<? extends androidx.ui.graphics.vector.PathNode> clipPathData = androidx.ui.graphics.vector.VectorKt.EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Path(androidx.ui.graphics.vector.VectorScope, java.util.List<? extends androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = androidx.ui.graphics.vector.VectorKt.DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = androidx.ui.graphics.vector.VectorKt.DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
   }
 
   public final class VectorGroup extends androidx.ui.graphics.vector.VectorNode implements java.lang.Iterable<androidx.ui.graphics.vector.VectorNode> kotlin.jvm.internal.markers.KMappedMarker {
@@ -1974,8 +1974,8 @@
   }
 
   public final class VectorPainterKt {
-    method public static androidx.ui.graphics.vector.VectorPainter VectorPainter(androidx.ui.graphics.vector.VectorAsset asset);
-    method public static androidx.ui.graphics.vector.VectorPainter VectorPainter-uAXuNKI(float defaultWidth, float defaultHeight, float viewportWidth = Float.NaN, float viewportHeight = Float.NaN, String name = "VectorRootGroup", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+    method @androidx.compose.Composable public static androidx.ui.graphics.vector.VectorPainter VectorPainter(androidx.ui.graphics.vector.VectorAsset asset);
+    method @androidx.compose.Composable public static androidx.ui.graphics.vector.VectorPainter VectorPainter-uAXuNKI(float defaultWidth, float defaultHeight, float viewportWidth = Float.NaN, float viewportHeight = Float.NaN, String name = "VectorRootGroup", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
     field public static final String RootGroupName = "VectorRootGroup";
   }
 
@@ -2065,10 +2065,10 @@
 package androidx.ui.res {
 
   public final class ColorResourcesKt {
-    method public static long colorResource(@ColorRes int id);
+    method @androidx.compose.Composable public static long colorResource(@ColorRes int id);
   }
 
-  public final class DeferredResource<T> {
+  @androidx.compose.Stable public final class DeferredResource<T> {
     method public androidx.ui.res.Resource<T> getResource();
     property public final androidx.ui.res.Resource<T> resource;
   }
@@ -2079,14 +2079,14 @@
   }
 
   public final class FontResourcesKt {
-    method public static androidx.ui.text.Typeface fontResource(androidx.ui.text.font.FontFamily fontFamily);
-    method public static androidx.ui.res.DeferredResource<androidx.ui.text.Typeface> loadFontResource(androidx.ui.text.font.FontFamily fontFamily, androidx.ui.text.font.FontFamily? pendingFontFamily = null, androidx.ui.text.font.FontFamily? failedFontFamily = null);
-    method public static androidx.ui.res.DeferredResource<androidx.ui.text.Typeface> loadFontResource(androidx.ui.text.font.FontFamily fontFamily, androidx.ui.text.Typeface? pendingTypeface = null, androidx.ui.text.Typeface? failedTypeface = null);
+    method @androidx.compose.Composable public static androidx.ui.text.Typeface fontResource(androidx.ui.text.font.FontFamily fontFamily);
+    method @androidx.compose.Composable public static androidx.ui.res.DeferredResource<androidx.ui.text.Typeface> loadFontResource(androidx.ui.text.font.FontFamily fontFamily, androidx.ui.text.font.FontFamily? pendingFontFamily = null, androidx.ui.text.font.FontFamily? failedFontFamily = null);
+    method @androidx.compose.Composable public static androidx.ui.res.DeferredResource<androidx.ui.text.Typeface> loadFontResource(androidx.ui.text.font.FontFamily fontFamily, androidx.ui.text.Typeface? pendingTypeface = null, androidx.ui.text.Typeface? failedTypeface = null);
   }
 
   public final class ImageResourcesKt {
-    method public static androidx.ui.graphics.ImageAsset imageResource(@DrawableRes int id);
-    method public static androidx.ui.res.DeferredResource<androidx.ui.graphics.ImageAsset> loadImageResource(int id, androidx.ui.graphics.ImageAsset? pendingImage = null, androidx.ui.graphics.ImageAsset? failedImage = null);
+    method @androidx.compose.Composable public static androidx.ui.graphics.ImageAsset imageResource(@DrawableRes int id);
+    method @androidx.compose.Composable public static androidx.ui.res.DeferredResource<androidx.ui.graphics.ImageAsset> loadImageResource(int id, androidx.ui.graphics.ImageAsset? pendingImage = null, androidx.ui.graphics.ImageAsset? failedImage = null);
   }
 
   public final class LoadedResource<T> extends androidx.ui.res.Resource<T> {
@@ -2098,10 +2098,10 @@
   }
 
   public final class PrimitiveResourcesKt {
-    method public static boolean booleanResource(@BoolRes int id);
-    method public static float dimensionResource(@DimenRes int id);
-    method public static int[] integerArrayResource(@ArrayRes int id);
-    method public static int integerResource(@IntegerRes int id);
+    method @androidx.compose.Composable public static boolean booleanResource(@BoolRes int id);
+    method @androidx.compose.Composable public static float dimensionResource(@DimenRes int id);
+    method @androidx.compose.Composable public static int[] integerArrayResource(@ArrayRes int id);
+    method @androidx.compose.Composable public static int integerResource(@IntegerRes int id);
   }
 
   public abstract sealed class Resource<T> {
@@ -2112,14 +2112,14 @@
   }
 
   public final class StringResourcesKt {
-    method public static String![] stringArrayResource(@ArrayRes int id);
-    method public static String stringResource(@StringRes int id);
-    method public static String stringResource(@StringRes int id, java.lang.Object... formatArgs);
+    method @androidx.compose.Composable public static String![] stringArrayResource(@ArrayRes int id);
+    method @androidx.compose.Composable public static String stringResource(@StringRes int id);
+    method @androidx.compose.Composable public static String stringResource(@StringRes int id, java.lang.Object... formatArgs);
   }
 
   public final class VectorResourcesKt {
-    method public static androidx.ui.res.DeferredResource<androidx.ui.graphics.vector.VectorAsset> loadVectorResource(int id, androidx.ui.graphics.vector.VectorAsset? pendingResource = null, androidx.ui.graphics.vector.VectorAsset? failedResource = null);
-    method public static androidx.ui.graphics.vector.VectorAsset vectorResource(@DrawableRes int id);
+    method @androidx.compose.Composable public static androidx.ui.res.DeferredResource<androidx.ui.graphics.vector.VectorAsset> loadVectorResource(int id, androidx.ui.graphics.vector.VectorAsset? pendingResource = null, androidx.ui.graphics.vector.VectorAsset? failedResource = null);
+    method @androidx.compose.Composable public static androidx.ui.graphics.vector.VectorAsset vectorResource(@DrawableRes int id);
   }
 
 }
@@ -2168,7 +2168,7 @@
   }
 
   public final class SemanticsKt {
-    method public static void Semantics(boolean container = false, boolean mergeAllDescendants = false, kotlin.jvm.functions.Function1<? super androidx.ui.semantics.SemanticsPropertyReceiver,kotlin.Unit>? properties = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Semantics(boolean container = false, boolean mergeAllDescendants = false, kotlin.jvm.functions.Function1<? super androidx.ui.semantics.SemanticsPropertyReceiver,kotlin.Unit>? properties = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class SemanticsProperties {
@@ -2267,8 +2267,8 @@
 package androidx.ui.viewinterop {
 
   public final class ComposedViewKt {
-    method public static void AndroidView(@LayoutRes int resId, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> postInflationCallback = { _ ->  });
-    method public static void AndroidView(android.view.View view);
+    method @androidx.compose.Composable public static void AndroidView(@LayoutRes int resId, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> postInflationCallback = { _ ->  });
+    method @androidx.compose.Composable public static void AndroidView(android.view.View view);
   }
 
 }
diff --git a/ui/ui-core/api/restricted_0.1.0-dev14.txt b/ui/ui-core/api/restricted_0.1.0-dev14.txt
index 4b8aa9e..6b77d5a 100644
--- a/ui/ui-core/api/restricted_0.1.0-dev14.txt
+++ b/ui/ui-core/api/restricted_0.1.0-dev14.txt
@@ -89,9 +89,9 @@
 
 package androidx.ui.core {
 
-  public final class AbsoluteAlignment implements androidx.ui.core.Alignment {
+  @androidx.compose.Immutable public final class AbsoluteAlignment implements androidx.ui.core.Alignment {
     method public androidx.ui.unit.IntPxPosition align(androidx.ui.unit.IntPxSize size, androidx.ui.core.LayoutDirection layoutDirection);
-    method public androidx.ui.core.AbsoluteAlignment copy(float verticalBias, float horizontalBias);
+    method @androidx.compose.Immutable public androidx.ui.core.AbsoluteAlignment copy(float verticalBias, float horizontalBias);
     field public static final androidx.ui.core.AbsoluteAlignment.Companion! Companion;
   }
 
@@ -114,12 +114,12 @@
     property public final androidx.ui.core.AbsoluteAlignment TopRight;
   }
 
-  public static final class AbsoluteAlignment.Horizontal implements androidx.ui.core.Alignment.Horizontal {
+  @androidx.compose.Immutable public static final class AbsoluteAlignment.Horizontal implements androidx.ui.core.Alignment.Horizontal {
     method public int align-Ujlv2dA(int size, androidx.ui.core.LayoutDirection layoutDirection);
-    method public androidx.ui.core.AbsoluteAlignment.Horizontal copy(float bias);
+    method @androidx.compose.Immutable public androidx.ui.core.AbsoluteAlignment.Horizontal copy(float bias);
   }
 
-  public interface Alignment {
+  @androidx.compose.Immutable public interface Alignment {
     method public androidx.ui.unit.IntPxPosition align(androidx.ui.unit.IntPxSize size, androidx.ui.core.LayoutDirection layoutDirection = LayoutDirection.Ltr);
     field public static final androidx.ui.core.Alignment.Companion! Companion;
   }
@@ -157,15 +157,15 @@
     property public final androidx.ui.core.Alignment TopStart;
   }
 
-  public static interface Alignment.Horizontal {
+  @androidx.compose.Immutable public static interface Alignment.Horizontal {
     method public int align-Ujlv2dA(int size, androidx.ui.core.LayoutDirection layoutDirection = LayoutDirection.Ltr);
   }
 
-  public static interface Alignment.Vertical {
+  @androidx.compose.Immutable public static interface Alignment.Vertical {
     method public int align-gshw56o(int size);
   }
 
-  public abstract sealed class AlignmentLine {
+  @androidx.compose.Immutable public abstract sealed class AlignmentLine {
   }
 
   public final class AlignmentLineKt {
@@ -186,13 +186,13 @@
 
   @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final class AndroidOwner.Companion {
     method public kotlin.jvm.functions.Function1<androidx.ui.core.AndroidOwner,kotlin.Unit>? getOnAndroidOwnerCreatedCallback();
-    method public void setOnAndroidOwnerCreatedCallback(kotlin.jvm.functions.Function1<? super androidx.ui.core.AndroidOwner,kotlin.Unit>? p);
+    method @org.jetbrains.annotations.TestOnly public void setOnAndroidOwnerCreatedCallback(kotlin.jvm.functions.Function1<? super androidx.ui.core.AndroidOwner,kotlin.Unit>? p);
     property public final kotlin.jvm.functions.Function1<androidx.ui.core.AndroidOwner,kotlin.Unit>? onAndroidOwnerCreatedCallback;
   }
 
   public final class ClipKt {
-    method public static androidx.ui.core.Modifier clip(androidx.ui.core.Modifier, androidx.ui.graphics.Shape shape);
-    method public static androidx.ui.core.Modifier clipToBounds(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier clip(androidx.ui.core.Modifier, androidx.ui.graphics.Shape shape);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier clipToBounds(androidx.ui.core.Modifier);
   }
 
   public final class CombinedModifier implements androidx.ui.core.Modifier {
@@ -208,12 +208,12 @@
     method public static androidx.ui.core.Modifier materialize(androidx.compose.Composer<?>, androidx.ui.core.Modifier modifier);
   }
 
-  public final class ConsumedData {
+  @androidx.compose.Immutable public final class ConsumedData {
     ctor public ConsumedData(androidx.ui.unit.PxPosition positionChange, boolean downChange);
     ctor public ConsumedData();
     method public androidx.ui.unit.PxPosition component1();
     method public boolean component2();
-    method public androidx.ui.core.ConsumedData copy(androidx.ui.unit.PxPosition positionChange, boolean downChange);
+    method @androidx.compose.Immutable public androidx.ui.core.ConsumedData copy(androidx.ui.unit.PxPosition positionChange, boolean downChange);
     method public boolean getDownChange();
     method public androidx.ui.unit.PxPosition getPositionChange();
   }
@@ -223,7 +223,7 @@
     method public abstract void drawContent();
   }
 
-  public interface ContentScale {
+  @androidx.compose.Stable public interface ContentScale {
     method public float scale-8JNMT64(long srcSize, long dstSize);
     field public static final androidx.ui.core.ContentScale.Companion! Companion;
   }
@@ -309,7 +309,7 @@
 
   public final class DrawLayerModifierKt {
     method public static inline long TransformOrigin(float pivotFractionX, float pivotFractionY);
-    method public static androidx.ui.core.Modifier drawLayer-RgGWxk0(androidx.ui.core.Modifier, float scaleX = 1f, float scaleY = 1f, float alpha = 1f, float translationX = 0f, float translationY = 0f, float shadowElevation = 0f, float rotationX = 0f, float rotationY = 0f, float rotationZ = 0f, long transformOrigin = TransformOrigin.Center, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, boolean clip = false);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier drawLayer-RgGWxk0(androidx.ui.core.Modifier, float scaleX = 1f, float scaleY = 1f, float alpha = 1f, float translationX = 0f, float translationY = 0f, float shadowElevation = 0f, float rotationX = 0f, float rotationY = 0f, float rotationZ = 0f, long transformOrigin = TransformOrigin.Center, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, boolean clip = false);
   }
 
   public interface DrawModifier extends androidx.ui.core.Modifier.Element {
@@ -324,7 +324,7 @@
   }
 
   public final class DrawShadowKt {
-    method public static androidx.ui.core.Modifier drawShadow-xWKVMPI(androidx.ui.core.Modifier, float elevation, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, boolean clip = elevation > 0.dp, @FloatRange(from=0.0, to=1.0) float opacity = 1f);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier drawShadow-xWKVMPI(androidx.ui.core.Modifier, float elevation, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, boolean clip = elevation > 0.dp, @FloatRange(from=0.0, to=1.0) float opacity = 1f);
   }
 
   public enum DropDownAlignment {
@@ -332,10 +332,10 @@
     enum_constant public static final androidx.ui.core.DropDownAlignment Start;
   }
 
-  public final class FixedScale implements androidx.ui.core.ContentScale {
+  @androidx.compose.Immutable public final class FixedScale implements androidx.ui.core.ContentScale {
     ctor public FixedScale(float value);
     method public float component1();
-    method public androidx.ui.core.FixedScale copy(float value);
+    method @androidx.compose.Immutable public androidx.ui.core.FixedScale copy(float value);
     method public float getValue();
     method public float scale-8JNMT64(long srcSize, long dstSize);
   }
@@ -381,21 +381,21 @@
     method public float getDensity();
     method public float getFontScale();
     method public androidx.ui.core.LayoutDirection getLayoutDirection();
-    method public float toDp(float);
-    method public float toDp(int);
-    method public float toDp-NgWp0Z8(float);
-    method public float toDp-gshw56o(int);
-    method public float toDp-vVlMl6k(long);
-    method public int toIntPx-ipo6vVg(float);
-    method public int toIntPx-vVlMl6k(long);
-    method public float toPx-ipo6vVg(float);
-    method public float toPx-vVlMl6k(long);
-    method public androidx.ui.geometry.Rect toRect(androidx.ui.unit.Bounds);
-    method public long toSp(float);
-    method public long toSp(int);
-    method public long toSp-NgWp0Z8(float);
-    method public long toSp-gshw56o(int);
-    method public long toSp-ipo6vVg(float);
+    method @androidx.compose.Stable public float toDp(float);
+    method @androidx.compose.Stable public float toDp(int);
+    method @androidx.compose.Stable public float toDp-NgWp0Z8(float);
+    method @androidx.compose.Stable public float toDp-gshw56o(int);
+    method @androidx.compose.Stable public float toDp-vVlMl6k(long);
+    method @androidx.compose.Stable public int toIntPx-ipo6vVg(float);
+    method @androidx.compose.Stable public int toIntPx-vVlMl6k(long);
+    method @androidx.compose.Stable public float toPx-ipo6vVg(float);
+    method @androidx.compose.Stable public float toPx-vVlMl6k(long);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect toRect(androidx.ui.unit.Bounds);
+    method @androidx.compose.Stable public long toSp(float);
+    method @androidx.compose.Stable public long toSp(int);
+    method @androidx.compose.Stable public long toSp-NgWp0Z8(float);
+    method @androidx.compose.Stable public long toSp-gshw56o(int);
+    method @androidx.compose.Stable public long toSp-ipo6vVg(float);
   }
 
   public interface LayoutCoordinates {
@@ -425,12 +425,12 @@
   }
 
   public final class LayoutKt {
-    method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> minIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> minIntrinsicHeightMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> maxIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> maxIntrinsicHeightMeasureBlock, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
-    method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
+    method @androidx.compose.Composable public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> minIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> minIntrinsicHeightMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> maxIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> maxIntrinsicHeightMeasureBlock, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
+    method @androidx.compose.Composable public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
     method public static androidx.ui.core.LayoutNode.MeasureBlocks MeasuringIntrinsicsMeasureBlocks(kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
-    method @Deprecated public static void MultiMeasureLayout(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
-    method @Deprecated public static void PassThroughLayout(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void WithConstraints(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.WithConstraintsScope,kotlin.Unit> children);
+    method @Deprecated @androidx.compose.Composable public static void MultiMeasureLayout(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
+    method @Deprecated @androidx.compose.Composable public static void PassThroughLayout(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void WithConstraints(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.WithConstraintsScope,kotlin.Unit> children);
   }
 
   public interface LayoutModifier extends androidx.ui.core.Modifier.Element {
@@ -547,7 +547,7 @@
 
   public final class LayoutTagKt {
     method public static Object? getTag(androidx.ui.core.Measurable);
-    method public static androidx.ui.core.Modifier tag(androidx.ui.core.Modifier, Object tag);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier tag(androidx.ui.core.Modifier, Object tag);
   }
 
   public interface LayoutTagParentData {
@@ -591,13 +591,13 @@
     ctor public ModelObserver(kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function0<kotlin.Unit>,kotlin.Unit> commitExecutor);
     method public void clear(Object target);
     method public void enableModelUpdatesObserving(boolean enabled);
-    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public kotlin.jvm.functions.Function2<java.util.Set<?>,androidx.compose.frames.Frame,kotlin.Unit> getFrameCommitObserver();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @org.jetbrains.annotations.TestOnly public kotlin.jvm.functions.Function2<java.util.Set<?>,androidx.compose.frames.Frame,kotlin.Unit> getFrameCommitObserver();
     method public <T> void observeReads(T target, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> onCommit, kotlin.jvm.functions.Function0<kotlin.Unit> block);
     method public void pauseObservingReads(kotlin.jvm.functions.Function0<kotlin.Unit> block);
-    property @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final kotlin.jvm.functions.Function2<java.util.Set<?>,androidx.compose.frames.Frame,kotlin.Unit> frameCommitObserver;
+    property @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @org.jetbrains.annotations.TestOnly public final kotlin.jvm.functions.Function2<java.util.Set<?>,androidx.compose.frames.Frame,kotlin.Unit> frameCommitObserver;
   }
 
-  public interface Modifier {
+  @androidx.compose.Stable public interface Modifier {
     method public boolean all(kotlin.jvm.functions.Function1<? super androidx.ui.core.Modifier.Element,java.lang.Boolean> predicate);
     method public boolean any(kotlin.jvm.functions.Function1<? super androidx.ui.core.Modifier.Element,java.lang.Boolean> predicate);
     method public <R> R! foldIn(R? initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
@@ -645,7 +645,7 @@
   }
 
   public final class OpacityKt {
-    method public static androidx.ui.core.Modifier drawOpacity(androidx.ui.core.Modifier, @FloatRange(from=0.0, to=1.0) float opacity);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier drawOpacity(androidx.ui.core.Modifier, @FloatRange(from=0.0, to=1.0) float opacity);
   }
 
   public interface OwnedLayer {
@@ -692,7 +692,7 @@
     method public void setConfigurationChangeObserver(kotlin.jvm.functions.Function0<kotlin.Unit> p);
     method public void setOnLifecycleOwnerAvailable(kotlin.jvm.functions.Function1<? super androidx.lifecycle.LifecycleOwner,kotlin.Unit> callback);
     method public void setOnSavedStateRegistryAvailable(kotlin.jvm.functions.Function1<? super androidx.ui.savedinstancestate.UiSavedStateRegistry,kotlin.Unit> callback);
-    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setShowLayoutBounds(boolean p);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @org.jetbrains.annotations.TestOnly public void setShowLayoutBounds(boolean p);
     property public abstract androidx.ui.autofill.Autofill? autofill;
     property public abstract androidx.ui.autofill.AutofillTree autofillTree;
     property public abstract androidx.ui.core.clipboard.ClipboardManager clipboardManager;
@@ -718,7 +718,7 @@
   }
 
   public final class PainterModifierKt {
-    method @Deprecated public static androidx.ui.core.DrawModifier asModifier(androidx.ui.graphics.painter.Painter, boolean sizeToIntrinsics = true, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, boolean rtl = false);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.core.DrawModifier asModifier(androidx.ui.graphics.painter.Painter, boolean sizeToIntrinsics = true, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, boolean rtl = false);
     method public static androidx.ui.core.Modifier paint(androidx.ui.core.Modifier, androidx.ui.graphics.painter.Painter painter, boolean sizeToIntrinsics = true, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
   }
 
@@ -776,25 +776,25 @@
     method public static inline String! toString-impl(long p);
   }
 
-  public final class PointerInputChange {
+  @androidx.compose.Immutable public final class PointerInputChange {
     method public long component1();
     method public androidx.ui.core.PointerInputData component2();
     method public androidx.ui.core.PointerInputData component3();
     method public androidx.ui.core.ConsumedData component4();
-    method public androidx.ui.core.PointerInputChange copy-jh1A5Og(long id, androidx.ui.core.PointerInputData current, androidx.ui.core.PointerInputData previous, androidx.ui.core.ConsumedData consumed);
+    method @androidx.compose.Immutable public androidx.ui.core.PointerInputChange copy-jh1A5Og(long id, androidx.ui.core.PointerInputData current, androidx.ui.core.PointerInputData previous, androidx.ui.core.ConsumedData consumed);
     method public androidx.ui.core.ConsumedData getConsumed();
     method public androidx.ui.core.PointerInputData getCurrent();
     method public long getId();
     method public androidx.ui.core.PointerInputData getPrevious();
   }
 
-  public final class PointerInputData {
+  @androidx.compose.Immutable public final class PointerInputData {
     ctor public PointerInputData(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
     ctor public PointerInputData();
     method public androidx.ui.unit.Uptime? component1();
     method public androidx.ui.unit.PxPosition? component2();
     method public boolean component3();
-    method public androidx.ui.core.PointerInputData copy(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
+    method @androidx.compose.Immutable public androidx.ui.core.PointerInputData copy(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
     method public boolean getDown();
     method public androidx.ui.unit.PxPosition? getPosition();
     method public androidx.ui.unit.Uptime? getUptime();
@@ -817,13 +817,13 @@
   }
 
   public final class PopupKt {
-    method public static void DropdownPopup(androidx.ui.core.DropDownAlignment dropDownAlignment = androidx.ui.core.DropDownAlignment.Start, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Popup(androidx.ui.core.Alignment alignment = Alignment.TopStart, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Popup(androidx.ui.core.PopupPositionProvider popupPositionProvider, boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static boolean isPopupLayout(android.view.View view, String? testTag = null);
+    method @androidx.compose.Composable public static void DropdownPopup(androidx.ui.core.DropDownAlignment dropDownAlignment = androidx.ui.core.DropDownAlignment.Start, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Popup(androidx.ui.core.Alignment alignment = Alignment.TopStart, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Popup(androidx.ui.core.PopupPositionProvider popupPositionProvider, boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @org.jetbrains.annotations.TestOnly public static boolean isPopupLayout(android.view.View view, String? testTag = null);
   }
 
-  public interface PopupPositionProvider {
+  @androidx.compose.Immutable public interface PopupPositionProvider {
     method public androidx.ui.unit.IntPxPosition calculatePosition(androidx.ui.unit.IntPxPosition parentLayoutPosition, androidx.ui.unit.IntPxSize parentLayoutSize, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.unit.IntPxSize popupSize);
   }
 
@@ -838,19 +838,19 @@
   }
 
   public final class TestTagKt {
-    method public static void TestTag(String tag, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static androidx.ui.core.Modifier testTag(androidx.ui.core.Modifier, String tag);
+    method @androidx.compose.Composable public static void TestTag(String tag, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier testTag(androidx.ui.core.Modifier, String tag);
   }
 
-  public final inline class TransformOrigin {
+  @androidx.compose.Immutable public final inline class TransformOrigin {
     ctor public TransformOrigin();
     method public static long constructor-impl(internal long value);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static float getPivotFractionX-impl(long $this);
     method public static float getPivotFractionY-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static inline String! toString-impl(long p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Immutable public static inline String! toString-impl(long p);
     field public static final androidx.ui.core.TransformOrigin.Companion! Companion;
   }
 
@@ -863,7 +863,7 @@
     ctor public VerticalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.unit.IntPx,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> merger);
   }
 
-  public interface WithConstraintsScope {
+  @androidx.compose.Stable public interface WithConstraintsScope {
     method public androidx.ui.core.Constraints getConstraints();
     method public androidx.ui.core.LayoutDirection getLayoutDirection();
     method public float getMaxHeight();
@@ -908,7 +908,7 @@
   }
 
   public final class ZIndexModifierKt {
-    method public static androidx.ui.core.Modifier zIndex(androidx.ui.core.Modifier, float zIndex);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier zIndex(androidx.ui.core.Modifier, float zIndex);
   }
 
 }
@@ -944,7 +944,7 @@
   }
 
   public final class FocusModifierKt {
-    method public static androidx.ui.core.focus.FocusModifier FocusModifier();
+    method @androidx.compose.Composable public static androidx.ui.core.focus.FocusModifier FocusModifier();
     method public static androidx.ui.core.focus.FocusState getFocusState(androidx.ui.core.focus.FocusModifier);
   }
 
@@ -1794,12 +1794,12 @@
     method public androidx.ui.text.AnnotatedString getText();
   }
 
-  public final class Selection {
+  @androidx.compose.Immutable public final class Selection {
     ctor public Selection(androidx.ui.core.selection.Selection.AnchorInfo start, androidx.ui.core.selection.Selection.AnchorInfo end, boolean handlesCrossed);
     method public androidx.ui.core.selection.Selection.AnchorInfo component1();
     method public androidx.ui.core.selection.Selection.AnchorInfo component2();
     method public boolean component3();
-    method public androidx.ui.core.selection.Selection copy(androidx.ui.core.selection.Selection.AnchorInfo start, androidx.ui.core.selection.Selection.AnchorInfo end, boolean handlesCrossed);
+    method @androidx.compose.Immutable public androidx.ui.core.selection.Selection copy(androidx.ui.core.selection.Selection.AnchorInfo start, androidx.ui.core.selection.Selection.AnchorInfo end, boolean handlesCrossed);
     method public androidx.ui.core.selection.Selection.AnchorInfo getEnd();
     method public boolean getHandlesCrossed();
     method public androidx.ui.core.selection.Selection.AnchorInfo getStart();
@@ -1807,19 +1807,19 @@
     method public androidx.ui.text.TextRange toTextRange();
   }
 
-  public static final class Selection.AnchorInfo {
+  @androidx.compose.Immutable public static final class Selection.AnchorInfo {
     ctor public Selection.AnchorInfo(androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.selection.Selectable selectable);
     method public androidx.ui.text.style.TextDirection component1();
     method public int component2();
     method public androidx.ui.core.selection.Selectable component3();
-    method public androidx.ui.core.selection.Selection.AnchorInfo copy(androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.selection.Selectable selectable);
+    method @androidx.compose.Immutable public androidx.ui.core.selection.Selection.AnchorInfo copy(androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.selection.Selectable selectable);
     method public androidx.ui.text.style.TextDirection getDirection();
     method public int getOffset();
     method public androidx.ui.core.selection.Selectable getSelectable();
   }
 
   public final class SelectionContainerKt {
-    method public static void SelectionContainer(androidx.ui.core.selection.Selection? selection, kotlin.jvm.functions.Function1<? super androidx.ui.core.selection.Selection,kotlin.Unit> onSelectionChange, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void SelectionContainer(androidx.ui.core.selection.Selection? selection, kotlin.jvm.functions.Function1<? super androidx.ui.core.selection.Selection,kotlin.Unit> onSelectionChange, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class SelectionHandlesKt {
@@ -1992,12 +1992,12 @@
   }
 
   public final class VectorAssetKt {
-    method @Deprecated public static androidx.ui.core.Modifier drawVector-N7QT3do(androidx.ui.graphics.vector.VectorAsset vectorImage, long tintColor = Color.Transparent, androidx.ui.graphics.BlendMode tintBlendMode = androidx.ui.graphics.vector.VectorKt.DefaultTintBlendMode, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.core.Modifier drawVector-N7QT3do(androidx.ui.graphics.vector.VectorAsset vectorImage, long tintColor = Color.Transparent, androidx.ui.graphics.BlendMode tintBlendMode = androidx.ui.graphics.vector.VectorKt.DefaultTintBlendMode, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside);
   }
 
   public final class VectorComposeKt {
-    method public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<? extends androidx.ui.graphics.vector.PathNode> clipPathData = androidx.ui.graphics.vector.VectorKt.EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
-    method public static void Path(androidx.ui.graphics.vector.VectorScope, java.util.List<? extends androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = androidx.ui.graphics.vector.VectorKt.DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = androidx.ui.graphics.vector.VectorKt.DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
+    method @androidx.compose.Composable public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<? extends androidx.ui.graphics.vector.PathNode> clipPathData = androidx.ui.graphics.vector.VectorKt.EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Path(androidx.ui.graphics.vector.VectorScope, java.util.List<? extends androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = androidx.ui.graphics.vector.VectorKt.DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = androidx.ui.graphics.vector.VectorKt.DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
   }
 
   public final class VectorGroup extends androidx.ui.graphics.vector.VectorNode implements java.lang.Iterable<androidx.ui.graphics.vector.VectorNode> kotlin.jvm.internal.markers.KMappedMarker {
@@ -2028,8 +2028,8 @@
   }
 
   public final class VectorPainterKt {
-    method public static androidx.ui.graphics.vector.VectorPainter VectorPainter(androidx.ui.graphics.vector.VectorAsset asset);
-    method public static androidx.ui.graphics.vector.VectorPainter VectorPainter-uAXuNKI(float defaultWidth, float defaultHeight, float viewportWidth = Float.NaN, float viewportHeight = Float.NaN, String name = "VectorRootGroup", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+    method @androidx.compose.Composable public static androidx.ui.graphics.vector.VectorPainter VectorPainter(androidx.ui.graphics.vector.VectorAsset asset);
+    method @androidx.compose.Composable public static androidx.ui.graphics.vector.VectorPainter VectorPainter-uAXuNKI(float defaultWidth, float defaultHeight, float viewportWidth = Float.NaN, float viewportHeight = Float.NaN, String name = "VectorRootGroup", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
     field public static final String RootGroupName = "VectorRootGroup";
   }
 
@@ -2128,10 +2128,10 @@
 package androidx.ui.res {
 
   public final class ColorResourcesKt {
-    method public static long colorResource(@ColorRes int id);
+    method @androidx.compose.Composable public static long colorResource(@ColorRes int id);
   }
 
-  public final class DeferredResource<T> {
+  @androidx.compose.Stable public final class DeferredResource<T> {
     method public androidx.ui.res.Resource<T> getResource();
     property public final androidx.ui.res.Resource<T> resource;
   }
@@ -2142,14 +2142,14 @@
   }
 
   public final class FontResourcesKt {
-    method public static androidx.ui.text.Typeface fontResource(androidx.ui.text.font.FontFamily fontFamily);
-    method public static androidx.ui.res.DeferredResource<androidx.ui.text.Typeface> loadFontResource(androidx.ui.text.font.FontFamily fontFamily, androidx.ui.text.font.FontFamily? pendingFontFamily = null, androidx.ui.text.font.FontFamily? failedFontFamily = null);
-    method public static androidx.ui.res.DeferredResource<androidx.ui.text.Typeface> loadFontResource(androidx.ui.text.font.FontFamily fontFamily, androidx.ui.text.Typeface? pendingTypeface = null, androidx.ui.text.Typeface? failedTypeface = null);
+    method @androidx.compose.Composable public static androidx.ui.text.Typeface fontResource(androidx.ui.text.font.FontFamily fontFamily);
+    method @androidx.compose.Composable public static androidx.ui.res.DeferredResource<androidx.ui.text.Typeface> loadFontResource(androidx.ui.text.font.FontFamily fontFamily, androidx.ui.text.font.FontFamily? pendingFontFamily = null, androidx.ui.text.font.FontFamily? failedFontFamily = null);
+    method @androidx.compose.Composable public static androidx.ui.res.DeferredResource<androidx.ui.text.Typeface> loadFontResource(androidx.ui.text.font.FontFamily fontFamily, androidx.ui.text.Typeface? pendingTypeface = null, androidx.ui.text.Typeface? failedTypeface = null);
   }
 
   public final class ImageResourcesKt {
-    method public static androidx.ui.graphics.ImageAsset imageResource(@DrawableRes int id);
-    method public static androidx.ui.res.DeferredResource<androidx.ui.graphics.ImageAsset> loadImageResource(int id, androidx.ui.graphics.ImageAsset? pendingImage = null, androidx.ui.graphics.ImageAsset? failedImage = null);
+    method @androidx.compose.Composable public static androidx.ui.graphics.ImageAsset imageResource(@DrawableRes int id);
+    method @androidx.compose.Composable public static androidx.ui.res.DeferredResource<androidx.ui.graphics.ImageAsset> loadImageResource(int id, androidx.ui.graphics.ImageAsset? pendingImage = null, androidx.ui.graphics.ImageAsset? failedImage = null);
   }
 
   public final class LoadedResource<T> extends androidx.ui.res.Resource<T> {
@@ -2161,10 +2161,10 @@
   }
 
   public final class PrimitiveResourcesKt {
-    method public static boolean booleanResource(@BoolRes int id);
-    method public static float dimensionResource(@DimenRes int id);
-    method public static int[] integerArrayResource(@ArrayRes int id);
-    method public static int integerResource(@IntegerRes int id);
+    method @androidx.compose.Composable public static boolean booleanResource(@BoolRes int id);
+    method @androidx.compose.Composable public static float dimensionResource(@DimenRes int id);
+    method @androidx.compose.Composable public static int[] integerArrayResource(@ArrayRes int id);
+    method @androidx.compose.Composable public static int integerResource(@IntegerRes int id);
   }
 
   public abstract sealed class Resource<T> {
@@ -2175,14 +2175,14 @@
   }
 
   public final class StringResourcesKt {
-    method public static String![] stringArrayResource(@ArrayRes int id);
-    method public static String stringResource(@StringRes int id);
-    method public static String stringResource(@StringRes int id, java.lang.Object... formatArgs);
+    method @androidx.compose.Composable public static String![] stringArrayResource(@ArrayRes int id);
+    method @androidx.compose.Composable public static String stringResource(@StringRes int id);
+    method @androidx.compose.Composable public static String stringResource(@StringRes int id, java.lang.Object... formatArgs);
   }
 
   public final class VectorResourcesKt {
-    method public static androidx.ui.res.DeferredResource<androidx.ui.graphics.vector.VectorAsset> loadVectorResource(int id, androidx.ui.graphics.vector.VectorAsset? pendingResource = null, androidx.ui.graphics.vector.VectorAsset? failedResource = null);
-    method public static androidx.ui.graphics.vector.VectorAsset vectorResource(@DrawableRes int id);
+    method @androidx.compose.Composable public static androidx.ui.res.DeferredResource<androidx.ui.graphics.vector.VectorAsset> loadVectorResource(int id, androidx.ui.graphics.vector.VectorAsset? pendingResource = null, androidx.ui.graphics.vector.VectorAsset? failedResource = null);
+    method @androidx.compose.Composable public static androidx.ui.graphics.vector.VectorAsset vectorResource(@DrawableRes int id);
   }
 
 }
@@ -2231,7 +2231,7 @@
   }
 
   public final class SemanticsKt {
-    method public static void Semantics(boolean container = false, boolean mergeAllDescendants = false, kotlin.jvm.functions.Function1<? super androidx.ui.semantics.SemanticsPropertyReceiver,kotlin.Unit>? properties = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Semantics(boolean container = false, boolean mergeAllDescendants = false, kotlin.jvm.functions.Function1<? super androidx.ui.semantics.SemanticsPropertyReceiver,kotlin.Unit>? properties = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class SemanticsProperties {
@@ -2330,8 +2330,8 @@
 package androidx.ui.viewinterop {
 
   public final class ComposedViewKt {
-    method public static void AndroidView(@LayoutRes int resId, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> postInflationCallback = { _ ->  });
-    method public static void AndroidView(android.view.View view);
+    method @androidx.compose.Composable public static void AndroidView(@LayoutRes int resId, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> postInflationCallback = { _ ->  });
+    method @androidx.compose.Composable public static void AndroidView(android.view.View view);
   }
 
 }
diff --git a/ui/ui-core/api/restricted_current.txt b/ui/ui-core/api/restricted_current.txt
index 4b8aa9e..6b77d5a 100644
--- a/ui/ui-core/api/restricted_current.txt
+++ b/ui/ui-core/api/restricted_current.txt
@@ -89,9 +89,9 @@
 
 package androidx.ui.core {
 
-  public final class AbsoluteAlignment implements androidx.ui.core.Alignment {
+  @androidx.compose.Immutable public final class AbsoluteAlignment implements androidx.ui.core.Alignment {
     method public androidx.ui.unit.IntPxPosition align(androidx.ui.unit.IntPxSize size, androidx.ui.core.LayoutDirection layoutDirection);
-    method public androidx.ui.core.AbsoluteAlignment copy(float verticalBias, float horizontalBias);
+    method @androidx.compose.Immutable public androidx.ui.core.AbsoluteAlignment copy(float verticalBias, float horizontalBias);
     field public static final androidx.ui.core.AbsoluteAlignment.Companion! Companion;
   }
 
@@ -114,12 +114,12 @@
     property public final androidx.ui.core.AbsoluteAlignment TopRight;
   }
 
-  public static final class AbsoluteAlignment.Horizontal implements androidx.ui.core.Alignment.Horizontal {
+  @androidx.compose.Immutable public static final class AbsoluteAlignment.Horizontal implements androidx.ui.core.Alignment.Horizontal {
     method public int align-Ujlv2dA(int size, androidx.ui.core.LayoutDirection layoutDirection);
-    method public androidx.ui.core.AbsoluteAlignment.Horizontal copy(float bias);
+    method @androidx.compose.Immutable public androidx.ui.core.AbsoluteAlignment.Horizontal copy(float bias);
   }
 
-  public interface Alignment {
+  @androidx.compose.Immutable public interface Alignment {
     method public androidx.ui.unit.IntPxPosition align(androidx.ui.unit.IntPxSize size, androidx.ui.core.LayoutDirection layoutDirection = LayoutDirection.Ltr);
     field public static final androidx.ui.core.Alignment.Companion! Companion;
   }
@@ -157,15 +157,15 @@
     property public final androidx.ui.core.Alignment TopStart;
   }
 
-  public static interface Alignment.Horizontal {
+  @androidx.compose.Immutable public static interface Alignment.Horizontal {
     method public int align-Ujlv2dA(int size, androidx.ui.core.LayoutDirection layoutDirection = LayoutDirection.Ltr);
   }
 
-  public static interface Alignment.Vertical {
+  @androidx.compose.Immutable public static interface Alignment.Vertical {
     method public int align-gshw56o(int size);
   }
 
-  public abstract sealed class AlignmentLine {
+  @androidx.compose.Immutable public abstract sealed class AlignmentLine {
   }
 
   public final class AlignmentLineKt {
@@ -186,13 +186,13 @@
 
   @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final class AndroidOwner.Companion {
     method public kotlin.jvm.functions.Function1<androidx.ui.core.AndroidOwner,kotlin.Unit>? getOnAndroidOwnerCreatedCallback();
-    method public void setOnAndroidOwnerCreatedCallback(kotlin.jvm.functions.Function1<? super androidx.ui.core.AndroidOwner,kotlin.Unit>? p);
+    method @org.jetbrains.annotations.TestOnly public void setOnAndroidOwnerCreatedCallback(kotlin.jvm.functions.Function1<? super androidx.ui.core.AndroidOwner,kotlin.Unit>? p);
     property public final kotlin.jvm.functions.Function1<androidx.ui.core.AndroidOwner,kotlin.Unit>? onAndroidOwnerCreatedCallback;
   }
 
   public final class ClipKt {
-    method public static androidx.ui.core.Modifier clip(androidx.ui.core.Modifier, androidx.ui.graphics.Shape shape);
-    method public static androidx.ui.core.Modifier clipToBounds(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier clip(androidx.ui.core.Modifier, androidx.ui.graphics.Shape shape);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier clipToBounds(androidx.ui.core.Modifier);
   }
 
   public final class CombinedModifier implements androidx.ui.core.Modifier {
@@ -208,12 +208,12 @@
     method public static androidx.ui.core.Modifier materialize(androidx.compose.Composer<?>, androidx.ui.core.Modifier modifier);
   }
 
-  public final class ConsumedData {
+  @androidx.compose.Immutable public final class ConsumedData {
     ctor public ConsumedData(androidx.ui.unit.PxPosition positionChange, boolean downChange);
     ctor public ConsumedData();
     method public androidx.ui.unit.PxPosition component1();
     method public boolean component2();
-    method public androidx.ui.core.ConsumedData copy(androidx.ui.unit.PxPosition positionChange, boolean downChange);
+    method @androidx.compose.Immutable public androidx.ui.core.ConsumedData copy(androidx.ui.unit.PxPosition positionChange, boolean downChange);
     method public boolean getDownChange();
     method public androidx.ui.unit.PxPosition getPositionChange();
   }
@@ -223,7 +223,7 @@
     method public abstract void drawContent();
   }
 
-  public interface ContentScale {
+  @androidx.compose.Stable public interface ContentScale {
     method public float scale-8JNMT64(long srcSize, long dstSize);
     field public static final androidx.ui.core.ContentScale.Companion! Companion;
   }
@@ -309,7 +309,7 @@
 
   public final class DrawLayerModifierKt {
     method public static inline long TransformOrigin(float pivotFractionX, float pivotFractionY);
-    method public static androidx.ui.core.Modifier drawLayer-RgGWxk0(androidx.ui.core.Modifier, float scaleX = 1f, float scaleY = 1f, float alpha = 1f, float translationX = 0f, float translationY = 0f, float shadowElevation = 0f, float rotationX = 0f, float rotationY = 0f, float rotationZ = 0f, long transformOrigin = TransformOrigin.Center, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, boolean clip = false);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier drawLayer-RgGWxk0(androidx.ui.core.Modifier, float scaleX = 1f, float scaleY = 1f, float alpha = 1f, float translationX = 0f, float translationY = 0f, float shadowElevation = 0f, float rotationX = 0f, float rotationY = 0f, float rotationZ = 0f, long transformOrigin = TransformOrigin.Center, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, boolean clip = false);
   }
 
   public interface DrawModifier extends androidx.ui.core.Modifier.Element {
@@ -324,7 +324,7 @@
   }
 
   public final class DrawShadowKt {
-    method public static androidx.ui.core.Modifier drawShadow-xWKVMPI(androidx.ui.core.Modifier, float elevation, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, boolean clip = elevation > 0.dp, @FloatRange(from=0.0, to=1.0) float opacity = 1f);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier drawShadow-xWKVMPI(androidx.ui.core.Modifier, float elevation, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, boolean clip = elevation > 0.dp, @FloatRange(from=0.0, to=1.0) float opacity = 1f);
   }
 
   public enum DropDownAlignment {
@@ -332,10 +332,10 @@
     enum_constant public static final androidx.ui.core.DropDownAlignment Start;
   }
 
-  public final class FixedScale implements androidx.ui.core.ContentScale {
+  @androidx.compose.Immutable public final class FixedScale implements androidx.ui.core.ContentScale {
     ctor public FixedScale(float value);
     method public float component1();
-    method public androidx.ui.core.FixedScale copy(float value);
+    method @androidx.compose.Immutable public androidx.ui.core.FixedScale copy(float value);
     method public float getValue();
     method public float scale-8JNMT64(long srcSize, long dstSize);
   }
@@ -381,21 +381,21 @@
     method public float getDensity();
     method public float getFontScale();
     method public androidx.ui.core.LayoutDirection getLayoutDirection();
-    method public float toDp(float);
-    method public float toDp(int);
-    method public float toDp-NgWp0Z8(float);
-    method public float toDp-gshw56o(int);
-    method public float toDp-vVlMl6k(long);
-    method public int toIntPx-ipo6vVg(float);
-    method public int toIntPx-vVlMl6k(long);
-    method public float toPx-ipo6vVg(float);
-    method public float toPx-vVlMl6k(long);
-    method public androidx.ui.geometry.Rect toRect(androidx.ui.unit.Bounds);
-    method public long toSp(float);
-    method public long toSp(int);
-    method public long toSp-NgWp0Z8(float);
-    method public long toSp-gshw56o(int);
-    method public long toSp-ipo6vVg(float);
+    method @androidx.compose.Stable public float toDp(float);
+    method @androidx.compose.Stable public float toDp(int);
+    method @androidx.compose.Stable public float toDp-NgWp0Z8(float);
+    method @androidx.compose.Stable public float toDp-gshw56o(int);
+    method @androidx.compose.Stable public float toDp-vVlMl6k(long);
+    method @androidx.compose.Stable public int toIntPx-ipo6vVg(float);
+    method @androidx.compose.Stable public int toIntPx-vVlMl6k(long);
+    method @androidx.compose.Stable public float toPx-ipo6vVg(float);
+    method @androidx.compose.Stable public float toPx-vVlMl6k(long);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect toRect(androidx.ui.unit.Bounds);
+    method @androidx.compose.Stable public long toSp(float);
+    method @androidx.compose.Stable public long toSp(int);
+    method @androidx.compose.Stable public long toSp-NgWp0Z8(float);
+    method @androidx.compose.Stable public long toSp-gshw56o(int);
+    method @androidx.compose.Stable public long toSp-ipo6vVg(float);
   }
 
   public interface LayoutCoordinates {
@@ -425,12 +425,12 @@
   }
 
   public final class LayoutKt {
-    method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> minIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> minIntrinsicHeightMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> maxIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> maxIntrinsicHeightMeasureBlock, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
-    method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
+    method @androidx.compose.Composable public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> minIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> minIntrinsicHeightMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> maxIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function4<? super androidx.ui.core.IntrinsicMeasureScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,? super androidx.ui.core.LayoutDirection,androidx.ui.unit.IntPx> maxIntrinsicHeightMeasureBlock, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
+    method @androidx.compose.Composable public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
     method public static androidx.ui.core.LayoutNode.MeasureBlocks MeasuringIntrinsicsMeasureBlocks(kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
-    method @Deprecated public static void MultiMeasureLayout(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
-    method @Deprecated public static void PassThroughLayout(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void WithConstraints(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.WithConstraintsScope,kotlin.Unit> children);
+    method @Deprecated @androidx.compose.Composable public static void MultiMeasureLayout(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function4<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? super androidx.ui.core.LayoutDirection,? extends androidx.ui.core.MeasureScope.MeasureResult> measureBlock);
+    method @Deprecated @androidx.compose.Composable public static void PassThroughLayout(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void WithConstraints(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.WithConstraintsScope,kotlin.Unit> children);
   }
 
   public interface LayoutModifier extends androidx.ui.core.Modifier.Element {
@@ -547,7 +547,7 @@
 
   public final class LayoutTagKt {
     method public static Object? getTag(androidx.ui.core.Measurable);
-    method public static androidx.ui.core.Modifier tag(androidx.ui.core.Modifier, Object tag);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier tag(androidx.ui.core.Modifier, Object tag);
   }
 
   public interface LayoutTagParentData {
@@ -591,13 +591,13 @@
     ctor public ModelObserver(kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function0<kotlin.Unit>,kotlin.Unit> commitExecutor);
     method public void clear(Object target);
     method public void enableModelUpdatesObserving(boolean enabled);
-    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public kotlin.jvm.functions.Function2<java.util.Set<?>,androidx.compose.frames.Frame,kotlin.Unit> getFrameCommitObserver();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @org.jetbrains.annotations.TestOnly public kotlin.jvm.functions.Function2<java.util.Set<?>,androidx.compose.frames.Frame,kotlin.Unit> getFrameCommitObserver();
     method public <T> void observeReads(T target, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> onCommit, kotlin.jvm.functions.Function0<kotlin.Unit> block);
     method public void pauseObservingReads(kotlin.jvm.functions.Function0<kotlin.Unit> block);
-    property @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final kotlin.jvm.functions.Function2<java.util.Set<?>,androidx.compose.frames.Frame,kotlin.Unit> frameCommitObserver;
+    property @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @org.jetbrains.annotations.TestOnly public final kotlin.jvm.functions.Function2<java.util.Set<?>,androidx.compose.frames.Frame,kotlin.Unit> frameCommitObserver;
   }
 
-  public interface Modifier {
+  @androidx.compose.Stable public interface Modifier {
     method public boolean all(kotlin.jvm.functions.Function1<? super androidx.ui.core.Modifier.Element,java.lang.Boolean> predicate);
     method public boolean any(kotlin.jvm.functions.Function1<? super androidx.ui.core.Modifier.Element,java.lang.Boolean> predicate);
     method public <R> R! foldIn(R? initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
@@ -645,7 +645,7 @@
   }
 
   public final class OpacityKt {
-    method public static androidx.ui.core.Modifier drawOpacity(androidx.ui.core.Modifier, @FloatRange(from=0.0, to=1.0) float opacity);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier drawOpacity(androidx.ui.core.Modifier, @FloatRange(from=0.0, to=1.0) float opacity);
   }
 
   public interface OwnedLayer {
@@ -692,7 +692,7 @@
     method public void setConfigurationChangeObserver(kotlin.jvm.functions.Function0<kotlin.Unit> p);
     method public void setOnLifecycleOwnerAvailable(kotlin.jvm.functions.Function1<? super androidx.lifecycle.LifecycleOwner,kotlin.Unit> callback);
     method public void setOnSavedStateRegistryAvailable(kotlin.jvm.functions.Function1<? super androidx.ui.savedinstancestate.UiSavedStateRegistry,kotlin.Unit> callback);
-    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setShowLayoutBounds(boolean p);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @org.jetbrains.annotations.TestOnly public void setShowLayoutBounds(boolean p);
     property public abstract androidx.ui.autofill.Autofill? autofill;
     property public abstract androidx.ui.autofill.AutofillTree autofillTree;
     property public abstract androidx.ui.core.clipboard.ClipboardManager clipboardManager;
@@ -718,7 +718,7 @@
   }
 
   public final class PainterModifierKt {
-    method @Deprecated public static androidx.ui.core.DrawModifier asModifier(androidx.ui.graphics.painter.Painter, boolean sizeToIntrinsics = true, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, boolean rtl = false);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.core.DrawModifier asModifier(androidx.ui.graphics.painter.Painter, boolean sizeToIntrinsics = true, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null, boolean rtl = false);
     method public static androidx.ui.core.Modifier paint(androidx.ui.core.Modifier, androidx.ui.graphics.painter.Painter painter, boolean sizeToIntrinsics = true, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
   }
 
@@ -776,25 +776,25 @@
     method public static inline String! toString-impl(long p);
   }
 
-  public final class PointerInputChange {
+  @androidx.compose.Immutable public final class PointerInputChange {
     method public long component1();
     method public androidx.ui.core.PointerInputData component2();
     method public androidx.ui.core.PointerInputData component3();
     method public androidx.ui.core.ConsumedData component4();
-    method public androidx.ui.core.PointerInputChange copy-jh1A5Og(long id, androidx.ui.core.PointerInputData current, androidx.ui.core.PointerInputData previous, androidx.ui.core.ConsumedData consumed);
+    method @androidx.compose.Immutable public androidx.ui.core.PointerInputChange copy-jh1A5Og(long id, androidx.ui.core.PointerInputData current, androidx.ui.core.PointerInputData previous, androidx.ui.core.ConsumedData consumed);
     method public androidx.ui.core.ConsumedData getConsumed();
     method public androidx.ui.core.PointerInputData getCurrent();
     method public long getId();
     method public androidx.ui.core.PointerInputData getPrevious();
   }
 
-  public final class PointerInputData {
+  @androidx.compose.Immutable public final class PointerInputData {
     ctor public PointerInputData(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
     ctor public PointerInputData();
     method public androidx.ui.unit.Uptime? component1();
     method public androidx.ui.unit.PxPosition? component2();
     method public boolean component3();
-    method public androidx.ui.core.PointerInputData copy(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
+    method @androidx.compose.Immutable public androidx.ui.core.PointerInputData copy(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
     method public boolean getDown();
     method public androidx.ui.unit.PxPosition? getPosition();
     method public androidx.ui.unit.Uptime? getUptime();
@@ -817,13 +817,13 @@
   }
 
   public final class PopupKt {
-    method public static void DropdownPopup(androidx.ui.core.DropDownAlignment dropDownAlignment = androidx.ui.core.DropDownAlignment.Start, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Popup(androidx.ui.core.Alignment alignment = Alignment.TopStart, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Popup(androidx.ui.core.PopupPositionProvider popupPositionProvider, boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static boolean isPopupLayout(android.view.View view, String? testTag = null);
+    method @androidx.compose.Composable public static void DropdownPopup(androidx.ui.core.DropDownAlignment dropDownAlignment = androidx.ui.core.DropDownAlignment.Start, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Popup(androidx.ui.core.Alignment alignment = Alignment.TopStart, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Popup(androidx.ui.core.PopupPositionProvider popupPositionProvider, boolean isFocusable = false, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @org.jetbrains.annotations.TestOnly public static boolean isPopupLayout(android.view.View view, String? testTag = null);
   }
 
-  public interface PopupPositionProvider {
+  @androidx.compose.Immutable public interface PopupPositionProvider {
     method public androidx.ui.unit.IntPxPosition calculatePosition(androidx.ui.unit.IntPxPosition parentLayoutPosition, androidx.ui.unit.IntPxSize parentLayoutSize, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.unit.IntPxSize popupSize);
   }
 
@@ -838,19 +838,19 @@
   }
 
   public final class TestTagKt {
-    method public static void TestTag(String tag, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static androidx.ui.core.Modifier testTag(androidx.ui.core.Modifier, String tag);
+    method @androidx.compose.Composable public static void TestTag(String tag, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier testTag(androidx.ui.core.Modifier, String tag);
   }
 
-  public final inline class TransformOrigin {
+  @androidx.compose.Immutable public final inline class TransformOrigin {
     ctor public TransformOrigin();
     method public static long constructor-impl(internal long value);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static float getPivotFractionX-impl(long $this);
     method public static float getPivotFractionY-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static inline String! toString-impl(long p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Immutable public static inline String! toString-impl(long p);
     field public static final androidx.ui.core.TransformOrigin.Companion! Companion;
   }
 
@@ -863,7 +863,7 @@
     ctor public VerticalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.unit.IntPx,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> merger);
   }
 
-  public interface WithConstraintsScope {
+  @androidx.compose.Stable public interface WithConstraintsScope {
     method public androidx.ui.core.Constraints getConstraints();
     method public androidx.ui.core.LayoutDirection getLayoutDirection();
     method public float getMaxHeight();
@@ -908,7 +908,7 @@
   }
 
   public final class ZIndexModifierKt {
-    method public static androidx.ui.core.Modifier zIndex(androidx.ui.core.Modifier, float zIndex);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier zIndex(androidx.ui.core.Modifier, float zIndex);
   }
 
 }
@@ -944,7 +944,7 @@
   }
 
   public final class FocusModifierKt {
-    method public static androidx.ui.core.focus.FocusModifier FocusModifier();
+    method @androidx.compose.Composable public static androidx.ui.core.focus.FocusModifier FocusModifier();
     method public static androidx.ui.core.focus.FocusState getFocusState(androidx.ui.core.focus.FocusModifier);
   }
 
@@ -1794,12 +1794,12 @@
     method public androidx.ui.text.AnnotatedString getText();
   }
 
-  public final class Selection {
+  @androidx.compose.Immutable public final class Selection {
     ctor public Selection(androidx.ui.core.selection.Selection.AnchorInfo start, androidx.ui.core.selection.Selection.AnchorInfo end, boolean handlesCrossed);
     method public androidx.ui.core.selection.Selection.AnchorInfo component1();
     method public androidx.ui.core.selection.Selection.AnchorInfo component2();
     method public boolean component3();
-    method public androidx.ui.core.selection.Selection copy(androidx.ui.core.selection.Selection.AnchorInfo start, androidx.ui.core.selection.Selection.AnchorInfo end, boolean handlesCrossed);
+    method @androidx.compose.Immutable public androidx.ui.core.selection.Selection copy(androidx.ui.core.selection.Selection.AnchorInfo start, androidx.ui.core.selection.Selection.AnchorInfo end, boolean handlesCrossed);
     method public androidx.ui.core.selection.Selection.AnchorInfo getEnd();
     method public boolean getHandlesCrossed();
     method public androidx.ui.core.selection.Selection.AnchorInfo getStart();
@@ -1807,19 +1807,19 @@
     method public androidx.ui.text.TextRange toTextRange();
   }
 
-  public static final class Selection.AnchorInfo {
+  @androidx.compose.Immutable public static final class Selection.AnchorInfo {
     ctor public Selection.AnchorInfo(androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.selection.Selectable selectable);
     method public androidx.ui.text.style.TextDirection component1();
     method public int component2();
     method public androidx.ui.core.selection.Selectable component3();
-    method public androidx.ui.core.selection.Selection.AnchorInfo copy(androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.selection.Selectable selectable);
+    method @androidx.compose.Immutable public androidx.ui.core.selection.Selection.AnchorInfo copy(androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.selection.Selectable selectable);
     method public androidx.ui.text.style.TextDirection getDirection();
     method public int getOffset();
     method public androidx.ui.core.selection.Selectable getSelectable();
   }
 
   public final class SelectionContainerKt {
-    method public static void SelectionContainer(androidx.ui.core.selection.Selection? selection, kotlin.jvm.functions.Function1<? super androidx.ui.core.selection.Selection,kotlin.Unit> onSelectionChange, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void SelectionContainer(androidx.ui.core.selection.Selection? selection, kotlin.jvm.functions.Function1<? super androidx.ui.core.selection.Selection,kotlin.Unit> onSelectionChange, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class SelectionHandlesKt {
@@ -1992,12 +1992,12 @@
   }
 
   public final class VectorAssetKt {
-    method @Deprecated public static androidx.ui.core.Modifier drawVector-N7QT3do(androidx.ui.graphics.vector.VectorAsset vectorImage, long tintColor = Color.Transparent, androidx.ui.graphics.BlendMode tintBlendMode = androidx.ui.graphics.vector.VectorKt.DefaultTintBlendMode, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.core.Modifier drawVector-N7QT3do(androidx.ui.graphics.vector.VectorAsset vectorImage, long tintColor = Color.Transparent, androidx.ui.graphics.BlendMode tintBlendMode = androidx.ui.graphics.vector.VectorKt.DefaultTintBlendMode, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside);
   }
 
   public final class VectorComposeKt {
-    method public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<? extends androidx.ui.graphics.vector.PathNode> clipPathData = androidx.ui.graphics.vector.VectorKt.EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
-    method public static void Path(androidx.ui.graphics.vector.VectorScope, java.util.List<? extends androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = androidx.ui.graphics.vector.VectorKt.DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = androidx.ui.graphics.vector.VectorKt.DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
+    method @androidx.compose.Composable public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<? extends androidx.ui.graphics.vector.PathNode> clipPathData = androidx.ui.graphics.vector.VectorKt.EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Path(androidx.ui.graphics.vector.VectorScope, java.util.List<? extends androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = androidx.ui.graphics.vector.VectorKt.DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = androidx.ui.graphics.vector.VectorKt.DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
   }
 
   public final class VectorGroup extends androidx.ui.graphics.vector.VectorNode implements java.lang.Iterable<androidx.ui.graphics.vector.VectorNode> kotlin.jvm.internal.markers.KMappedMarker {
@@ -2028,8 +2028,8 @@
   }
 
   public final class VectorPainterKt {
-    method public static androidx.ui.graphics.vector.VectorPainter VectorPainter(androidx.ui.graphics.vector.VectorAsset asset);
-    method public static androidx.ui.graphics.vector.VectorPainter VectorPainter-uAXuNKI(float defaultWidth, float defaultHeight, float viewportWidth = Float.NaN, float viewportHeight = Float.NaN, String name = "VectorRootGroup", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+    method @androidx.compose.Composable public static androidx.ui.graphics.vector.VectorPainter VectorPainter(androidx.ui.graphics.vector.VectorAsset asset);
+    method @androidx.compose.Composable public static androidx.ui.graphics.vector.VectorPainter VectorPainter-uAXuNKI(float defaultWidth, float defaultHeight, float viewportWidth = Float.NaN, float viewportHeight = Float.NaN, String name = "VectorRootGroup", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
     field public static final String RootGroupName = "VectorRootGroup";
   }
 
@@ -2128,10 +2128,10 @@
 package androidx.ui.res {
 
   public final class ColorResourcesKt {
-    method public static long colorResource(@ColorRes int id);
+    method @androidx.compose.Composable public static long colorResource(@ColorRes int id);
   }
 
-  public final class DeferredResource<T> {
+  @androidx.compose.Stable public final class DeferredResource<T> {
     method public androidx.ui.res.Resource<T> getResource();
     property public final androidx.ui.res.Resource<T> resource;
   }
@@ -2142,14 +2142,14 @@
   }
 
   public final class FontResourcesKt {
-    method public static androidx.ui.text.Typeface fontResource(androidx.ui.text.font.FontFamily fontFamily);
-    method public static androidx.ui.res.DeferredResource<androidx.ui.text.Typeface> loadFontResource(androidx.ui.text.font.FontFamily fontFamily, androidx.ui.text.font.FontFamily? pendingFontFamily = null, androidx.ui.text.font.FontFamily? failedFontFamily = null);
-    method public static androidx.ui.res.DeferredResource<androidx.ui.text.Typeface> loadFontResource(androidx.ui.text.font.FontFamily fontFamily, androidx.ui.text.Typeface? pendingTypeface = null, androidx.ui.text.Typeface? failedTypeface = null);
+    method @androidx.compose.Composable public static androidx.ui.text.Typeface fontResource(androidx.ui.text.font.FontFamily fontFamily);
+    method @androidx.compose.Composable public static androidx.ui.res.DeferredResource<androidx.ui.text.Typeface> loadFontResource(androidx.ui.text.font.FontFamily fontFamily, androidx.ui.text.font.FontFamily? pendingFontFamily = null, androidx.ui.text.font.FontFamily? failedFontFamily = null);
+    method @androidx.compose.Composable public static androidx.ui.res.DeferredResource<androidx.ui.text.Typeface> loadFontResource(androidx.ui.text.font.FontFamily fontFamily, androidx.ui.text.Typeface? pendingTypeface = null, androidx.ui.text.Typeface? failedTypeface = null);
   }
 
   public final class ImageResourcesKt {
-    method public static androidx.ui.graphics.ImageAsset imageResource(@DrawableRes int id);
-    method public static androidx.ui.res.DeferredResource<androidx.ui.graphics.ImageAsset> loadImageResource(int id, androidx.ui.graphics.ImageAsset? pendingImage = null, androidx.ui.graphics.ImageAsset? failedImage = null);
+    method @androidx.compose.Composable public static androidx.ui.graphics.ImageAsset imageResource(@DrawableRes int id);
+    method @androidx.compose.Composable public static androidx.ui.res.DeferredResource<androidx.ui.graphics.ImageAsset> loadImageResource(int id, androidx.ui.graphics.ImageAsset? pendingImage = null, androidx.ui.graphics.ImageAsset? failedImage = null);
   }
 
   public final class LoadedResource<T> extends androidx.ui.res.Resource<T> {
@@ -2161,10 +2161,10 @@
   }
 
   public final class PrimitiveResourcesKt {
-    method public static boolean booleanResource(@BoolRes int id);
-    method public static float dimensionResource(@DimenRes int id);
-    method public static int[] integerArrayResource(@ArrayRes int id);
-    method public static int integerResource(@IntegerRes int id);
+    method @androidx.compose.Composable public static boolean booleanResource(@BoolRes int id);
+    method @androidx.compose.Composable public static float dimensionResource(@DimenRes int id);
+    method @androidx.compose.Composable public static int[] integerArrayResource(@ArrayRes int id);
+    method @androidx.compose.Composable public static int integerResource(@IntegerRes int id);
   }
 
   public abstract sealed class Resource<T> {
@@ -2175,14 +2175,14 @@
   }
 
   public final class StringResourcesKt {
-    method public static String![] stringArrayResource(@ArrayRes int id);
-    method public static String stringResource(@StringRes int id);
-    method public static String stringResource(@StringRes int id, java.lang.Object... formatArgs);
+    method @androidx.compose.Composable public static String![] stringArrayResource(@ArrayRes int id);
+    method @androidx.compose.Composable public static String stringResource(@StringRes int id);
+    method @androidx.compose.Composable public static String stringResource(@StringRes int id, java.lang.Object... formatArgs);
   }
 
   public final class VectorResourcesKt {
-    method public static androidx.ui.res.DeferredResource<androidx.ui.graphics.vector.VectorAsset> loadVectorResource(int id, androidx.ui.graphics.vector.VectorAsset? pendingResource = null, androidx.ui.graphics.vector.VectorAsset? failedResource = null);
-    method public static androidx.ui.graphics.vector.VectorAsset vectorResource(@DrawableRes int id);
+    method @androidx.compose.Composable public static androidx.ui.res.DeferredResource<androidx.ui.graphics.vector.VectorAsset> loadVectorResource(int id, androidx.ui.graphics.vector.VectorAsset? pendingResource = null, androidx.ui.graphics.vector.VectorAsset? failedResource = null);
+    method @androidx.compose.Composable public static androidx.ui.graphics.vector.VectorAsset vectorResource(@DrawableRes int id);
   }
 
 }
@@ -2231,7 +2231,7 @@
   }
 
   public final class SemanticsKt {
-    method public static void Semantics(boolean container = false, boolean mergeAllDescendants = false, kotlin.jvm.functions.Function1<? super androidx.ui.semantics.SemanticsPropertyReceiver,kotlin.Unit>? properties = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Semantics(boolean container = false, boolean mergeAllDescendants = false, kotlin.jvm.functions.Function1<? super androidx.ui.semantics.SemanticsPropertyReceiver,kotlin.Unit>? properties = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class SemanticsProperties {
@@ -2330,8 +2330,8 @@
 package androidx.ui.viewinterop {
 
   public final class ComposedViewKt {
-    method public static void AndroidView(@LayoutRes int resId, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> postInflationCallback = { _ ->  });
-    method public static void AndroidView(android.view.View view);
+    method @androidx.compose.Composable public static void AndroidView(@LayoutRes int resId, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> postInflationCallback = { _ ->  });
+    method @androidx.compose.Composable public static void AndroidView(android.view.View view);
   }
 
 }
diff --git a/ui/ui-foundation/api/0.1.0-dev14.txt b/ui/ui-foundation/api/0.1.0-dev14.txt
index f82bc51..b3a2498 100644
--- a/ui/ui-foundation/api/0.1.0-dev14.txt
+++ b/ui/ui-foundation/api/0.1.0-dev14.txt
@@ -2,58 +2,58 @@
 package androidx.ui.foundation {
 
   public final class AdapterListKt {
-    method public static <T> void AdapterList(java.util.List<? extends T> data, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> itemCallback);
+    method @androidx.compose.Composable public static <T> void AdapterList(java.util.List<? extends T> data, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> itemCallback);
   }
 
-  public final class Border {
+  @androidx.compose.Immutable public final class Border {
     method public float component1();
     method public androidx.ui.graphics.Brush component2();
-    method public androidx.ui.foundation.Border copy-HIF-_f0(float size, androidx.ui.graphics.Brush brush);
+    method @androidx.compose.Immutable public androidx.ui.foundation.Border copy-HIF-_f0(float size, androidx.ui.graphics.Brush brush);
     method public androidx.ui.graphics.Brush getBrush();
     method public float getSize();
   }
 
   public final class BorderKt {
-    method public static androidx.ui.foundation.Border Border-YSZAjy0(float size, long color);
+    method @androidx.compose.Stable public static androidx.ui.foundation.Border Border-YSZAjy0(float size, long color);
   }
 
   public final class BoxKt {
-    method public static void Box-TInkGdk(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, long backgroundColor = Color.Transparent, androidx.ui.foundation.Border? border = null, float padding = elvis {
+    method @androidx.compose.Composable public static void Box-TInkGdk(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, long backgroundColor = Color.Transparent, androidx.ui.foundation.Border? border = null, float padding = elvis {
     var var4119171b: androidx.ui.unit.Dp = border?.size
     if (var4119171b != null) var4119171b else 0.dp
 }, float paddingStart = Dp.Unspecified, float paddingTop = Dp.Unspecified, float paddingEnd = Dp.Unspecified, float paddingBottom = Dp.Unspecified, androidx.ui.core.Alignment gravity = ContentGravity.TopStart, kotlin.jvm.functions.Function0<kotlin.Unit> children = emptyContent());
   }
 
   public final class CanvasKt {
-    method public static void Canvas(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.drawscope.DrawScope,kotlin.Unit> onCanvas);
+    method @androidx.compose.Composable public static void Canvas(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.drawscope.DrawScope,kotlin.Unit> onCanvas);
   }
 
   public final class ClickableKt {
-    method @Deprecated public static void Clickable(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, String?  androidx.ui.foundation.InteractionState? interactionState = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static androidx.ui.core.Modifier clickable(androidx.ui.core.Modifier, boolean enabled = true, String?  androidx.ui.foundation.InteractionState interactionState = remember({ 
+    method @Deprecated @androidx.compose.Composable public static void Clickable(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, String?  androidx.ui.foundation.InteractionState? interactionState = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static androidx.ui.core.Modifier clickable(androidx.ui.core.Modifier, boolean enabled = true, String?  androidx.ui.foundation.InteractionState interactionState = remember({ 
     return <init>()
 }), androidx.ui.foundation.Indication? indication = IndicationAmbient.invoke(), kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> onClick);
   }
 
   public final class ClickableTextKt {
-    method public static void ClickableText(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle style = TextStyle.Default, boolean softWrap = true, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, int maxLines = 2147483647, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> onClick);
+    method @androidx.compose.Composable public static void ClickableText(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle style = TextStyle.Default, boolean softWrap = true, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, int maxLines = 2147483647, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> onClick);
   }
 
   public final class ContentColorKt {
-    method public static long contentColor();
+    method @androidx.compose.Composable public static long contentColor();
     method public static androidx.compose.ProvidableAmbient<androidx.ui.graphics.Color> getContentColorAmbient();
   }
 
   public final class DarkThemeKt {
-    method public static boolean isSystemInDarkTheme();
+    method @androidx.compose.Composable public static boolean isSystemInDarkTheme();
   }
 
   public final class DeterminateProgressIndicatorKt {
-    method public static void DeterminateProgressIndicator(@FloatRange(from=0.0, to=1.0) float progress, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void DeterminateProgressIndicator(@FloatRange(from=0.0, to=1.0) float progress, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class DialogKt {
-    method public static void Dialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Dialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class DrawBackgroundKt {
@@ -67,28 +67,28 @@
   }
 
   public final class DrawBorderKt {
-    method @Deprecated public static androidx.ui.core.Modifier DrawBorder(androidx.ui.foundation.Border border, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
-    method @Deprecated public static androidx.ui.foundation.DrawBorder DrawBorder-3vYgddY(float size, androidx.ui.graphics.Brush brush, androidx.ui.graphics.Shape shape);
-    method @Deprecated public static androidx.ui.core.Modifier DrawBorder-Wounw_8(float size, long color, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.core.Modifier DrawBorder(androidx.ui.foundation.Border border, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.foundation.DrawBorder DrawBorder-3vYgddY(float size, androidx.ui.graphics.Brush brush, androidx.ui.graphics.Shape shape);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.core.Modifier DrawBorder-Wounw_8(float size, long color, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
     method public static androidx.ui.core.Modifier drawBorder(androidx.ui.core.Modifier, androidx.ui.foundation.Border border, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
     method public static androidx.ui.core.Modifier drawBorder-ik3FbJE(androidx.ui.core.Modifier, float size, long color, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
     method public static androidx.ui.core.Modifier drawBorder-vGsXmEw(androidx.ui.core.Modifier, float size, androidx.ui.graphics.Brush brush, androidx.ui.graphics.Shape shape);
   }
 
   public final class IconKt {
-    method public static void Icon-A4lfJGc(androidx.ui.graphics.vector.VectorAsset asset, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
-    method public static void Icon-RCipKA8(androidx.ui.graphics.painter.Painter painter, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
-    method public static void Icon-smRaMnI(androidx.ui.graphics.ImageAsset asset, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
+    method @androidx.compose.Composable public static void Icon-A4lfJGc(androidx.ui.graphics.vector.VectorAsset asset, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
+    method @androidx.compose.Composable public static void Icon-RCipKA8(androidx.ui.graphics.painter.Painter painter, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
+    method @androidx.compose.Composable public static void Icon-smRaMnI(androidx.ui.graphics.ImageAsset asset, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
   }
 
   public final class ImageKt {
-    method public static inline void Image(androidx.ui.graphics.ImageAsset asset, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
-    method public static inline void Image(androidx.ui.graphics.vector.VectorAsset asset, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
-    method public static void Image(androidx.ui.graphics.painter.Painter painter, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
-    method @Deprecated public static void SimpleImage--SSR55g(androidx.ui.graphics.ImageAsset image, long tint = Color.Unset);
+    method @androidx.compose.Composable public static inline void Image(androidx.ui.graphics.ImageAsset asset, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
+    method @androidx.compose.Composable public static inline void Image(androidx.ui.graphics.vector.VectorAsset asset, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
+    method @androidx.compose.Composable public static void Image(androidx.ui.graphics.painter.Painter painter, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
+    method @Deprecated @androidx.compose.Composable public static void SimpleImage--SSR55g(androidx.ui.graphics.ImageAsset image, long tint = Color.Unset);
   }
 
-  public interface Indication {
+  @androidx.compose.Stable public interface Indication {
     method public androidx.ui.foundation.IndicationInstance createInstance();
   }
 
@@ -113,7 +113,7 @@
     field public static final androidx.ui.foundation.Interaction.Pressed! INSTANCE;
   }
 
-  public final class InteractionState implements androidx.compose.State<java.util.Set<? extends androidx.ui.foundation.Interaction>> {
+  @androidx.compose.Stable public final class InteractionState implements androidx.compose.State<java.util.Set<? extends androidx.ui.foundation.Interaction>> {
     ctor public InteractionState();
     method public void addInteraction(androidx.ui.foundation.Interaction interaction, androidx.ui.unit.PxPosition? position = null);
     method public operator boolean contains(androidx.ui.foundation.Interaction interaction);
@@ -124,12 +124,12 @@
   }
 
   public final class ScrollerKt {
-    method public static void HorizontalScroller(androidx.ui.foundation.ScrollerPosition scrollerPosition = ScrollerPosition(), androidx.ui.core.Modifier modifier = Modifier, boolean isScrollable = true, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> children);
-    method public static androidx.ui.foundation.ScrollerPosition ScrollerPosition(float initial = 0f, boolean isReversed = false);
-    method public static void VerticalScroller(androidx.ui.foundation.ScrollerPosition scrollerPosition = ScrollerPosition(), androidx.ui.core.Modifier modifier = Modifier, boolean isScrollable = true, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void HorizontalScroller(androidx.ui.foundation.ScrollerPosition scrollerPosition = ScrollerPosition(), androidx.ui.core.Modifier modifier = Modifier, boolean isScrollable = true, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static androidx.ui.foundation.ScrollerPosition ScrollerPosition(float initial = 0f, boolean isReversed = false);
+    method @androidx.compose.Composable public static void VerticalScroller(androidx.ui.foundation.ScrollerPosition scrollerPosition = ScrollerPosition(), androidx.ui.core.Modifier modifier = Modifier, boolean isScrollable = true, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> children);
   }
 
-  public final class ScrollerPosition {
+  @androidx.compose.Stable public final class ScrollerPosition {
     ctor public ScrollerPosition(androidx.ui.foundation.animation.FlingConfig flingConfig, float initial, internal boolean isReversed, androidx.animation.AnimationClockObservable animationClock);
     method public float getMaxPosition();
     method public float getValue();
@@ -145,7 +145,7 @@
   }
 
   public static final class ScrollerPosition.Companion {
-    method public androidx.ui.savedinstancestate.Saver<androidx.ui.foundation.ScrollerPosition,?> Saver(androidx.ui.foundation.animation.FlingConfig flingConfig, boolean isReversed, androidx.animation.AnimationClockObservable animationClock);
+    method @androidx.compose.Composable public androidx.ui.savedinstancestate.Saver<androidx.ui.foundation.ScrollerPosition,?> Saver(androidx.ui.foundation.animation.FlingConfig flingConfig, boolean isReversed, androidx.animation.AnimationClockObservable animationClock);
   }
 
   public final class Strings {
@@ -167,15 +167,15 @@
   }
 
   public final class TextFieldKt {
-    method public static void TextField-DBcCkQs(androidx.ui.foundation.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.ui.foundation.TextFieldValue,kotlin.Unit> onValueChange, androidx.ui.core.Modifier modifier = Modifier, long textColor = Color.Unset, androidx.ui.text.TextStyle textStyle = currentTextStyle(), androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit>  androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long cursorColor = contentColor());
+    method @androidx.compose.Composable public static void TextField-DBcCkQs(androidx.ui.foundation.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.ui.foundation.TextFieldValue,kotlin.Unit> onValueChange, androidx.ui.core.Modifier modifier = Modifier, long textColor = Color.Unset, androidx.ui.text.TextStyle textStyle = currentTextStyle(), androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit>  androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long cursorColor = contentColor());
   }
 
-  public final class TextFieldValue {
+  @androidx.compose.Immutable public final class TextFieldValue {
     ctor public TextFieldValue(String text, androidx.ui.text.TextRange selection);
     ctor public TextFieldValue();
     method public String component1();
     method public androidx.ui.text.TextRange component2();
-    method public androidx.ui.foundation.TextFieldValue copy(String text, androidx.ui.text.TextRange selection);
+    method @androidx.compose.Immutable public androidx.ui.foundation.TextFieldValue copy(String text, androidx.ui.text.TextRange selection);
     method public androidx.ui.text.TextRange getSelection();
     method public String getText();
     field public static final androidx.ui.foundation.TextFieldValue.Companion! Companion;
@@ -187,10 +187,10 @@
   }
 
   public final class TextKt {
-    method public static void ProvideTextStyle(androidx.ui.text.TextStyle value, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Text--mY4wAA(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, long color = Color.Unset, long fontSize = TextUnit.Inherit, androidx.ui.text.font.FontStyle? fontStyle = null, androidx.ui.text.font.FontFamily? fontFamily = null, long letterSpacing = TextUnit.Inherit, androidx.ui.text.style.TextDecoration? textDecoration = null, androidx.ui.text.style.TextAlign? textAlign = null, long lineHeight = TextUnit.Inherit, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, boolean softWrap = true, int maxLines = 2147483647, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent = mapOf(), kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  androidx.ui.text.TextStyle style = currentTextStyle());
-    method public static void Text-OII7cnY(String text, androidx.ui.core.Modifier modifier = Modifier, long color = Color.Unset, long fontSize = TextUnit.Inherit, androidx.ui.text.font.FontStyle? fontStyle = null, androidx.ui.text.font.FontFamily? fontFamily = null, long letterSpacing = TextUnit.Inherit, androidx.ui.text.style.TextDecoration? textDecoration = null, androidx.ui.text.style.TextAlign? textAlign = null, long lineHeight = TextUnit.Inherit, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, boolean softWrap = true, int maxLines = 2147483647, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent = mapOf(), kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  androidx.ui.text.TextStyle style = currentTextStyle());
-    method public static androidx.ui.text.TextStyle currentTextStyle();
+    method @androidx.compose.Composable public static void ProvideTextStyle(androidx.ui.text.TextStyle value, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Text--mY4wAA(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, long color = Color.Unset, long fontSize = TextUnit.Inherit, androidx.ui.text.font.FontStyle? fontStyle = null, androidx.ui.text.font.FontFamily? fontFamily = null, long letterSpacing = TextUnit.Inherit, androidx.ui.text.style.TextDecoration? textDecoration = null, androidx.ui.text.style.TextAlign? textAlign = null, long lineHeight = TextUnit.Inherit, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, boolean softWrap = true, int maxLines = 2147483647, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent = mapOf(), kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  androidx.ui.text.TextStyle style = currentTextStyle());
+    method @androidx.compose.Composable public static void Text-OII7cnY(String text, androidx.ui.core.Modifier modifier = Modifier, long color = Color.Unset, long fontSize = TextUnit.Inherit, androidx.ui.text.font.FontStyle? fontStyle = null, androidx.ui.text.font.FontFamily? fontFamily = null, long letterSpacing = TextUnit.Inherit, androidx.ui.text.style.TextDecoration? textDecoration = null, androidx.ui.text.style.TextAlign? textAlign = null, long lineHeight = TextUnit.Inherit, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, boolean softWrap = true, int maxLines = 2147483647, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent = mapOf(), kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  androidx.ui.text.TextStyle style = currentTextStyle());
+    method @androidx.compose.Composable public static androidx.ui.text.TextStyle currentTextStyle();
   }
 
 }
@@ -251,12 +251,12 @@
   public final class AndroidFlingSplineKt {
   }
 
-  public final class FlingConfig {
+  @androidx.compose.Immutable public final class FlingConfig {
     ctor public FlingConfig(androidx.animation.DecayAnimation decayAnimation, kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>? onAnimationEnd, kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget);
     method public androidx.animation.DecayAnimation component1();
     method public kotlin.jvm.functions.Function3<androidx.animation.AnimationEndReason,java.lang.Float,java.lang.Float,kotlin.Unit>? component2();
     method public kotlin.jvm.functions.Function1<java.lang.Float,androidx.animation.TargetAnimation> component3();
-    method public androidx.ui.foundation.animation.FlingConfig copy(androidx.animation.DecayAnimation decayAnimation, kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>? onAnimationEnd, kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget);
+    method @androidx.compose.Immutable public androidx.ui.foundation.animation.FlingConfig copy(androidx.animation.DecayAnimation decayAnimation, kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>? onAnimationEnd, kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget);
     method public kotlin.jvm.functions.Function1<java.lang.Float,androidx.animation.TargetAnimation> getAdjustTarget();
     method public androidx.animation.DecayAnimation getDecayAnimation();
     method public kotlin.jvm.functions.Function3<androidx.animation.AnimationEndReason,java.lang.Float,java.lang.Float,kotlin.Unit>? getOnAnimationEnd();
@@ -264,7 +264,7 @@
 
   public final class FlingConfigKt {
     method public static androidx.ui.foundation.animation.FlingConfig AnchorsFlingConfig(java.util.List<java.lang.Float> anchors, androidx.animation.AnimationBuilder<java.lang.Float> animationBuilder = androidx.animation.PhysicsBuilder(), kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>?  androidx.animation.DecayAnimation decayAnimation = androidx.animation.ExponentialDecay());
-    method public static androidx.ui.foundation.animation.FlingConfig FlingConfig(kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>?  kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget = { return null });
+    method @androidx.compose.Composable public static androidx.ui.foundation.animation.FlingConfig FlingConfig(kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>?  kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget = { return null });
     method public static void fling(androidx.animation.AnimatedFloat, androidx.ui.foundation.animation.FlingConfig config, float startVelocity);
   }
 
@@ -288,7 +288,7 @@
   }
 
   public final class ScrollableKt {
-    method public static androidx.ui.foundation.gestures.ScrollableState ScrollableState(kotlin.jvm.functions.Function1<? super java.lang.Float,java.lang.Float> onScrollDeltaConsumptionRequested);
+    method @androidx.compose.Composable public static androidx.ui.foundation.gestures.ScrollableState ScrollableState(kotlin.jvm.functions.Function1<? super java.lang.Float,java.lang.Float> onScrollDeltaConsumptionRequested);
     method public static androidx.ui.core.Modifier scrollable(androidx.ui.core.Modifier, androidx.ui.foundation.gestures.DragDirection dragDirection, androidx.ui.foundation.gestures.ScrollableState scrollableState, kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>  boolean enabled = true);
   }
 
@@ -307,13 +307,13 @@
 package androidx.ui.foundation.selection {
 
   public final class MutuallyExclusiveSetItemKt {
-    method public static void MutuallyExclusiveSetItem(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void MutuallyExclusiveSetItem(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class ToggleableKt {
-    method public static void Toggleable(boolean value, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onValueChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Toggleable(boolean value, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onValueChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
     method public static androidx.ui.foundation.selection.ToggleableState ToggleableState(boolean value);
-    method public static void TriStateToggleable(androidx.ui.foundation.selection.ToggleableState state = androidx.ui.foundation.selection.ToggleableState.On, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void TriStateToggleable(androidx.ui.foundation.selection.ToggleableState state = androidx.ui.foundation.selection.ToggleableState.On, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public enum ToggleableState {
@@ -379,14 +379,14 @@
     method public final androidx.ui.foundation.shape.corner.CornerSize getTopRight();
   }
 
-  public interface CornerSize {
+  @androidx.compose.Immutable public interface CornerSize {
     method public float toPx-SwJi8iY(long shapeSize, androidx.ui.unit.Density density);
   }
 
   public final class CornerSizeKt {
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(float size);
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(@IntRange(from=0, to=50) int percent);
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize-ipo6vVg(float size);
+    method @androidx.compose.Stable public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(float size);
+    method @androidx.compose.Stable public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(@IntRange(from=0, to=50) int percent);
+    method @androidx.compose.Stable public static androidx.ui.foundation.shape.corner.CornerSize CornerSize-ipo6vVg(float size);
     method public static androidx.ui.foundation.shape.corner.CornerSize getZeroCornerSize();
   }
 
diff --git a/ui/ui-foundation/api/current.txt b/ui/ui-foundation/api/current.txt
index f82bc51..b3a2498 100644
--- a/ui/ui-foundation/api/current.txt
+++ b/ui/ui-foundation/api/current.txt
@@ -2,58 +2,58 @@
 package androidx.ui.foundation {
 
   public final class AdapterListKt {
-    method public static <T> void AdapterList(java.util.List<? extends T> data, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> itemCallback);
+    method @androidx.compose.Composable public static <T> void AdapterList(java.util.List<? extends T> data, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> itemCallback);
   }
 
-  public final class Border {
+  @androidx.compose.Immutable public final class Border {
     method public float component1();
     method public androidx.ui.graphics.Brush component2();
-    method public androidx.ui.foundation.Border copy-HIF-_f0(float size, androidx.ui.graphics.Brush brush);
+    method @androidx.compose.Immutable public androidx.ui.foundation.Border copy-HIF-_f0(float size, androidx.ui.graphics.Brush brush);
     method public androidx.ui.graphics.Brush getBrush();
     method public float getSize();
   }
 
   public final class BorderKt {
-    method public static androidx.ui.foundation.Border Border-YSZAjy0(float size, long color);
+    method @androidx.compose.Stable public static androidx.ui.foundation.Border Border-YSZAjy0(float size, long color);
   }
 
   public final class BoxKt {
-    method public static void Box-TInkGdk(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, long backgroundColor = Color.Transparent, androidx.ui.foundation.Border? border = null, float padding = elvis {
+    method @androidx.compose.Composable public static void Box-TInkGdk(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, long backgroundColor = Color.Transparent, androidx.ui.foundation.Border? border = null, float padding = elvis {
     var var4119171b: androidx.ui.unit.Dp = border?.size
     if (var4119171b != null) var4119171b else 0.dp
 }, float paddingStart = Dp.Unspecified, float paddingTop = Dp.Unspecified, float paddingEnd = Dp.Unspecified, float paddingBottom = Dp.Unspecified, androidx.ui.core.Alignment gravity = ContentGravity.TopStart, kotlin.jvm.functions.Function0<kotlin.Unit> children = emptyContent());
   }
 
   public final class CanvasKt {
-    method public static void Canvas(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.drawscope.DrawScope,kotlin.Unit> onCanvas);
+    method @androidx.compose.Composable public static void Canvas(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.drawscope.DrawScope,kotlin.Unit> onCanvas);
   }
 
   public final class ClickableKt {
-    method @Deprecated public static void Clickable(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, String?  androidx.ui.foundation.InteractionState? interactionState = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static androidx.ui.core.Modifier clickable(androidx.ui.core.Modifier, boolean enabled = true, String?  androidx.ui.foundation.InteractionState interactionState = remember({ 
+    method @Deprecated @androidx.compose.Composable public static void Clickable(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, String?  androidx.ui.foundation.InteractionState? interactionState = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static androidx.ui.core.Modifier clickable(androidx.ui.core.Modifier, boolean enabled = true, String?  androidx.ui.foundation.InteractionState interactionState = remember({ 
     return <init>()
 }), androidx.ui.foundation.Indication? indication = IndicationAmbient.invoke(), kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> onClick);
   }
 
   public final class ClickableTextKt {
-    method public static void ClickableText(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle style = TextStyle.Default, boolean softWrap = true, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, int maxLines = 2147483647, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> onClick);
+    method @androidx.compose.Composable public static void ClickableText(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle style = TextStyle.Default, boolean softWrap = true, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, int maxLines = 2147483647, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> onClick);
   }
 
   public final class ContentColorKt {
-    method public static long contentColor();
+    method @androidx.compose.Composable public static long contentColor();
     method public static androidx.compose.ProvidableAmbient<androidx.ui.graphics.Color> getContentColorAmbient();
   }
 
   public final class DarkThemeKt {
-    method public static boolean isSystemInDarkTheme();
+    method @androidx.compose.Composable public static boolean isSystemInDarkTheme();
   }
 
   public final class DeterminateProgressIndicatorKt {
-    method public static void DeterminateProgressIndicator(@FloatRange(from=0.0, to=1.0) float progress, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void DeterminateProgressIndicator(@FloatRange(from=0.0, to=1.0) float progress, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class DialogKt {
-    method public static void Dialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Dialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class DrawBackgroundKt {
@@ -67,28 +67,28 @@
   }
 
   public final class DrawBorderKt {
-    method @Deprecated public static androidx.ui.core.Modifier DrawBorder(androidx.ui.foundation.Border border, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
-    method @Deprecated public static androidx.ui.foundation.DrawBorder DrawBorder-3vYgddY(float size, androidx.ui.graphics.Brush brush, androidx.ui.graphics.Shape shape);
-    method @Deprecated public static androidx.ui.core.Modifier DrawBorder-Wounw_8(float size, long color, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.core.Modifier DrawBorder(androidx.ui.foundation.Border border, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.foundation.DrawBorder DrawBorder-3vYgddY(float size, androidx.ui.graphics.Brush brush, androidx.ui.graphics.Shape shape);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.core.Modifier DrawBorder-Wounw_8(float size, long color, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
     method public static androidx.ui.core.Modifier drawBorder(androidx.ui.core.Modifier, androidx.ui.foundation.Border border, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
     method public static androidx.ui.core.Modifier drawBorder-ik3FbJE(androidx.ui.core.Modifier, float size, long color, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
     method public static androidx.ui.core.Modifier drawBorder-vGsXmEw(androidx.ui.core.Modifier, float size, androidx.ui.graphics.Brush brush, androidx.ui.graphics.Shape shape);
   }
 
   public final class IconKt {
-    method public static void Icon-A4lfJGc(androidx.ui.graphics.vector.VectorAsset asset, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
-    method public static void Icon-RCipKA8(androidx.ui.graphics.painter.Painter painter, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
-    method public static void Icon-smRaMnI(androidx.ui.graphics.ImageAsset asset, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
+    method @androidx.compose.Composable public static void Icon-A4lfJGc(androidx.ui.graphics.vector.VectorAsset asset, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
+    method @androidx.compose.Composable public static void Icon-RCipKA8(androidx.ui.graphics.painter.Painter painter, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
+    method @androidx.compose.Composable public static void Icon-smRaMnI(androidx.ui.graphics.ImageAsset asset, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
   }
 
   public final class ImageKt {
-    method public static inline void Image(androidx.ui.graphics.ImageAsset asset, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
-    method public static inline void Image(androidx.ui.graphics.vector.VectorAsset asset, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
-    method public static void Image(androidx.ui.graphics.painter.Painter painter, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
-    method @Deprecated public static void SimpleImage--SSR55g(androidx.ui.graphics.ImageAsset image, long tint = Color.Unset);
+    method @androidx.compose.Composable public static inline void Image(androidx.ui.graphics.ImageAsset asset, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
+    method @androidx.compose.Composable public static inline void Image(androidx.ui.graphics.vector.VectorAsset asset, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
+    method @androidx.compose.Composable public static void Image(androidx.ui.graphics.painter.Painter painter, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
+    method @Deprecated @androidx.compose.Composable public static void SimpleImage--SSR55g(androidx.ui.graphics.ImageAsset image, long tint = Color.Unset);
   }
 
-  public interface Indication {
+  @androidx.compose.Stable public interface Indication {
     method public androidx.ui.foundation.IndicationInstance createInstance();
   }
 
@@ -113,7 +113,7 @@
     field public static final androidx.ui.foundation.Interaction.Pressed! INSTANCE;
   }
 
-  public final class InteractionState implements androidx.compose.State<java.util.Set<? extends androidx.ui.foundation.Interaction>> {
+  @androidx.compose.Stable public final class InteractionState implements androidx.compose.State<java.util.Set<? extends androidx.ui.foundation.Interaction>> {
     ctor public InteractionState();
     method public void addInteraction(androidx.ui.foundation.Interaction interaction, androidx.ui.unit.PxPosition? position = null);
     method public operator boolean contains(androidx.ui.foundation.Interaction interaction);
@@ -124,12 +124,12 @@
   }
 
   public final class ScrollerKt {
-    method public static void HorizontalScroller(androidx.ui.foundation.ScrollerPosition scrollerPosition = ScrollerPosition(), androidx.ui.core.Modifier modifier = Modifier, boolean isScrollable = true, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> children);
-    method public static androidx.ui.foundation.ScrollerPosition ScrollerPosition(float initial = 0f, boolean isReversed = false);
-    method public static void VerticalScroller(androidx.ui.foundation.ScrollerPosition scrollerPosition = ScrollerPosition(), androidx.ui.core.Modifier modifier = Modifier, boolean isScrollable = true, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void HorizontalScroller(androidx.ui.foundation.ScrollerPosition scrollerPosition = ScrollerPosition(), androidx.ui.core.Modifier modifier = Modifier, boolean isScrollable = true, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static androidx.ui.foundation.ScrollerPosition ScrollerPosition(float initial = 0f, boolean isReversed = false);
+    method @androidx.compose.Composable public static void VerticalScroller(androidx.ui.foundation.ScrollerPosition scrollerPosition = ScrollerPosition(), androidx.ui.core.Modifier modifier = Modifier, boolean isScrollable = true, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> children);
   }
 
-  public final class ScrollerPosition {
+  @androidx.compose.Stable public final class ScrollerPosition {
     ctor public ScrollerPosition(androidx.ui.foundation.animation.FlingConfig flingConfig, float initial, internal boolean isReversed, androidx.animation.AnimationClockObservable animationClock);
     method public float getMaxPosition();
     method public float getValue();
@@ -145,7 +145,7 @@
   }
 
   public static final class ScrollerPosition.Companion {
-    method public androidx.ui.savedinstancestate.Saver<androidx.ui.foundation.ScrollerPosition,?> Saver(androidx.ui.foundation.animation.FlingConfig flingConfig, boolean isReversed, androidx.animation.AnimationClockObservable animationClock);
+    method @androidx.compose.Composable public androidx.ui.savedinstancestate.Saver<androidx.ui.foundation.ScrollerPosition,?> Saver(androidx.ui.foundation.animation.FlingConfig flingConfig, boolean isReversed, androidx.animation.AnimationClockObservable animationClock);
   }
 
   public final class Strings {
@@ -167,15 +167,15 @@
   }
 
   public final class TextFieldKt {
-    method public static void TextField-DBcCkQs(androidx.ui.foundation.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.ui.foundation.TextFieldValue,kotlin.Unit> onValueChange, androidx.ui.core.Modifier modifier = Modifier, long textColor = Color.Unset, androidx.ui.text.TextStyle textStyle = currentTextStyle(), androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit>  androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long cursorColor = contentColor());
+    method @androidx.compose.Composable public static void TextField-DBcCkQs(androidx.ui.foundation.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.ui.foundation.TextFieldValue,kotlin.Unit> onValueChange, androidx.ui.core.Modifier modifier = Modifier, long textColor = Color.Unset, androidx.ui.text.TextStyle textStyle = currentTextStyle(), androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit>  androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long cursorColor = contentColor());
   }
 
-  public final class TextFieldValue {
+  @androidx.compose.Immutable public final class TextFieldValue {
     ctor public TextFieldValue(String text, androidx.ui.text.TextRange selection);
     ctor public TextFieldValue();
     method public String component1();
     method public androidx.ui.text.TextRange component2();
-    method public androidx.ui.foundation.TextFieldValue copy(String text, androidx.ui.text.TextRange selection);
+    method @androidx.compose.Immutable public androidx.ui.foundation.TextFieldValue copy(String text, androidx.ui.text.TextRange selection);
     method public androidx.ui.text.TextRange getSelection();
     method public String getText();
     field public static final androidx.ui.foundation.TextFieldValue.Companion! Companion;
@@ -187,10 +187,10 @@
   }
 
   public final class TextKt {
-    method public static void ProvideTextStyle(androidx.ui.text.TextStyle value, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Text--mY4wAA(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, long color = Color.Unset, long fontSize = TextUnit.Inherit, androidx.ui.text.font.FontStyle? fontStyle = null, androidx.ui.text.font.FontFamily? fontFamily = null, long letterSpacing = TextUnit.Inherit, androidx.ui.text.style.TextDecoration? textDecoration = null, androidx.ui.text.style.TextAlign? textAlign = null, long lineHeight = TextUnit.Inherit, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, boolean softWrap = true, int maxLines = 2147483647, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent = mapOf(), kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  androidx.ui.text.TextStyle style = currentTextStyle());
-    method public static void Text-OII7cnY(String text, androidx.ui.core.Modifier modifier = Modifier, long color = Color.Unset, long fontSize = TextUnit.Inherit, androidx.ui.text.font.FontStyle? fontStyle = null, androidx.ui.text.font.FontFamily? fontFamily = null, long letterSpacing = TextUnit.Inherit, androidx.ui.text.style.TextDecoration? textDecoration = null, androidx.ui.text.style.TextAlign? textAlign = null, long lineHeight = TextUnit.Inherit, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, boolean softWrap = true, int maxLines = 2147483647, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent = mapOf(), kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  androidx.ui.text.TextStyle style = currentTextStyle());
-    method public static androidx.ui.text.TextStyle currentTextStyle();
+    method @androidx.compose.Composable public static void ProvideTextStyle(androidx.ui.text.TextStyle value, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Text--mY4wAA(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, long color = Color.Unset, long fontSize = TextUnit.Inherit, androidx.ui.text.font.FontStyle? fontStyle = null, androidx.ui.text.font.FontFamily? fontFamily = null, long letterSpacing = TextUnit.Inherit, androidx.ui.text.style.TextDecoration? textDecoration = null, androidx.ui.text.style.TextAlign? textAlign = null, long lineHeight = TextUnit.Inherit, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, boolean softWrap = true, int maxLines = 2147483647, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent = mapOf(), kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  androidx.ui.text.TextStyle style = currentTextStyle());
+    method @androidx.compose.Composable public static void Text-OII7cnY(String text, androidx.ui.core.Modifier modifier = Modifier, long color = Color.Unset, long fontSize = TextUnit.Inherit, androidx.ui.text.font.FontStyle? fontStyle = null, androidx.ui.text.font.FontFamily? fontFamily = null, long letterSpacing = TextUnit.Inherit, androidx.ui.text.style.TextDecoration? textDecoration = null, androidx.ui.text.style.TextAlign? textAlign = null, long lineHeight = TextUnit.Inherit, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, boolean softWrap = true, int maxLines = 2147483647, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent = mapOf(), kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  androidx.ui.text.TextStyle style = currentTextStyle());
+    method @androidx.compose.Composable public static androidx.ui.text.TextStyle currentTextStyle();
   }
 
 }
@@ -251,12 +251,12 @@
   public final class AndroidFlingSplineKt {
   }
 
-  public final class FlingConfig {
+  @androidx.compose.Immutable public final class FlingConfig {
     ctor public FlingConfig(androidx.animation.DecayAnimation decayAnimation, kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>? onAnimationEnd, kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget);
     method public androidx.animation.DecayAnimation component1();
     method public kotlin.jvm.functions.Function3<androidx.animation.AnimationEndReason,java.lang.Float,java.lang.Float,kotlin.Unit>? component2();
     method public kotlin.jvm.functions.Function1<java.lang.Float,androidx.animation.TargetAnimation> component3();
-    method public androidx.ui.foundation.animation.FlingConfig copy(androidx.animation.DecayAnimation decayAnimation, kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>? onAnimationEnd, kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget);
+    method @androidx.compose.Immutable public androidx.ui.foundation.animation.FlingConfig copy(androidx.animation.DecayAnimation decayAnimation, kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>? onAnimationEnd, kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget);
     method public kotlin.jvm.functions.Function1<java.lang.Float,androidx.animation.TargetAnimation> getAdjustTarget();
     method public androidx.animation.DecayAnimation getDecayAnimation();
     method public kotlin.jvm.functions.Function3<androidx.animation.AnimationEndReason,java.lang.Float,java.lang.Float,kotlin.Unit>? getOnAnimationEnd();
@@ -264,7 +264,7 @@
 
   public final class FlingConfigKt {
     method public static androidx.ui.foundation.animation.FlingConfig AnchorsFlingConfig(java.util.List<java.lang.Float> anchors, androidx.animation.AnimationBuilder<java.lang.Float> animationBuilder = androidx.animation.PhysicsBuilder(), kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>?  androidx.animation.DecayAnimation decayAnimation = androidx.animation.ExponentialDecay());
-    method public static androidx.ui.foundation.animation.FlingConfig FlingConfig(kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>?  kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget = { return null });
+    method @androidx.compose.Composable public static androidx.ui.foundation.animation.FlingConfig FlingConfig(kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>?  kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget = { return null });
     method public static void fling(androidx.animation.AnimatedFloat, androidx.ui.foundation.animation.FlingConfig config, float startVelocity);
   }
 
@@ -288,7 +288,7 @@
   }
 
   public final class ScrollableKt {
-    method public static androidx.ui.foundation.gestures.ScrollableState ScrollableState(kotlin.jvm.functions.Function1<? super java.lang.Float,java.lang.Float> onScrollDeltaConsumptionRequested);
+    method @androidx.compose.Composable public static androidx.ui.foundation.gestures.ScrollableState ScrollableState(kotlin.jvm.functions.Function1<? super java.lang.Float,java.lang.Float> onScrollDeltaConsumptionRequested);
     method public static androidx.ui.core.Modifier scrollable(androidx.ui.core.Modifier, androidx.ui.foundation.gestures.DragDirection dragDirection, androidx.ui.foundation.gestures.ScrollableState scrollableState, kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>  boolean enabled = true);
   }
 
@@ -307,13 +307,13 @@
 package androidx.ui.foundation.selection {
 
   public final class MutuallyExclusiveSetItemKt {
-    method public static void MutuallyExclusiveSetItem(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void MutuallyExclusiveSetItem(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class ToggleableKt {
-    method public static void Toggleable(boolean value, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onValueChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Toggleable(boolean value, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onValueChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
     method public static androidx.ui.foundation.selection.ToggleableState ToggleableState(boolean value);
-    method public static void TriStateToggleable(androidx.ui.foundation.selection.ToggleableState state = androidx.ui.foundation.selection.ToggleableState.On, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void TriStateToggleable(androidx.ui.foundation.selection.ToggleableState state = androidx.ui.foundation.selection.ToggleableState.On, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public enum ToggleableState {
@@ -379,14 +379,14 @@
     method public final androidx.ui.foundation.shape.corner.CornerSize getTopRight();
   }
 
-  public interface CornerSize {
+  @androidx.compose.Immutable public interface CornerSize {
     method public float toPx-SwJi8iY(long shapeSize, androidx.ui.unit.Density density);
   }
 
   public final class CornerSizeKt {
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(float size);
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(@IntRange(from=0, to=50) int percent);
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize-ipo6vVg(float size);
+    method @androidx.compose.Stable public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(float size);
+    method @androidx.compose.Stable public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(@IntRange(from=0, to=50) int percent);
+    method @androidx.compose.Stable public static androidx.ui.foundation.shape.corner.CornerSize CornerSize-ipo6vVg(float size);
     method public static androidx.ui.foundation.shape.corner.CornerSize getZeroCornerSize();
   }
 
diff --git a/ui/ui-foundation/api/public_plus_experimental_0.1.0-dev14.txt b/ui/ui-foundation/api/public_plus_experimental_0.1.0-dev14.txt
index f82bc51..b3a2498 100644
--- a/ui/ui-foundation/api/public_plus_experimental_0.1.0-dev14.txt
+++ b/ui/ui-foundation/api/public_plus_experimental_0.1.0-dev14.txt
@@ -2,58 +2,58 @@
 package androidx.ui.foundation {
 
   public final class AdapterListKt {
-    method public static <T> void AdapterList(java.util.List<? extends T> data, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> itemCallback);
+    method @androidx.compose.Composable public static <T> void AdapterList(java.util.List<? extends T> data, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> itemCallback);
   }
 
-  public final class Border {
+  @androidx.compose.Immutable public final class Border {
     method public float component1();
     method public androidx.ui.graphics.Brush component2();
-    method public androidx.ui.foundation.Border copy-HIF-_f0(float size, androidx.ui.graphics.Brush brush);
+    method @androidx.compose.Immutable public androidx.ui.foundation.Border copy-HIF-_f0(float size, androidx.ui.graphics.Brush brush);
     method public androidx.ui.graphics.Brush getBrush();
     method public float getSize();
   }
 
   public final class BorderKt {
-    method public static androidx.ui.foundation.Border Border-YSZAjy0(float size, long color);
+    method @androidx.compose.Stable public static androidx.ui.foundation.Border Border-YSZAjy0(float size, long color);
   }
 
   public final class BoxKt {
-    method public static void Box-TInkGdk(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, long backgroundColor = Color.Transparent, androidx.ui.foundation.Border? border = null, float padding = elvis {
+    method @androidx.compose.Composable public static void Box-TInkGdk(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, long backgroundColor = Color.Transparent, androidx.ui.foundation.Border? border = null, float padding = elvis {
     var var4119171b: androidx.ui.unit.Dp = border?.size
     if (var4119171b != null) var4119171b else 0.dp
 }, float paddingStart = Dp.Unspecified, float paddingTop = Dp.Unspecified, float paddingEnd = Dp.Unspecified, float paddingBottom = Dp.Unspecified, androidx.ui.core.Alignment gravity = ContentGravity.TopStart, kotlin.jvm.functions.Function0<kotlin.Unit> children = emptyContent());
   }
 
   public final class CanvasKt {
-    method public static void Canvas(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.drawscope.DrawScope,kotlin.Unit> onCanvas);
+    method @androidx.compose.Composable public static void Canvas(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.drawscope.DrawScope,kotlin.Unit> onCanvas);
   }
 
   public final class ClickableKt {
-    method @Deprecated public static void Clickable(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, String?  androidx.ui.foundation.InteractionState? interactionState = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static androidx.ui.core.Modifier clickable(androidx.ui.core.Modifier, boolean enabled = true, String?  androidx.ui.foundation.InteractionState interactionState = remember({ 
+    method @Deprecated @androidx.compose.Composable public static void Clickable(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, String?  androidx.ui.foundation.InteractionState? interactionState = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static androidx.ui.core.Modifier clickable(androidx.ui.core.Modifier, boolean enabled = true, String?  androidx.ui.foundation.InteractionState interactionState = remember({ 
     return <init>()
 }), androidx.ui.foundation.Indication? indication = IndicationAmbient.invoke(), kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> onClick);
   }
 
   public final class ClickableTextKt {
-    method public static void ClickableText(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle style = TextStyle.Default, boolean softWrap = true, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, int maxLines = 2147483647, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> onClick);
+    method @androidx.compose.Composable public static void ClickableText(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle style = TextStyle.Default, boolean softWrap = true, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, int maxLines = 2147483647, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> onClick);
   }
 
   public final class ContentColorKt {
-    method public static long contentColor();
+    method @androidx.compose.Composable public static long contentColor();
     method public static androidx.compose.ProvidableAmbient<androidx.ui.graphics.Color> getContentColorAmbient();
   }
 
   public final class DarkThemeKt {
-    method public static boolean isSystemInDarkTheme();
+    method @androidx.compose.Composable public static boolean isSystemInDarkTheme();
   }
 
   public final class DeterminateProgressIndicatorKt {
-    method public static void DeterminateProgressIndicator(@FloatRange(from=0.0, to=1.0) float progress, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void DeterminateProgressIndicator(@FloatRange(from=0.0, to=1.0) float progress, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class DialogKt {
-    method public static void Dialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Dialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class DrawBackgroundKt {
@@ -67,28 +67,28 @@
   }
 
   public final class DrawBorderKt {
-    method @Deprecated public static androidx.ui.core.Modifier DrawBorder(androidx.ui.foundation.Border border, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
-    method @Deprecated public static androidx.ui.foundation.DrawBorder DrawBorder-3vYgddY(float size, androidx.ui.graphics.Brush brush, androidx.ui.graphics.Shape shape);
-    method @Deprecated public static androidx.ui.core.Modifier DrawBorder-Wounw_8(float size, long color, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.core.Modifier DrawBorder(androidx.ui.foundation.Border border, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.foundation.DrawBorder DrawBorder-3vYgddY(float size, androidx.ui.graphics.Brush brush, androidx.ui.graphics.Shape shape);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.core.Modifier DrawBorder-Wounw_8(float size, long color, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
     method public static androidx.ui.core.Modifier drawBorder(androidx.ui.core.Modifier, androidx.ui.foundation.Border border, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
     method public static androidx.ui.core.Modifier drawBorder-ik3FbJE(androidx.ui.core.Modifier, float size, long color, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
     method public static androidx.ui.core.Modifier drawBorder-vGsXmEw(androidx.ui.core.Modifier, float size, androidx.ui.graphics.Brush brush, androidx.ui.graphics.Shape shape);
   }
 
   public final class IconKt {
-    method public static void Icon-A4lfJGc(androidx.ui.graphics.vector.VectorAsset asset, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
-    method public static void Icon-RCipKA8(androidx.ui.graphics.painter.Painter painter, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
-    method public static void Icon-smRaMnI(androidx.ui.graphics.ImageAsset asset, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
+    method @androidx.compose.Composable public static void Icon-A4lfJGc(androidx.ui.graphics.vector.VectorAsset asset, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
+    method @androidx.compose.Composable public static void Icon-RCipKA8(androidx.ui.graphics.painter.Painter painter, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
+    method @androidx.compose.Composable public static void Icon-smRaMnI(androidx.ui.graphics.ImageAsset asset, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
   }
 
   public final class ImageKt {
-    method public static inline void Image(androidx.ui.graphics.ImageAsset asset, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
-    method public static inline void Image(androidx.ui.graphics.vector.VectorAsset asset, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
-    method public static void Image(androidx.ui.graphics.painter.Painter painter, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
-    method @Deprecated public static void SimpleImage--SSR55g(androidx.ui.graphics.ImageAsset image, long tint = Color.Unset);
+    method @androidx.compose.Composable public static inline void Image(androidx.ui.graphics.ImageAsset asset, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
+    method @androidx.compose.Composable public static inline void Image(androidx.ui.graphics.vector.VectorAsset asset, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
+    method @androidx.compose.Composable public static void Image(androidx.ui.graphics.painter.Painter painter, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
+    method @Deprecated @androidx.compose.Composable public static void SimpleImage--SSR55g(androidx.ui.graphics.ImageAsset image, long tint = Color.Unset);
   }
 
-  public interface Indication {
+  @androidx.compose.Stable public interface Indication {
     method public androidx.ui.foundation.IndicationInstance createInstance();
   }
 
@@ -113,7 +113,7 @@
     field public static final androidx.ui.foundation.Interaction.Pressed! INSTANCE;
   }
 
-  public final class InteractionState implements androidx.compose.State<java.util.Set<? extends androidx.ui.foundation.Interaction>> {
+  @androidx.compose.Stable public final class InteractionState implements androidx.compose.State<java.util.Set<? extends androidx.ui.foundation.Interaction>> {
     ctor public InteractionState();
     method public void addInteraction(androidx.ui.foundation.Interaction interaction, androidx.ui.unit.PxPosition? position = null);
     method public operator boolean contains(androidx.ui.foundation.Interaction interaction);
@@ -124,12 +124,12 @@
   }
 
   public final class ScrollerKt {
-    method public static void HorizontalScroller(androidx.ui.foundation.ScrollerPosition scrollerPosition = ScrollerPosition(), androidx.ui.core.Modifier modifier = Modifier, boolean isScrollable = true, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> children);
-    method public static androidx.ui.foundation.ScrollerPosition ScrollerPosition(float initial = 0f, boolean isReversed = false);
-    method public static void VerticalScroller(androidx.ui.foundation.ScrollerPosition scrollerPosition = ScrollerPosition(), androidx.ui.core.Modifier modifier = Modifier, boolean isScrollable = true, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void HorizontalScroller(androidx.ui.foundation.ScrollerPosition scrollerPosition = ScrollerPosition(), androidx.ui.core.Modifier modifier = Modifier, boolean isScrollable = true, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static androidx.ui.foundation.ScrollerPosition ScrollerPosition(float initial = 0f, boolean isReversed = false);
+    method @androidx.compose.Composable public static void VerticalScroller(androidx.ui.foundation.ScrollerPosition scrollerPosition = ScrollerPosition(), androidx.ui.core.Modifier modifier = Modifier, boolean isScrollable = true, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> children);
   }
 
-  public final class ScrollerPosition {
+  @androidx.compose.Stable public final class ScrollerPosition {
     ctor public ScrollerPosition(androidx.ui.foundation.animation.FlingConfig flingConfig, float initial, internal boolean isReversed, androidx.animation.AnimationClockObservable animationClock);
     method public float getMaxPosition();
     method public float getValue();
@@ -145,7 +145,7 @@
   }
 
   public static final class ScrollerPosition.Companion {
-    method public androidx.ui.savedinstancestate.Saver<androidx.ui.foundation.ScrollerPosition,?> Saver(androidx.ui.foundation.animation.FlingConfig flingConfig, boolean isReversed, androidx.animation.AnimationClockObservable animationClock);
+    method @androidx.compose.Composable public androidx.ui.savedinstancestate.Saver<androidx.ui.foundation.ScrollerPosition,?> Saver(androidx.ui.foundation.animation.FlingConfig flingConfig, boolean isReversed, androidx.animation.AnimationClockObservable animationClock);
   }
 
   public final class Strings {
@@ -167,15 +167,15 @@
   }
 
   public final class TextFieldKt {
-    method public static void TextField-DBcCkQs(androidx.ui.foundation.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.ui.foundation.TextFieldValue,kotlin.Unit> onValueChange, androidx.ui.core.Modifier modifier = Modifier, long textColor = Color.Unset, androidx.ui.text.TextStyle textStyle = currentTextStyle(), androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit>  androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long cursorColor = contentColor());
+    method @androidx.compose.Composable public static void TextField-DBcCkQs(androidx.ui.foundation.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.ui.foundation.TextFieldValue,kotlin.Unit> onValueChange, androidx.ui.core.Modifier modifier = Modifier, long textColor = Color.Unset, androidx.ui.text.TextStyle textStyle = currentTextStyle(), androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit>  androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long cursorColor = contentColor());
   }
 
-  public final class TextFieldValue {
+  @androidx.compose.Immutable public final class TextFieldValue {
     ctor public TextFieldValue(String text, androidx.ui.text.TextRange selection);
     ctor public TextFieldValue();
     method public String component1();
     method public androidx.ui.text.TextRange component2();
-    method public androidx.ui.foundation.TextFieldValue copy(String text, androidx.ui.text.TextRange selection);
+    method @androidx.compose.Immutable public androidx.ui.foundation.TextFieldValue copy(String text, androidx.ui.text.TextRange selection);
     method public androidx.ui.text.TextRange getSelection();
     method public String getText();
     field public static final androidx.ui.foundation.TextFieldValue.Companion! Companion;
@@ -187,10 +187,10 @@
   }
 
   public final class TextKt {
-    method public static void ProvideTextStyle(androidx.ui.text.TextStyle value, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Text--mY4wAA(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, long color = Color.Unset, long fontSize = TextUnit.Inherit, androidx.ui.text.font.FontStyle? fontStyle = null, androidx.ui.text.font.FontFamily? fontFamily = null, long letterSpacing = TextUnit.Inherit, androidx.ui.text.style.TextDecoration? textDecoration = null, androidx.ui.text.style.TextAlign? textAlign = null, long lineHeight = TextUnit.Inherit, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, boolean softWrap = true, int maxLines = 2147483647, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent = mapOf(), kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  androidx.ui.text.TextStyle style = currentTextStyle());
-    method public static void Text-OII7cnY(String text, androidx.ui.core.Modifier modifier = Modifier, long color = Color.Unset, long fontSize = TextUnit.Inherit, androidx.ui.text.font.FontStyle? fontStyle = null, androidx.ui.text.font.FontFamily? fontFamily = null, long letterSpacing = TextUnit.Inherit, androidx.ui.text.style.TextDecoration? textDecoration = null, androidx.ui.text.style.TextAlign? textAlign = null, long lineHeight = TextUnit.Inherit, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, boolean softWrap = true, int maxLines = 2147483647, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent = mapOf(), kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  androidx.ui.text.TextStyle style = currentTextStyle());
-    method public static androidx.ui.text.TextStyle currentTextStyle();
+    method @androidx.compose.Composable public static void ProvideTextStyle(androidx.ui.text.TextStyle value, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Text--mY4wAA(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, long color = Color.Unset, long fontSize = TextUnit.Inherit, androidx.ui.text.font.FontStyle? fontStyle = null, androidx.ui.text.font.FontFamily? fontFamily = null, long letterSpacing = TextUnit.Inherit, androidx.ui.text.style.TextDecoration? textDecoration = null, androidx.ui.text.style.TextAlign? textAlign = null, long lineHeight = TextUnit.Inherit, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, boolean softWrap = true, int maxLines = 2147483647, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent = mapOf(), kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  androidx.ui.text.TextStyle style = currentTextStyle());
+    method @androidx.compose.Composable public static void Text-OII7cnY(String text, androidx.ui.core.Modifier modifier = Modifier, long color = Color.Unset, long fontSize = TextUnit.Inherit, androidx.ui.text.font.FontStyle? fontStyle = null, androidx.ui.text.font.FontFamily? fontFamily = null, long letterSpacing = TextUnit.Inherit, androidx.ui.text.style.TextDecoration? textDecoration = null, androidx.ui.text.style.TextAlign? textAlign = null, long lineHeight = TextUnit.Inherit, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, boolean softWrap = true, int maxLines = 2147483647, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent = mapOf(), kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  androidx.ui.text.TextStyle style = currentTextStyle());
+    method @androidx.compose.Composable public static androidx.ui.text.TextStyle currentTextStyle();
   }
 
 }
@@ -251,12 +251,12 @@
   public final class AndroidFlingSplineKt {
   }
 
-  public final class FlingConfig {
+  @androidx.compose.Immutable public final class FlingConfig {
     ctor public FlingConfig(androidx.animation.DecayAnimation decayAnimation, kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>? onAnimationEnd, kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget);
     method public androidx.animation.DecayAnimation component1();
     method public kotlin.jvm.functions.Function3<androidx.animation.AnimationEndReason,java.lang.Float,java.lang.Float,kotlin.Unit>? component2();
     method public kotlin.jvm.functions.Function1<java.lang.Float,androidx.animation.TargetAnimation> component3();
-    method public androidx.ui.foundation.animation.FlingConfig copy(androidx.animation.DecayAnimation decayAnimation, kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>? onAnimationEnd, kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget);
+    method @androidx.compose.Immutable public androidx.ui.foundation.animation.FlingConfig copy(androidx.animation.DecayAnimation decayAnimation, kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>? onAnimationEnd, kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget);
     method public kotlin.jvm.functions.Function1<java.lang.Float,androidx.animation.TargetAnimation> getAdjustTarget();
     method public androidx.animation.DecayAnimation getDecayAnimation();
     method public kotlin.jvm.functions.Function3<androidx.animation.AnimationEndReason,java.lang.Float,java.lang.Float,kotlin.Unit>? getOnAnimationEnd();
@@ -264,7 +264,7 @@
 
   public final class FlingConfigKt {
     method public static androidx.ui.foundation.animation.FlingConfig AnchorsFlingConfig(java.util.List<java.lang.Float> anchors, androidx.animation.AnimationBuilder<java.lang.Float> animationBuilder = androidx.animation.PhysicsBuilder(), kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>?  androidx.animation.DecayAnimation decayAnimation = androidx.animation.ExponentialDecay());
-    method public static androidx.ui.foundation.animation.FlingConfig FlingConfig(kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>?  kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget = { return null });
+    method @androidx.compose.Composable public static androidx.ui.foundation.animation.FlingConfig FlingConfig(kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>?  kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget = { return null });
     method public static void fling(androidx.animation.AnimatedFloat, androidx.ui.foundation.animation.FlingConfig config, float startVelocity);
   }
 
@@ -288,7 +288,7 @@
   }
 
   public final class ScrollableKt {
-    method public static androidx.ui.foundation.gestures.ScrollableState ScrollableState(kotlin.jvm.functions.Function1<? super java.lang.Float,java.lang.Float> onScrollDeltaConsumptionRequested);
+    method @androidx.compose.Composable public static androidx.ui.foundation.gestures.ScrollableState ScrollableState(kotlin.jvm.functions.Function1<? super java.lang.Float,java.lang.Float> onScrollDeltaConsumptionRequested);
     method public static androidx.ui.core.Modifier scrollable(androidx.ui.core.Modifier, androidx.ui.foundation.gestures.DragDirection dragDirection, androidx.ui.foundation.gestures.ScrollableState scrollableState, kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>  boolean enabled = true);
   }
 
@@ -307,13 +307,13 @@
 package androidx.ui.foundation.selection {
 
   public final class MutuallyExclusiveSetItemKt {
-    method public static void MutuallyExclusiveSetItem(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void MutuallyExclusiveSetItem(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class ToggleableKt {
-    method public static void Toggleable(boolean value, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onValueChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Toggleable(boolean value, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onValueChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
     method public static androidx.ui.foundation.selection.ToggleableState ToggleableState(boolean value);
-    method public static void TriStateToggleable(androidx.ui.foundation.selection.ToggleableState state = androidx.ui.foundation.selection.ToggleableState.On, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void TriStateToggleable(androidx.ui.foundation.selection.ToggleableState state = androidx.ui.foundation.selection.ToggleableState.On, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public enum ToggleableState {
@@ -379,14 +379,14 @@
     method public final androidx.ui.foundation.shape.corner.CornerSize getTopRight();
   }
 
-  public interface CornerSize {
+  @androidx.compose.Immutable public interface CornerSize {
     method public float toPx-SwJi8iY(long shapeSize, androidx.ui.unit.Density density);
   }
 
   public final class CornerSizeKt {
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(float size);
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(@IntRange(from=0, to=50) int percent);
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize-ipo6vVg(float size);
+    method @androidx.compose.Stable public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(float size);
+    method @androidx.compose.Stable public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(@IntRange(from=0, to=50) int percent);
+    method @androidx.compose.Stable public static androidx.ui.foundation.shape.corner.CornerSize CornerSize-ipo6vVg(float size);
     method public static androidx.ui.foundation.shape.corner.CornerSize getZeroCornerSize();
   }
 
diff --git a/ui/ui-foundation/api/public_plus_experimental_current.txt b/ui/ui-foundation/api/public_plus_experimental_current.txt
index f82bc51..b3a2498 100644
--- a/ui/ui-foundation/api/public_plus_experimental_current.txt
+++ b/ui/ui-foundation/api/public_plus_experimental_current.txt
@@ -2,58 +2,58 @@
 package androidx.ui.foundation {
 
   public final class AdapterListKt {
-    method public static <T> void AdapterList(java.util.List<? extends T> data, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> itemCallback);
+    method @androidx.compose.Composable public static <T> void AdapterList(java.util.List<? extends T> data, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> itemCallback);
   }
 
-  public final class Border {
+  @androidx.compose.Immutable public final class Border {
     method public float component1();
     method public androidx.ui.graphics.Brush component2();
-    method public androidx.ui.foundation.Border copy-HIF-_f0(float size, androidx.ui.graphics.Brush brush);
+    method @androidx.compose.Immutable public androidx.ui.foundation.Border copy-HIF-_f0(float size, androidx.ui.graphics.Brush brush);
     method public androidx.ui.graphics.Brush getBrush();
     method public float getSize();
   }
 
   public final class BorderKt {
-    method public static androidx.ui.foundation.Border Border-YSZAjy0(float size, long color);
+    method @androidx.compose.Stable public static androidx.ui.foundation.Border Border-YSZAjy0(float size, long color);
   }
 
   public final class BoxKt {
-    method public static void Box-TInkGdk(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, long backgroundColor = Color.Transparent, androidx.ui.foundation.Border? border = null, float padding = elvis {
+    method @androidx.compose.Composable public static void Box-TInkGdk(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, long backgroundColor = Color.Transparent, androidx.ui.foundation.Border? border = null, float padding = elvis {
     var var4119171b: androidx.ui.unit.Dp = border?.size
     if (var4119171b != null) var4119171b else 0.dp
 }, float paddingStart = Dp.Unspecified, float paddingTop = Dp.Unspecified, float paddingEnd = Dp.Unspecified, float paddingBottom = Dp.Unspecified, androidx.ui.core.Alignment gravity = ContentGravity.TopStart, kotlin.jvm.functions.Function0<kotlin.Unit> children = emptyContent());
   }
 
   public final class CanvasKt {
-    method public static void Canvas(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.drawscope.DrawScope,kotlin.Unit> onCanvas);
+    method @androidx.compose.Composable public static void Canvas(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.drawscope.DrawScope,kotlin.Unit> onCanvas);
   }
 
   public final class ClickableKt {
-    method @Deprecated public static void Clickable(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, String?  androidx.ui.foundation.InteractionState? interactionState = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static androidx.ui.core.Modifier clickable(androidx.ui.core.Modifier, boolean enabled = true, String?  androidx.ui.foundation.InteractionState interactionState = remember({ 
+    method @Deprecated @androidx.compose.Composable public static void Clickable(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, String?  androidx.ui.foundation.InteractionState? interactionState = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static androidx.ui.core.Modifier clickable(androidx.ui.core.Modifier, boolean enabled = true, String?  androidx.ui.foundation.InteractionState interactionState = remember({ 
     return <init>()
 }), androidx.ui.foundation.Indication? indication = IndicationAmbient.invoke(), kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> onClick);
   }
 
   public final class ClickableTextKt {
-    method public static void ClickableText(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle style = TextStyle.Default, boolean softWrap = true, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, int maxLines = 2147483647, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> onClick);
+    method @androidx.compose.Composable public static void ClickableText(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle style = TextStyle.Default, boolean softWrap = true, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, int maxLines = 2147483647, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> onClick);
   }
 
   public final class ContentColorKt {
-    method public static long contentColor();
+    method @androidx.compose.Composable public static long contentColor();
     method public static androidx.compose.ProvidableAmbient<androidx.ui.graphics.Color> getContentColorAmbient();
   }
 
   public final class DarkThemeKt {
-    method public static boolean isSystemInDarkTheme();
+    method @androidx.compose.Composable public static boolean isSystemInDarkTheme();
   }
 
   public final class DeterminateProgressIndicatorKt {
-    method public static void DeterminateProgressIndicator(@FloatRange(from=0.0, to=1.0) float progress, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void DeterminateProgressIndicator(@FloatRange(from=0.0, to=1.0) float progress, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class DialogKt {
-    method public static void Dialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Dialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class DrawBackgroundKt {
@@ -67,28 +67,28 @@
   }
 
   public final class DrawBorderKt {
-    method @Deprecated public static androidx.ui.core.Modifier DrawBorder(androidx.ui.foundation.Border border, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
-    method @Deprecated public static androidx.ui.foundation.DrawBorder DrawBorder-3vYgddY(float size, androidx.ui.graphics.Brush brush, androidx.ui.graphics.Shape shape);
-    method @Deprecated public static androidx.ui.core.Modifier DrawBorder-Wounw_8(float size, long color, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.core.Modifier DrawBorder(androidx.ui.foundation.Border border, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.foundation.DrawBorder DrawBorder-3vYgddY(float size, androidx.ui.graphics.Brush brush, androidx.ui.graphics.Shape shape);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.core.Modifier DrawBorder-Wounw_8(float size, long color, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
     method public static androidx.ui.core.Modifier drawBorder(androidx.ui.core.Modifier, androidx.ui.foundation.Border border, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
     method public static androidx.ui.core.Modifier drawBorder-ik3FbJE(androidx.ui.core.Modifier, float size, long color, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
     method public static androidx.ui.core.Modifier drawBorder-vGsXmEw(androidx.ui.core.Modifier, float size, androidx.ui.graphics.Brush brush, androidx.ui.graphics.Shape shape);
   }
 
   public final class IconKt {
-    method public static void Icon-A4lfJGc(androidx.ui.graphics.vector.VectorAsset asset, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
-    method public static void Icon-RCipKA8(androidx.ui.graphics.painter.Painter painter, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
-    method public static void Icon-smRaMnI(androidx.ui.graphics.ImageAsset asset, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
+    method @androidx.compose.Composable public static void Icon-A4lfJGc(androidx.ui.graphics.vector.VectorAsset asset, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
+    method @androidx.compose.Composable public static void Icon-RCipKA8(androidx.ui.graphics.painter.Painter painter, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
+    method @androidx.compose.Composable public static void Icon-smRaMnI(androidx.ui.graphics.ImageAsset asset, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
   }
 
   public final class ImageKt {
-    method public static inline void Image(androidx.ui.graphics.ImageAsset asset, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
-    method public static inline void Image(androidx.ui.graphics.vector.VectorAsset asset, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
-    method public static void Image(androidx.ui.graphics.painter.Painter painter, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
-    method @Deprecated public static void SimpleImage--SSR55g(androidx.ui.graphics.ImageAsset image, long tint = Color.Unset);
+    method @androidx.compose.Composable public static inline void Image(androidx.ui.graphics.ImageAsset asset, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
+    method @androidx.compose.Composable public static inline void Image(androidx.ui.graphics.vector.VectorAsset asset, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
+    method @androidx.compose.Composable public static void Image(androidx.ui.graphics.painter.Painter painter, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
+    method @Deprecated @androidx.compose.Composable public static void SimpleImage--SSR55g(androidx.ui.graphics.ImageAsset image, long tint = Color.Unset);
   }
 
-  public interface Indication {
+  @androidx.compose.Stable public interface Indication {
     method public androidx.ui.foundation.IndicationInstance createInstance();
   }
 
@@ -113,7 +113,7 @@
     field public static final androidx.ui.foundation.Interaction.Pressed! INSTANCE;
   }
 
-  public final class InteractionState implements androidx.compose.State<java.util.Set<? extends androidx.ui.foundation.Interaction>> {
+  @androidx.compose.Stable public final class InteractionState implements androidx.compose.State<java.util.Set<? extends androidx.ui.foundation.Interaction>> {
     ctor public InteractionState();
     method public void addInteraction(androidx.ui.foundation.Interaction interaction, androidx.ui.unit.PxPosition? position = null);
     method public operator boolean contains(androidx.ui.foundation.Interaction interaction);
@@ -124,12 +124,12 @@
   }
 
   public final class ScrollerKt {
-    method public static void HorizontalScroller(androidx.ui.foundation.ScrollerPosition scrollerPosition = ScrollerPosition(), androidx.ui.core.Modifier modifier = Modifier, boolean isScrollable = true, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> children);
-    method public static androidx.ui.foundation.ScrollerPosition ScrollerPosition(float initial = 0f, boolean isReversed = false);
-    method public static void VerticalScroller(androidx.ui.foundation.ScrollerPosition scrollerPosition = ScrollerPosition(), androidx.ui.core.Modifier modifier = Modifier, boolean isScrollable = true, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void HorizontalScroller(androidx.ui.foundation.ScrollerPosition scrollerPosition = ScrollerPosition(), androidx.ui.core.Modifier modifier = Modifier, boolean isScrollable = true, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static androidx.ui.foundation.ScrollerPosition ScrollerPosition(float initial = 0f, boolean isReversed = false);
+    method @androidx.compose.Composable public static void VerticalScroller(androidx.ui.foundation.ScrollerPosition scrollerPosition = ScrollerPosition(), androidx.ui.core.Modifier modifier = Modifier, boolean isScrollable = true, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> children);
   }
 
-  public final class ScrollerPosition {
+  @androidx.compose.Stable public final class ScrollerPosition {
     ctor public ScrollerPosition(androidx.ui.foundation.animation.FlingConfig flingConfig, float initial, internal boolean isReversed, androidx.animation.AnimationClockObservable animationClock);
     method public float getMaxPosition();
     method public float getValue();
@@ -145,7 +145,7 @@
   }
 
   public static final class ScrollerPosition.Companion {
-    method public androidx.ui.savedinstancestate.Saver<androidx.ui.foundation.ScrollerPosition,?> Saver(androidx.ui.foundation.animation.FlingConfig flingConfig, boolean isReversed, androidx.animation.AnimationClockObservable animationClock);
+    method @androidx.compose.Composable public androidx.ui.savedinstancestate.Saver<androidx.ui.foundation.ScrollerPosition,?> Saver(androidx.ui.foundation.animation.FlingConfig flingConfig, boolean isReversed, androidx.animation.AnimationClockObservable animationClock);
   }
 
   public final class Strings {
@@ -167,15 +167,15 @@
   }
 
   public final class TextFieldKt {
-    method public static void TextField-DBcCkQs(androidx.ui.foundation.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.ui.foundation.TextFieldValue,kotlin.Unit> onValueChange, androidx.ui.core.Modifier modifier = Modifier, long textColor = Color.Unset, androidx.ui.text.TextStyle textStyle = currentTextStyle(), androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit>  androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long cursorColor = contentColor());
+    method @androidx.compose.Composable public static void TextField-DBcCkQs(androidx.ui.foundation.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.ui.foundation.TextFieldValue,kotlin.Unit> onValueChange, androidx.ui.core.Modifier modifier = Modifier, long textColor = Color.Unset, androidx.ui.text.TextStyle textStyle = currentTextStyle(), androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit>  androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long cursorColor = contentColor());
   }
 
-  public final class TextFieldValue {
+  @androidx.compose.Immutable public final class TextFieldValue {
     ctor public TextFieldValue(String text, androidx.ui.text.TextRange selection);
     ctor public TextFieldValue();
     method public String component1();
     method public androidx.ui.text.TextRange component2();
-    method public androidx.ui.foundation.TextFieldValue copy(String text, androidx.ui.text.TextRange selection);
+    method @androidx.compose.Immutable public androidx.ui.foundation.TextFieldValue copy(String text, androidx.ui.text.TextRange selection);
     method public androidx.ui.text.TextRange getSelection();
     method public String getText();
     field public static final androidx.ui.foundation.TextFieldValue.Companion! Companion;
@@ -187,10 +187,10 @@
   }
 
   public final class TextKt {
-    method public static void ProvideTextStyle(androidx.ui.text.TextStyle value, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Text--mY4wAA(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, long color = Color.Unset, long fontSize = TextUnit.Inherit, androidx.ui.text.font.FontStyle? fontStyle = null, androidx.ui.text.font.FontFamily? fontFamily = null, long letterSpacing = TextUnit.Inherit, androidx.ui.text.style.TextDecoration? textDecoration = null, androidx.ui.text.style.TextAlign? textAlign = null, long lineHeight = TextUnit.Inherit, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, boolean softWrap = true, int maxLines = 2147483647, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent = mapOf(), kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  androidx.ui.text.TextStyle style = currentTextStyle());
-    method public static void Text-OII7cnY(String text, androidx.ui.core.Modifier modifier = Modifier, long color = Color.Unset, long fontSize = TextUnit.Inherit, androidx.ui.text.font.FontStyle? fontStyle = null, androidx.ui.text.font.FontFamily? fontFamily = null, long letterSpacing = TextUnit.Inherit, androidx.ui.text.style.TextDecoration? textDecoration = null, androidx.ui.text.style.TextAlign? textAlign = null, long lineHeight = TextUnit.Inherit, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, boolean softWrap = true, int maxLines = 2147483647, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent = mapOf(), kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  androidx.ui.text.TextStyle style = currentTextStyle());
-    method public static androidx.ui.text.TextStyle currentTextStyle();
+    method @androidx.compose.Composable public static void ProvideTextStyle(androidx.ui.text.TextStyle value, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Text--mY4wAA(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, long color = Color.Unset, long fontSize = TextUnit.Inherit, androidx.ui.text.font.FontStyle? fontStyle = null, androidx.ui.text.font.FontFamily? fontFamily = null, long letterSpacing = TextUnit.Inherit, androidx.ui.text.style.TextDecoration? textDecoration = null, androidx.ui.text.style.TextAlign? textAlign = null, long lineHeight = TextUnit.Inherit, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, boolean softWrap = true, int maxLines = 2147483647, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent = mapOf(), kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  androidx.ui.text.TextStyle style = currentTextStyle());
+    method @androidx.compose.Composable public static void Text-OII7cnY(String text, androidx.ui.core.Modifier modifier = Modifier, long color = Color.Unset, long fontSize = TextUnit.Inherit, androidx.ui.text.font.FontStyle? fontStyle = null, androidx.ui.text.font.FontFamily? fontFamily = null, long letterSpacing = TextUnit.Inherit, androidx.ui.text.style.TextDecoration? textDecoration = null, androidx.ui.text.style.TextAlign? textAlign = null, long lineHeight = TextUnit.Inherit, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, boolean softWrap = true, int maxLines = 2147483647, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent = mapOf(), kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  androidx.ui.text.TextStyle style = currentTextStyle());
+    method @androidx.compose.Composable public static androidx.ui.text.TextStyle currentTextStyle();
   }
 
 }
@@ -251,12 +251,12 @@
   public final class AndroidFlingSplineKt {
   }
 
-  public final class FlingConfig {
+  @androidx.compose.Immutable public final class FlingConfig {
     ctor public FlingConfig(androidx.animation.DecayAnimation decayAnimation, kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>? onAnimationEnd, kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget);
     method public androidx.animation.DecayAnimation component1();
     method public kotlin.jvm.functions.Function3<androidx.animation.AnimationEndReason,java.lang.Float,java.lang.Float,kotlin.Unit>? component2();
     method public kotlin.jvm.functions.Function1<java.lang.Float,androidx.animation.TargetAnimation> component3();
-    method public androidx.ui.foundation.animation.FlingConfig copy(androidx.animation.DecayAnimation decayAnimation, kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>? onAnimationEnd, kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget);
+    method @androidx.compose.Immutable public androidx.ui.foundation.animation.FlingConfig copy(androidx.animation.DecayAnimation decayAnimation, kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>? onAnimationEnd, kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget);
     method public kotlin.jvm.functions.Function1<java.lang.Float,androidx.animation.TargetAnimation> getAdjustTarget();
     method public androidx.animation.DecayAnimation getDecayAnimation();
     method public kotlin.jvm.functions.Function3<androidx.animation.AnimationEndReason,java.lang.Float,java.lang.Float,kotlin.Unit>? getOnAnimationEnd();
@@ -264,7 +264,7 @@
 
   public final class FlingConfigKt {
     method public static androidx.ui.foundation.animation.FlingConfig AnchorsFlingConfig(java.util.List<java.lang.Float> anchors, androidx.animation.AnimationBuilder<java.lang.Float> animationBuilder = androidx.animation.PhysicsBuilder(), kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>?  androidx.animation.DecayAnimation decayAnimation = androidx.animation.ExponentialDecay());
-    method public static androidx.ui.foundation.animation.FlingConfig FlingConfig(kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>?  kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget = { return null });
+    method @androidx.compose.Composable public static androidx.ui.foundation.animation.FlingConfig FlingConfig(kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>?  kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget = { return null });
     method public static void fling(androidx.animation.AnimatedFloat, androidx.ui.foundation.animation.FlingConfig config, float startVelocity);
   }
 
@@ -288,7 +288,7 @@
   }
 
   public final class ScrollableKt {
-    method public static androidx.ui.foundation.gestures.ScrollableState ScrollableState(kotlin.jvm.functions.Function1<? super java.lang.Float,java.lang.Float> onScrollDeltaConsumptionRequested);
+    method @androidx.compose.Composable public static androidx.ui.foundation.gestures.ScrollableState ScrollableState(kotlin.jvm.functions.Function1<? super java.lang.Float,java.lang.Float> onScrollDeltaConsumptionRequested);
     method public static androidx.ui.core.Modifier scrollable(androidx.ui.core.Modifier, androidx.ui.foundation.gestures.DragDirection dragDirection, androidx.ui.foundation.gestures.ScrollableState scrollableState, kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>  boolean enabled = true);
   }
 
@@ -307,13 +307,13 @@
 package androidx.ui.foundation.selection {
 
   public final class MutuallyExclusiveSetItemKt {
-    method public static void MutuallyExclusiveSetItem(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void MutuallyExclusiveSetItem(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class ToggleableKt {
-    method public static void Toggleable(boolean value, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onValueChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Toggleable(boolean value, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onValueChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
     method public static androidx.ui.foundation.selection.ToggleableState ToggleableState(boolean value);
-    method public static void TriStateToggleable(androidx.ui.foundation.selection.ToggleableState state = androidx.ui.foundation.selection.ToggleableState.On, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void TriStateToggleable(androidx.ui.foundation.selection.ToggleableState state = androidx.ui.foundation.selection.ToggleableState.On, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public enum ToggleableState {
@@ -379,14 +379,14 @@
     method public final androidx.ui.foundation.shape.corner.CornerSize getTopRight();
   }
 
-  public interface CornerSize {
+  @androidx.compose.Immutable public interface CornerSize {
     method public float toPx-SwJi8iY(long shapeSize, androidx.ui.unit.Density density);
   }
 
   public final class CornerSizeKt {
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(float size);
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(@IntRange(from=0, to=50) int percent);
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize-ipo6vVg(float size);
+    method @androidx.compose.Stable public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(float size);
+    method @androidx.compose.Stable public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(@IntRange(from=0, to=50) int percent);
+    method @androidx.compose.Stable public static androidx.ui.foundation.shape.corner.CornerSize CornerSize-ipo6vVg(float size);
     method public static androidx.ui.foundation.shape.corner.CornerSize getZeroCornerSize();
   }
 
diff --git a/ui/ui-foundation/api/restricted_0.1.0-dev14.txt b/ui/ui-foundation/api/restricted_0.1.0-dev14.txt
index f82bc51..b3a2498 100644
--- a/ui/ui-foundation/api/restricted_0.1.0-dev14.txt
+++ b/ui/ui-foundation/api/restricted_0.1.0-dev14.txt
@@ -2,58 +2,58 @@
 package androidx.ui.foundation {
 
   public final class AdapterListKt {
-    method public static <T> void AdapterList(java.util.List<? extends T> data, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> itemCallback);
+    method @androidx.compose.Composable public static <T> void AdapterList(java.util.List<? extends T> data, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> itemCallback);
   }
 
-  public final class Border {
+  @androidx.compose.Immutable public final class Border {
     method public float component1();
     method public androidx.ui.graphics.Brush component2();
-    method public androidx.ui.foundation.Border copy-HIF-_f0(float size, androidx.ui.graphics.Brush brush);
+    method @androidx.compose.Immutable public androidx.ui.foundation.Border copy-HIF-_f0(float size, androidx.ui.graphics.Brush brush);
     method public androidx.ui.graphics.Brush getBrush();
     method public float getSize();
   }
 
   public final class BorderKt {
-    method public static androidx.ui.foundation.Border Border-YSZAjy0(float size, long color);
+    method @androidx.compose.Stable public static androidx.ui.foundation.Border Border-YSZAjy0(float size, long color);
   }
 
   public final class BoxKt {
-    method public static void Box-TInkGdk(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, long backgroundColor = Color.Transparent, androidx.ui.foundation.Border? border = null, float padding = elvis {
+    method @androidx.compose.Composable public static void Box-TInkGdk(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, long backgroundColor = Color.Transparent, androidx.ui.foundation.Border? border = null, float padding = elvis {
     var var4119171b: androidx.ui.unit.Dp = border?.size
     if (var4119171b != null) var4119171b else 0.dp
 }, float paddingStart = Dp.Unspecified, float paddingTop = Dp.Unspecified, float paddingEnd = Dp.Unspecified, float paddingBottom = Dp.Unspecified, androidx.ui.core.Alignment gravity = ContentGravity.TopStart, kotlin.jvm.functions.Function0<kotlin.Unit> children = emptyContent());
   }
 
   public final class CanvasKt {
-    method public static void Canvas(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.drawscope.DrawScope,kotlin.Unit> onCanvas);
+    method @androidx.compose.Composable public static void Canvas(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.drawscope.DrawScope,kotlin.Unit> onCanvas);
   }
 
   public final class ClickableKt {
-    method @Deprecated public static void Clickable(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, String?  androidx.ui.foundation.InteractionState? interactionState = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static androidx.ui.core.Modifier clickable(androidx.ui.core.Modifier, boolean enabled = true, String?  androidx.ui.foundation.InteractionState interactionState = remember({ 
+    method @Deprecated @androidx.compose.Composable public static void Clickable(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, String?  androidx.ui.foundation.InteractionState? interactionState = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static androidx.ui.core.Modifier clickable(androidx.ui.core.Modifier, boolean enabled = true, String?  androidx.ui.foundation.InteractionState interactionState = remember({ 
     return <init>()
 }), androidx.ui.foundation.Indication? indication = IndicationAmbient.invoke(), kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> onClick);
   }
 
   public final class ClickableTextKt {
-    method public static void ClickableText(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle style = TextStyle.Default, boolean softWrap = true, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, int maxLines = 2147483647, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> onClick);
+    method @androidx.compose.Composable public static void ClickableText(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle style = TextStyle.Default, boolean softWrap = true, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, int maxLines = 2147483647, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> onClick);
   }
 
   public final class ContentColorKt {
-    method public static long contentColor();
+    method @androidx.compose.Composable public static long contentColor();
     method public static androidx.compose.ProvidableAmbient<androidx.ui.graphics.Color> getContentColorAmbient();
   }
 
   public final class DarkThemeKt {
-    method public static boolean isSystemInDarkTheme();
+    method @androidx.compose.Composable public static boolean isSystemInDarkTheme();
   }
 
   public final class DeterminateProgressIndicatorKt {
-    method public static void DeterminateProgressIndicator(@FloatRange(from=0.0, to=1.0) float progress, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void DeterminateProgressIndicator(@FloatRange(from=0.0, to=1.0) float progress, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class DialogKt {
-    method public static void Dialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Dialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class DrawBackgroundKt {
@@ -67,28 +67,28 @@
   }
 
   public final class DrawBorderKt {
-    method @Deprecated public static androidx.ui.core.Modifier DrawBorder(androidx.ui.foundation.Border border, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
-    method @Deprecated public static androidx.ui.foundation.DrawBorder DrawBorder-3vYgddY(float size, androidx.ui.graphics.Brush brush, androidx.ui.graphics.Shape shape);
-    method @Deprecated public static androidx.ui.core.Modifier DrawBorder-Wounw_8(float size, long color, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.core.Modifier DrawBorder(androidx.ui.foundation.Border border, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.foundation.DrawBorder DrawBorder-3vYgddY(float size, androidx.ui.graphics.Brush brush, androidx.ui.graphics.Shape shape);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.core.Modifier DrawBorder-Wounw_8(float size, long color, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
     method public static androidx.ui.core.Modifier drawBorder(androidx.ui.core.Modifier, androidx.ui.foundation.Border border, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
     method public static androidx.ui.core.Modifier drawBorder-ik3FbJE(androidx.ui.core.Modifier, float size, long color, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
     method public static androidx.ui.core.Modifier drawBorder-vGsXmEw(androidx.ui.core.Modifier, float size, androidx.ui.graphics.Brush brush, androidx.ui.graphics.Shape shape);
   }
 
   public final class IconKt {
-    method public static void Icon-A4lfJGc(androidx.ui.graphics.vector.VectorAsset asset, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
-    method public static void Icon-RCipKA8(androidx.ui.graphics.painter.Painter painter, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
-    method public static void Icon-smRaMnI(androidx.ui.graphics.ImageAsset asset, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
+    method @androidx.compose.Composable public static void Icon-A4lfJGc(androidx.ui.graphics.vector.VectorAsset asset, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
+    method @androidx.compose.Composable public static void Icon-RCipKA8(androidx.ui.graphics.painter.Painter painter, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
+    method @androidx.compose.Composable public static void Icon-smRaMnI(androidx.ui.graphics.ImageAsset asset, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
   }
 
   public final class ImageKt {
-    method public static inline void Image(androidx.ui.graphics.ImageAsset asset, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
-    method public static inline void Image(androidx.ui.graphics.vector.VectorAsset asset, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
-    method public static void Image(androidx.ui.graphics.painter.Painter painter, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
-    method @Deprecated public static void SimpleImage--SSR55g(androidx.ui.graphics.ImageAsset image, long tint = Color.Unset);
+    method @androidx.compose.Composable public static inline void Image(androidx.ui.graphics.ImageAsset asset, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
+    method @androidx.compose.Composable public static inline void Image(androidx.ui.graphics.vector.VectorAsset asset, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
+    method @androidx.compose.Composable public static void Image(androidx.ui.graphics.painter.Painter painter, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
+    method @Deprecated @androidx.compose.Composable public static void SimpleImage--SSR55g(androidx.ui.graphics.ImageAsset image, long tint = Color.Unset);
   }
 
-  public interface Indication {
+  @androidx.compose.Stable public interface Indication {
     method public androidx.ui.foundation.IndicationInstance createInstance();
   }
 
@@ -113,7 +113,7 @@
     field public static final androidx.ui.foundation.Interaction.Pressed! INSTANCE;
   }
 
-  public final class InteractionState implements androidx.compose.State<java.util.Set<? extends androidx.ui.foundation.Interaction>> {
+  @androidx.compose.Stable public final class InteractionState implements androidx.compose.State<java.util.Set<? extends androidx.ui.foundation.Interaction>> {
     ctor public InteractionState();
     method public void addInteraction(androidx.ui.foundation.Interaction interaction, androidx.ui.unit.PxPosition? position = null);
     method public operator boolean contains(androidx.ui.foundation.Interaction interaction);
@@ -124,12 +124,12 @@
   }
 
   public final class ScrollerKt {
-    method public static void HorizontalScroller(androidx.ui.foundation.ScrollerPosition scrollerPosition = ScrollerPosition(), androidx.ui.core.Modifier modifier = Modifier, boolean isScrollable = true, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> children);
-    method public static androidx.ui.foundation.ScrollerPosition ScrollerPosition(float initial = 0f, boolean isReversed = false);
-    method public static void VerticalScroller(androidx.ui.foundation.ScrollerPosition scrollerPosition = ScrollerPosition(), androidx.ui.core.Modifier modifier = Modifier, boolean isScrollable = true, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void HorizontalScroller(androidx.ui.foundation.ScrollerPosition scrollerPosition = ScrollerPosition(), androidx.ui.core.Modifier modifier = Modifier, boolean isScrollable = true, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static androidx.ui.foundation.ScrollerPosition ScrollerPosition(float initial = 0f, boolean isReversed = false);
+    method @androidx.compose.Composable public static void VerticalScroller(androidx.ui.foundation.ScrollerPosition scrollerPosition = ScrollerPosition(), androidx.ui.core.Modifier modifier = Modifier, boolean isScrollable = true, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> children);
   }
 
-  public final class ScrollerPosition {
+  @androidx.compose.Stable public final class ScrollerPosition {
     ctor public ScrollerPosition(androidx.ui.foundation.animation.FlingConfig flingConfig, float initial, internal boolean isReversed, androidx.animation.AnimationClockObservable animationClock);
     method public float getMaxPosition();
     method public float getValue();
@@ -145,7 +145,7 @@
   }
 
   public static final class ScrollerPosition.Companion {
-    method public androidx.ui.savedinstancestate.Saver<androidx.ui.foundation.ScrollerPosition,?> Saver(androidx.ui.foundation.animation.FlingConfig flingConfig, boolean isReversed, androidx.animation.AnimationClockObservable animationClock);
+    method @androidx.compose.Composable public androidx.ui.savedinstancestate.Saver<androidx.ui.foundation.ScrollerPosition,?> Saver(androidx.ui.foundation.animation.FlingConfig flingConfig, boolean isReversed, androidx.animation.AnimationClockObservable animationClock);
   }
 
   public final class Strings {
@@ -167,15 +167,15 @@
   }
 
   public final class TextFieldKt {
-    method public static void TextField-DBcCkQs(androidx.ui.foundation.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.ui.foundation.TextFieldValue,kotlin.Unit> onValueChange, androidx.ui.core.Modifier modifier = Modifier, long textColor = Color.Unset, androidx.ui.text.TextStyle textStyle = currentTextStyle(), androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit>  androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long cursorColor = contentColor());
+    method @androidx.compose.Composable public static void TextField-DBcCkQs(androidx.ui.foundation.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.ui.foundation.TextFieldValue,kotlin.Unit> onValueChange, androidx.ui.core.Modifier modifier = Modifier, long textColor = Color.Unset, androidx.ui.text.TextStyle textStyle = currentTextStyle(), androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit>  androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long cursorColor = contentColor());
   }
 
-  public final class TextFieldValue {
+  @androidx.compose.Immutable public final class TextFieldValue {
     ctor public TextFieldValue(String text, androidx.ui.text.TextRange selection);
     ctor public TextFieldValue();
     method public String component1();
     method public androidx.ui.text.TextRange component2();
-    method public androidx.ui.foundation.TextFieldValue copy(String text, androidx.ui.text.TextRange selection);
+    method @androidx.compose.Immutable public androidx.ui.foundation.TextFieldValue copy(String text, androidx.ui.text.TextRange selection);
     method public androidx.ui.text.TextRange getSelection();
     method public String getText();
     field public static final androidx.ui.foundation.TextFieldValue.Companion! Companion;
@@ -187,10 +187,10 @@
   }
 
   public final class TextKt {
-    method public static void ProvideTextStyle(androidx.ui.text.TextStyle value, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Text--mY4wAA(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, long color = Color.Unset, long fontSize = TextUnit.Inherit, androidx.ui.text.font.FontStyle? fontStyle = null, androidx.ui.text.font.FontFamily? fontFamily = null, long letterSpacing = TextUnit.Inherit, androidx.ui.text.style.TextDecoration? textDecoration = null, androidx.ui.text.style.TextAlign? textAlign = null, long lineHeight = TextUnit.Inherit, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, boolean softWrap = true, int maxLines = 2147483647, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent = mapOf(), kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  androidx.ui.text.TextStyle style = currentTextStyle());
-    method public static void Text-OII7cnY(String text, androidx.ui.core.Modifier modifier = Modifier, long color = Color.Unset, long fontSize = TextUnit.Inherit, androidx.ui.text.font.FontStyle? fontStyle = null, androidx.ui.text.font.FontFamily? fontFamily = null, long letterSpacing = TextUnit.Inherit, androidx.ui.text.style.TextDecoration? textDecoration = null, androidx.ui.text.style.TextAlign? textAlign = null, long lineHeight = TextUnit.Inherit, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, boolean softWrap = true, int maxLines = 2147483647, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent = mapOf(), kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  androidx.ui.text.TextStyle style = currentTextStyle());
-    method public static androidx.ui.text.TextStyle currentTextStyle();
+    method @androidx.compose.Composable public static void ProvideTextStyle(androidx.ui.text.TextStyle value, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Text--mY4wAA(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, long color = Color.Unset, long fontSize = TextUnit.Inherit, androidx.ui.text.font.FontStyle? fontStyle = null, androidx.ui.text.font.FontFamily? fontFamily = null, long letterSpacing = TextUnit.Inherit, androidx.ui.text.style.TextDecoration? textDecoration = null, androidx.ui.text.style.TextAlign? textAlign = null, long lineHeight = TextUnit.Inherit, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, boolean softWrap = true, int maxLines = 2147483647, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent = mapOf(), kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  androidx.ui.text.TextStyle style = currentTextStyle());
+    method @androidx.compose.Composable public static void Text-OII7cnY(String text, androidx.ui.core.Modifier modifier = Modifier, long color = Color.Unset, long fontSize = TextUnit.Inherit, androidx.ui.text.font.FontStyle? fontStyle = null, androidx.ui.text.font.FontFamily? fontFamily = null, long letterSpacing = TextUnit.Inherit, androidx.ui.text.style.TextDecoration? textDecoration = null, androidx.ui.text.style.TextAlign? textAlign = null, long lineHeight = TextUnit.Inherit, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, boolean softWrap = true, int maxLines = 2147483647, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent = mapOf(), kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  androidx.ui.text.TextStyle style = currentTextStyle());
+    method @androidx.compose.Composable public static androidx.ui.text.TextStyle currentTextStyle();
   }
 
 }
@@ -251,12 +251,12 @@
   public final class AndroidFlingSplineKt {
   }
 
-  public final class FlingConfig {
+  @androidx.compose.Immutable public final class FlingConfig {
     ctor public FlingConfig(androidx.animation.DecayAnimation decayAnimation, kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>? onAnimationEnd, kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget);
     method public androidx.animation.DecayAnimation component1();
     method public kotlin.jvm.functions.Function3<androidx.animation.AnimationEndReason,java.lang.Float,java.lang.Float,kotlin.Unit>? component2();
     method public kotlin.jvm.functions.Function1<java.lang.Float,androidx.animation.TargetAnimation> component3();
-    method public androidx.ui.foundation.animation.FlingConfig copy(androidx.animation.DecayAnimation decayAnimation, kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>? onAnimationEnd, kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget);
+    method @androidx.compose.Immutable public androidx.ui.foundation.animation.FlingConfig copy(androidx.animation.DecayAnimation decayAnimation, kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>? onAnimationEnd, kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget);
     method public kotlin.jvm.functions.Function1<java.lang.Float,androidx.animation.TargetAnimation> getAdjustTarget();
     method public androidx.animation.DecayAnimation getDecayAnimation();
     method public kotlin.jvm.functions.Function3<androidx.animation.AnimationEndReason,java.lang.Float,java.lang.Float,kotlin.Unit>? getOnAnimationEnd();
@@ -264,7 +264,7 @@
 
   public final class FlingConfigKt {
     method public static androidx.ui.foundation.animation.FlingConfig AnchorsFlingConfig(java.util.List<java.lang.Float> anchors, androidx.animation.AnimationBuilder<java.lang.Float> animationBuilder = androidx.animation.PhysicsBuilder(), kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>?  androidx.animation.DecayAnimation decayAnimation = androidx.animation.ExponentialDecay());
-    method public static androidx.ui.foundation.animation.FlingConfig FlingConfig(kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>?  kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget = { return null });
+    method @androidx.compose.Composable public static androidx.ui.foundation.animation.FlingConfig FlingConfig(kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>?  kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget = { return null });
     method public static void fling(androidx.animation.AnimatedFloat, androidx.ui.foundation.animation.FlingConfig config, float startVelocity);
   }
 
@@ -288,7 +288,7 @@
   }
 
   public final class ScrollableKt {
-    method public static androidx.ui.foundation.gestures.ScrollableState ScrollableState(kotlin.jvm.functions.Function1<? super java.lang.Float,java.lang.Float> onScrollDeltaConsumptionRequested);
+    method @androidx.compose.Composable public static androidx.ui.foundation.gestures.ScrollableState ScrollableState(kotlin.jvm.functions.Function1<? super java.lang.Float,java.lang.Float> onScrollDeltaConsumptionRequested);
     method public static androidx.ui.core.Modifier scrollable(androidx.ui.core.Modifier, androidx.ui.foundation.gestures.DragDirection dragDirection, androidx.ui.foundation.gestures.ScrollableState scrollableState, kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>  boolean enabled = true);
   }
 
@@ -307,13 +307,13 @@
 package androidx.ui.foundation.selection {
 
   public final class MutuallyExclusiveSetItemKt {
-    method public static void MutuallyExclusiveSetItem(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void MutuallyExclusiveSetItem(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class ToggleableKt {
-    method public static void Toggleable(boolean value, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onValueChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Toggleable(boolean value, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onValueChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
     method public static androidx.ui.foundation.selection.ToggleableState ToggleableState(boolean value);
-    method public static void TriStateToggleable(androidx.ui.foundation.selection.ToggleableState state = androidx.ui.foundation.selection.ToggleableState.On, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void TriStateToggleable(androidx.ui.foundation.selection.ToggleableState state = androidx.ui.foundation.selection.ToggleableState.On, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public enum ToggleableState {
@@ -379,14 +379,14 @@
     method public final androidx.ui.foundation.shape.corner.CornerSize getTopRight();
   }
 
-  public interface CornerSize {
+  @androidx.compose.Immutable public interface CornerSize {
     method public float toPx-SwJi8iY(long shapeSize, androidx.ui.unit.Density density);
   }
 
   public final class CornerSizeKt {
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(float size);
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(@IntRange(from=0, to=50) int percent);
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize-ipo6vVg(float size);
+    method @androidx.compose.Stable public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(float size);
+    method @androidx.compose.Stable public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(@IntRange(from=0, to=50) int percent);
+    method @androidx.compose.Stable public static androidx.ui.foundation.shape.corner.CornerSize CornerSize-ipo6vVg(float size);
     method public static androidx.ui.foundation.shape.corner.CornerSize getZeroCornerSize();
   }
 
diff --git a/ui/ui-foundation/api/restricted_current.txt b/ui/ui-foundation/api/restricted_current.txt
index f82bc51..b3a2498 100644
--- a/ui/ui-foundation/api/restricted_current.txt
+++ b/ui/ui-foundation/api/restricted_current.txt
@@ -2,58 +2,58 @@
 package androidx.ui.foundation {
 
   public final class AdapterListKt {
-    method public static <T> void AdapterList(java.util.List<? extends T> data, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> itemCallback);
+    method @androidx.compose.Composable public static <T> void AdapterList(java.util.List<? extends T> data, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> itemCallback);
   }
 
-  public final class Border {
+  @androidx.compose.Immutable public final class Border {
     method public float component1();
     method public androidx.ui.graphics.Brush component2();
-    method public androidx.ui.foundation.Border copy-HIF-_f0(float size, androidx.ui.graphics.Brush brush);
+    method @androidx.compose.Immutable public androidx.ui.foundation.Border copy-HIF-_f0(float size, androidx.ui.graphics.Brush brush);
     method public androidx.ui.graphics.Brush getBrush();
     method public float getSize();
   }
 
   public final class BorderKt {
-    method public static androidx.ui.foundation.Border Border-YSZAjy0(float size, long color);
+    method @androidx.compose.Stable public static androidx.ui.foundation.Border Border-YSZAjy0(float size, long color);
   }
 
   public final class BoxKt {
-    method public static void Box-TInkGdk(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, long backgroundColor = Color.Transparent, androidx.ui.foundation.Border? border = null, float padding = elvis {
+    method @androidx.compose.Composable public static void Box-TInkGdk(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, long backgroundColor = Color.Transparent, androidx.ui.foundation.Border? border = null, float padding = elvis {
     var var4119171b: androidx.ui.unit.Dp = border?.size
     if (var4119171b != null) var4119171b else 0.dp
 }, float paddingStart = Dp.Unspecified, float paddingTop = Dp.Unspecified, float paddingEnd = Dp.Unspecified, float paddingBottom = Dp.Unspecified, androidx.ui.core.Alignment gravity = ContentGravity.TopStart, kotlin.jvm.functions.Function0<kotlin.Unit> children = emptyContent());
   }
 
   public final class CanvasKt {
-    method public static void Canvas(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.drawscope.DrawScope,kotlin.Unit> onCanvas);
+    method @androidx.compose.Composable public static void Canvas(androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.drawscope.DrawScope,kotlin.Unit> onCanvas);
   }
 
   public final class ClickableKt {
-    method @Deprecated public static void Clickable(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, String?  androidx.ui.foundation.InteractionState? interactionState = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static androidx.ui.core.Modifier clickable(androidx.ui.core.Modifier, boolean enabled = true, String?  androidx.ui.foundation.InteractionState interactionState = remember({ 
+    method @Deprecated @androidx.compose.Composable public static void Clickable(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, String?  androidx.ui.foundation.InteractionState? interactionState = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static androidx.ui.core.Modifier clickable(androidx.ui.core.Modifier, boolean enabled = true, String?  androidx.ui.foundation.InteractionState interactionState = remember({ 
     return <init>()
 }), androidx.ui.foundation.Indication? indication = IndicationAmbient.invoke(), kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit> onClick);
   }
 
   public final class ClickableTextKt {
-    method public static void ClickableText(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle style = TextStyle.Default, boolean softWrap = true, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, int maxLines = 2147483647, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> onClick);
+    method @androidx.compose.Composable public static void ClickableText(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle style = TextStyle.Default, boolean softWrap = true, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, int maxLines = 2147483647, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> onClick);
   }
 
   public final class ContentColorKt {
-    method public static long contentColor();
+    method @androidx.compose.Composable public static long contentColor();
     method public static androidx.compose.ProvidableAmbient<androidx.ui.graphics.Color> getContentColorAmbient();
   }
 
   public final class DarkThemeKt {
-    method public static boolean isSystemInDarkTheme();
+    method @androidx.compose.Composable public static boolean isSystemInDarkTheme();
   }
 
   public final class DeterminateProgressIndicatorKt {
-    method public static void DeterminateProgressIndicator(@FloatRange(from=0.0, to=1.0) float progress, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void DeterminateProgressIndicator(@FloatRange(from=0.0, to=1.0) float progress, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class DialogKt {
-    method public static void Dialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Dialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class DrawBackgroundKt {
@@ -67,28 +67,28 @@
   }
 
   public final class DrawBorderKt {
-    method @Deprecated public static androidx.ui.core.Modifier DrawBorder(androidx.ui.foundation.Border border, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
-    method @Deprecated public static androidx.ui.foundation.DrawBorder DrawBorder-3vYgddY(float size, androidx.ui.graphics.Brush brush, androidx.ui.graphics.Shape shape);
-    method @Deprecated public static androidx.ui.core.Modifier DrawBorder-Wounw_8(float size, long color, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.core.Modifier DrawBorder(androidx.ui.foundation.Border border, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.foundation.DrawBorder DrawBorder-3vYgddY(float size, androidx.ui.graphics.Brush brush, androidx.ui.graphics.Shape shape);
+    method @Deprecated @androidx.compose.Composable public static androidx.ui.core.Modifier DrawBorder-Wounw_8(float size, long color, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
     method public static androidx.ui.core.Modifier drawBorder(androidx.ui.core.Modifier, androidx.ui.foundation.Border border, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
     method public static androidx.ui.core.Modifier drawBorder-ik3FbJE(androidx.ui.core.Modifier, float size, long color, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape);
     method public static androidx.ui.core.Modifier drawBorder-vGsXmEw(androidx.ui.core.Modifier, float size, androidx.ui.graphics.Brush brush, androidx.ui.graphics.Shape shape);
   }
 
   public final class IconKt {
-    method public static void Icon-A4lfJGc(androidx.ui.graphics.vector.VectorAsset asset, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
-    method public static void Icon-RCipKA8(androidx.ui.graphics.painter.Painter painter, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
-    method public static void Icon-smRaMnI(androidx.ui.graphics.ImageAsset asset, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
+    method @androidx.compose.Composable public static void Icon-A4lfJGc(androidx.ui.graphics.vector.VectorAsset asset, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
+    method @androidx.compose.Composable public static void Icon-RCipKA8(androidx.ui.graphics.painter.Painter painter, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
+    method @androidx.compose.Composable public static void Icon-smRaMnI(androidx.ui.graphics.ImageAsset asset, androidx.ui.core.Modifier modifier = Modifier, long tint = contentColor());
   }
 
   public final class ImageKt {
-    method public static inline void Image(androidx.ui.graphics.ImageAsset asset, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
-    method public static inline void Image(androidx.ui.graphics.vector.VectorAsset asset, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
-    method public static void Image(androidx.ui.graphics.painter.Painter painter, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
-    method @Deprecated public static void SimpleImage--SSR55g(androidx.ui.graphics.ImageAsset image, long tint = Color.Unset);
+    method @androidx.compose.Composable public static inline void Image(androidx.ui.graphics.ImageAsset asset, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
+    method @androidx.compose.Composable public static inline void Image(androidx.ui.graphics.vector.VectorAsset asset, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
+    method @androidx.compose.Composable public static void Image(androidx.ui.graphics.painter.Painter painter, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.core.Alignment alignment = Alignment.Center, androidx.ui.core.ContentScale contentScale = ContentScale.Inside, float alpha = 1.0f, androidx.ui.graphics.ColorFilter? colorFilter = null);
+    method @Deprecated @androidx.compose.Composable public static void SimpleImage--SSR55g(androidx.ui.graphics.ImageAsset image, long tint = Color.Unset);
   }
 
-  public interface Indication {
+  @androidx.compose.Stable public interface Indication {
     method public androidx.ui.foundation.IndicationInstance createInstance();
   }
 
@@ -113,7 +113,7 @@
     field public static final androidx.ui.foundation.Interaction.Pressed! INSTANCE;
   }
 
-  public final class InteractionState implements androidx.compose.State<java.util.Set<? extends androidx.ui.foundation.Interaction>> {
+  @androidx.compose.Stable public final class InteractionState implements androidx.compose.State<java.util.Set<? extends androidx.ui.foundation.Interaction>> {
     ctor public InteractionState();
     method public void addInteraction(androidx.ui.foundation.Interaction interaction, androidx.ui.unit.PxPosition? position = null);
     method public operator boolean contains(androidx.ui.foundation.Interaction interaction);
@@ -124,12 +124,12 @@
   }
 
   public final class ScrollerKt {
-    method public static void HorizontalScroller(androidx.ui.foundation.ScrollerPosition scrollerPosition = ScrollerPosition(), androidx.ui.core.Modifier modifier = Modifier, boolean isScrollable = true, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> children);
-    method public static androidx.ui.foundation.ScrollerPosition ScrollerPosition(float initial = 0f, boolean isReversed = false);
-    method public static void VerticalScroller(androidx.ui.foundation.ScrollerPosition scrollerPosition = ScrollerPosition(), androidx.ui.core.Modifier modifier = Modifier, boolean isScrollable = true, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void HorizontalScroller(androidx.ui.foundation.ScrollerPosition scrollerPosition = ScrollerPosition(), androidx.ui.core.Modifier modifier = Modifier, boolean isScrollable = true, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static androidx.ui.foundation.ScrollerPosition ScrollerPosition(float initial = 0f, boolean isReversed = false);
+    method @androidx.compose.Composable public static void VerticalScroller(androidx.ui.foundation.ScrollerPosition scrollerPosition = ScrollerPosition(), androidx.ui.core.Modifier modifier = Modifier, boolean isScrollable = true, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> children);
   }
 
-  public final class ScrollerPosition {
+  @androidx.compose.Stable public final class ScrollerPosition {
     ctor public ScrollerPosition(androidx.ui.foundation.animation.FlingConfig flingConfig, float initial, internal boolean isReversed, androidx.animation.AnimationClockObservable animationClock);
     method public float getMaxPosition();
     method public float getValue();
@@ -145,7 +145,7 @@
   }
 
   public static final class ScrollerPosition.Companion {
-    method public androidx.ui.savedinstancestate.Saver<androidx.ui.foundation.ScrollerPosition,?> Saver(androidx.ui.foundation.animation.FlingConfig flingConfig, boolean isReversed, androidx.animation.AnimationClockObservable animationClock);
+    method @androidx.compose.Composable public androidx.ui.savedinstancestate.Saver<androidx.ui.foundation.ScrollerPosition,?> Saver(androidx.ui.foundation.animation.FlingConfig flingConfig, boolean isReversed, androidx.animation.AnimationClockObservable animationClock);
   }
 
   public final class Strings {
@@ -167,15 +167,15 @@
   }
 
   public final class TextFieldKt {
-    method public static void TextField-DBcCkQs(androidx.ui.foundation.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.ui.foundation.TextFieldValue,kotlin.Unit> onValueChange, androidx.ui.core.Modifier modifier = Modifier, long textColor = Color.Unset, androidx.ui.text.TextStyle textStyle = currentTextStyle(), androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit>  androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long cursorColor = contentColor());
+    method @androidx.compose.Composable public static void TextField-DBcCkQs(androidx.ui.foundation.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.ui.foundation.TextFieldValue,kotlin.Unit> onValueChange, androidx.ui.core.Modifier modifier = Modifier, long textColor = Color.Unset, androidx.ui.text.TextStyle textStyle = currentTextStyle(), androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit>  androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long cursorColor = contentColor());
   }
 
-  public final class TextFieldValue {
+  @androidx.compose.Immutable public final class TextFieldValue {
     ctor public TextFieldValue(String text, androidx.ui.text.TextRange selection);
     ctor public TextFieldValue();
     method public String component1();
     method public androidx.ui.text.TextRange component2();
-    method public androidx.ui.foundation.TextFieldValue copy(String text, androidx.ui.text.TextRange selection);
+    method @androidx.compose.Immutable public androidx.ui.foundation.TextFieldValue copy(String text, androidx.ui.text.TextRange selection);
     method public androidx.ui.text.TextRange getSelection();
     method public String getText();
     field public static final androidx.ui.foundation.TextFieldValue.Companion! Companion;
@@ -187,10 +187,10 @@
   }
 
   public final class TextKt {
-    method public static void ProvideTextStyle(androidx.ui.text.TextStyle value, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Text--mY4wAA(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, long color = Color.Unset, long fontSize = TextUnit.Inherit, androidx.ui.text.font.FontStyle? fontStyle = null, androidx.ui.text.font.FontFamily? fontFamily = null, long letterSpacing = TextUnit.Inherit, androidx.ui.text.style.TextDecoration? textDecoration = null, androidx.ui.text.style.TextAlign? textAlign = null, long lineHeight = TextUnit.Inherit, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, boolean softWrap = true, int maxLines = 2147483647, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent = mapOf(), kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  androidx.ui.text.TextStyle style = currentTextStyle());
-    method public static void Text-OII7cnY(String text, androidx.ui.core.Modifier modifier = Modifier, long color = Color.Unset, long fontSize = TextUnit.Inherit, androidx.ui.text.font.FontStyle? fontStyle = null, androidx.ui.text.font.FontFamily? fontFamily = null, long letterSpacing = TextUnit.Inherit, androidx.ui.text.style.TextDecoration? textDecoration = null, androidx.ui.text.style.TextAlign? textAlign = null, long lineHeight = TextUnit.Inherit, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, boolean softWrap = true, int maxLines = 2147483647, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent = mapOf(), kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  androidx.ui.text.TextStyle style = currentTextStyle());
-    method public static androidx.ui.text.TextStyle currentTextStyle();
+    method @androidx.compose.Composable public static void ProvideTextStyle(androidx.ui.text.TextStyle value, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Text--mY4wAA(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, long color = Color.Unset, long fontSize = TextUnit.Inherit, androidx.ui.text.font.FontStyle? fontStyle = null, androidx.ui.text.font.FontFamily? fontFamily = null, long letterSpacing = TextUnit.Inherit, androidx.ui.text.style.TextDecoration? textDecoration = null, androidx.ui.text.style.TextAlign? textAlign = null, long lineHeight = TextUnit.Inherit, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, boolean softWrap = true, int maxLines = 2147483647, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent = mapOf(), kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  androidx.ui.text.TextStyle style = currentTextStyle());
+    method @androidx.compose.Composable public static void Text-OII7cnY(String text, androidx.ui.core.Modifier modifier = Modifier, long color = Color.Unset, long fontSize = TextUnit.Inherit, androidx.ui.text.font.FontStyle? fontStyle = null, androidx.ui.text.font.FontFamily? fontFamily = null, long letterSpacing = TextUnit.Inherit, androidx.ui.text.style.TextDecoration? textDecoration = null, androidx.ui.text.style.TextAlign? textAlign = null, long lineHeight = TextUnit.Inherit, androidx.ui.text.style.TextOverflow overflow = TextOverflow.Clip, boolean softWrap = true, int maxLines = 2147483647, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent = mapOf(), kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  androidx.ui.text.TextStyle style = currentTextStyle());
+    method @androidx.compose.Composable public static androidx.ui.text.TextStyle currentTextStyle();
   }
 
 }
@@ -251,12 +251,12 @@
   public final class AndroidFlingSplineKt {
   }
 
-  public final class FlingConfig {
+  @androidx.compose.Immutable public final class FlingConfig {
     ctor public FlingConfig(androidx.animation.DecayAnimation decayAnimation, kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>? onAnimationEnd, kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget);
     method public androidx.animation.DecayAnimation component1();
     method public kotlin.jvm.functions.Function3<androidx.animation.AnimationEndReason,java.lang.Float,java.lang.Float,kotlin.Unit>? component2();
     method public kotlin.jvm.functions.Function1<java.lang.Float,androidx.animation.TargetAnimation> component3();
-    method public androidx.ui.foundation.animation.FlingConfig copy(androidx.animation.DecayAnimation decayAnimation, kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>? onAnimationEnd, kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget);
+    method @androidx.compose.Immutable public androidx.ui.foundation.animation.FlingConfig copy(androidx.animation.DecayAnimation decayAnimation, kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>? onAnimationEnd, kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget);
     method public kotlin.jvm.functions.Function1<java.lang.Float,androidx.animation.TargetAnimation> getAdjustTarget();
     method public androidx.animation.DecayAnimation getDecayAnimation();
     method public kotlin.jvm.functions.Function3<androidx.animation.AnimationEndReason,java.lang.Float,java.lang.Float,kotlin.Unit>? getOnAnimationEnd();
@@ -264,7 +264,7 @@
 
   public final class FlingConfigKt {
     method public static androidx.ui.foundation.animation.FlingConfig AnchorsFlingConfig(java.util.List<java.lang.Float> anchors, androidx.animation.AnimationBuilder<java.lang.Float> animationBuilder = androidx.animation.PhysicsBuilder(), kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>?  androidx.animation.DecayAnimation decayAnimation = androidx.animation.ExponentialDecay());
-    method public static androidx.ui.foundation.animation.FlingConfig FlingConfig(kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>?  kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget = { return null });
+    method @androidx.compose.Composable public static androidx.ui.foundation.animation.FlingConfig FlingConfig(kotlin.jvm.functions.Function3<? super androidx.animation.AnimationEndReason,? super java.lang.Float,? super java.lang.Float,kotlin.Unit>?  kotlin.jvm.functions.Function1<? super java.lang.Float,androidx.animation.TargetAnimation> adjustTarget = { return null });
     method public static void fling(androidx.animation.AnimatedFloat, androidx.ui.foundation.animation.FlingConfig config, float startVelocity);
   }
 
@@ -288,7 +288,7 @@
   }
 
   public final class ScrollableKt {
-    method public static androidx.ui.foundation.gestures.ScrollableState ScrollableState(kotlin.jvm.functions.Function1<? super java.lang.Float,java.lang.Float> onScrollDeltaConsumptionRequested);
+    method @androidx.compose.Composable public static androidx.ui.foundation.gestures.ScrollableState ScrollableState(kotlin.jvm.functions.Function1<? super java.lang.Float,java.lang.Float> onScrollDeltaConsumptionRequested);
     method public static androidx.ui.core.Modifier scrollable(androidx.ui.core.Modifier, androidx.ui.foundation.gestures.DragDirection dragDirection, androidx.ui.foundation.gestures.ScrollableState scrollableState, kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>  boolean enabled = true);
   }
 
@@ -307,13 +307,13 @@
 package androidx.ui.foundation.selection {
 
   public final class MutuallyExclusiveSetItemKt {
-    method public static void MutuallyExclusiveSetItem(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void MutuallyExclusiveSetItem(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class ToggleableKt {
-    method public static void Toggleable(boolean value, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onValueChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Toggleable(boolean value, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onValueChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
     method public static androidx.ui.foundation.selection.ToggleableState ToggleableState(boolean value);
-    method public static void TriStateToggleable(androidx.ui.foundation.selection.ToggleableState state = androidx.ui.foundation.selection.ToggleableState.On, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void TriStateToggleable(androidx.ui.foundation.selection.ToggleableState state = androidx.ui.foundation.selection.ToggleableState.On, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public enum ToggleableState {
@@ -379,14 +379,14 @@
     method public final androidx.ui.foundation.shape.corner.CornerSize getTopRight();
   }
 
-  public interface CornerSize {
+  @androidx.compose.Immutable public interface CornerSize {
     method public float toPx-SwJi8iY(long shapeSize, androidx.ui.unit.Density density);
   }
 
   public final class CornerSizeKt {
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(float size);
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(@IntRange(from=0, to=50) int percent);
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize-ipo6vVg(float size);
+    method @androidx.compose.Stable public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(float size);
+    method @androidx.compose.Stable public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(@IntRange(from=0, to=50) int percent);
+    method @androidx.compose.Stable public static androidx.ui.foundation.shape.corner.CornerSize CornerSize-ipo6vVg(float size);
     method public static androidx.ui.foundation.shape.corner.CornerSize getZeroCornerSize();
   }
 
diff --git a/ui/ui-geometry/api/0.1.0-dev14.txt b/ui/ui-geometry/api/0.1.0-dev14.txt
index 540aa8a..0ca2e11 100644
--- a/ui/ui-geometry/api/0.1.0-dev14.txt
+++ b/ui/ui-geometry/api/0.1.0-dev14.txt
@@ -1,36 +1,36 @@
 // Signature format: 3.0
 package androidx.ui.geometry {
 
-  public final inline class Offset {
+  @androidx.compose.Immutable public final inline class Offset {
     ctor public Offset();
     method public static infix androidx.ui.geometry.Rect and-b2zCL34(long $this, long other);
     method public static long constructor-impl(internal long packedValue);
-    method public static operator long div-impl(long $this, float operand);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static operator long div-impl(long $this, float operand);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static float getDirection-impl(long $this);
-    method public static float getDistance-impl(long $this);
-    method public static float getDistanceSquared-impl(long $this);
+    method @androidx.compose.Stable public static float getDistance-impl(long $this);
+    method @androidx.compose.Stable public static float getDistanceSquared-impl(long $this);
     method public static float getDx-impl(long $this);
     method public static float getDy-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static operator long minus-RIqb49o(long $this, long other);
-    method public static operator long plus-RIqb49o(long $this, long other);
-    method public static operator long rem-impl(long $this, float operand);
-    method public static long scale-impl(long $this, float scaleX, float scaleY);
-    method public static operator long times-impl(long $this, float operand);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Stable public static operator long minus-RIqb49o(long $this, long other);
+    method @androidx.compose.Stable public static operator long plus-RIqb49o(long $this, long other);
+    method @androidx.compose.Stable public static operator long rem-impl(long $this, float operand);
+    method @androidx.compose.Stable public static long scale-impl(long $this, float scaleX, float scaleY);
+    method @androidx.compose.Stable public static operator long times-impl(long $this, float operand);
     method public static String toString-impl(long $this);
-    method public static long translate-impl(long $this, float translateX, float translateY);
+    method @androidx.compose.Stable public static long translate-impl(long $this, float translateX, float translateY);
     method public static long truncDiv-impl(long $this, float operand);
-    method public static operator long unaryMinus-impl(long $this);
+    method @androidx.compose.Stable public static operator long unaryMinus-impl(long $this);
     field public static final androidx.ui.geometry.Offset.Companion! Companion;
   }
 
   public static final class Offset.Companion {
     method public long getInfinite();
     method public long getZero();
-    method public boolean isValid-RIqb49o(long offset);
-    method public long lerp-nqy8KaQ(long start, long stop, float fraction);
+    method @androidx.compose.Stable public boolean isValid-RIqb49o(long offset);
+    method @androidx.compose.Stable public long lerp-nqy8KaQ(long start, long stop, float fraction);
     property public final long infinite;
     property public final long zero;
   }
@@ -128,43 +128,43 @@
     method public static androidx.ui.geometry.RRect withRadius(androidx.ui.geometry.RRect, androidx.ui.geometry.Radius radius);
   }
 
-  public final class Radius {
+  @androidx.compose.Immutable public final class Radius {
     ctor public Radius(float x, float y);
     method public float component1();
     method public float component2();
-    method public androidx.ui.geometry.Radius copy(float x, float y);
-    method public operator androidx.ui.geometry.Radius div(float operand);
+    method @androidx.compose.Immutable public androidx.ui.geometry.Radius copy(float x, float y);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius div(float operand);
     method public float getX();
     method public float getY();
-    method public operator androidx.ui.geometry.Radius minus(androidx.ui.geometry.Radius other);
-    method public operator androidx.ui.geometry.Radius plus(androidx.ui.geometry.Radius other);
-    method public operator androidx.ui.geometry.Radius rem(float operand);
-    method public operator androidx.ui.geometry.Radius times(float operand);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius minus(androidx.ui.geometry.Radius other);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius plus(androidx.ui.geometry.Radius other);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius rem(float operand);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius times(float operand);
     method public androidx.ui.geometry.Radius truncDiv(float operand);
-    method public operator androidx.ui.geometry.Radius unaryMinus();
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius unaryMinus();
     field public static final androidx.ui.geometry.Radius.Companion! Companion;
   }
 
   public static final class Radius.Companion {
-    method public androidx.ui.geometry.Radius circular(float radius);
-    method public androidx.ui.geometry.Radius elliptical(float x, float y);
+    method @androidx.compose.Stable public androidx.ui.geometry.Radius circular(float radius);
+    method @androidx.compose.Stable public androidx.ui.geometry.Radius elliptical(float x, float y);
     method public androidx.ui.geometry.Radius getZero();
     property public final androidx.ui.geometry.Radius zero;
   }
 
   public final class RadiusKt {
-    method public static androidx.ui.geometry.Radius lerp(androidx.ui.geometry.Radius start, androidx.ui.geometry.Radius stop, float fraction);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Radius lerp(androidx.ui.geometry.Radius start, androidx.ui.geometry.Radius stop, float fraction);
   }
 
-  public final class Rect {
+  @androidx.compose.Immutable public final class Rect {
     ctor public Rect(float left, float top, float right, float bottom);
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
     method public boolean contains-RIqb49o(long offset);
-    method public androidx.ui.geometry.Rect copy(float left, float top, float right, float bottom);
-    method public androidx.ui.geometry.Rect deflate(float delta);
+    method @androidx.compose.Immutable public androidx.ui.geometry.Rect copy(float left, float top, float right, float bottom);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect deflate(float delta);
     method public androidx.ui.geometry.Rect expandToInclude(androidx.ui.geometry.Rect other);
     method public float getBottom();
     method public long getBottomCenter();
@@ -184,15 +184,15 @@
     method public long getTopLeft();
     method public long getTopRight();
     method public float getWidth();
-    method public androidx.ui.geometry.Rect inflate(float delta);
-    method public androidx.ui.geometry.Rect intersect(androidx.ui.geometry.Rect other);
-    method public boolean isEmpty();
-    method public boolean isFinite();
-    method public boolean isInfinite();
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect inflate(float delta);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect intersect(androidx.ui.geometry.Rect other);
+    method @androidx.compose.Stable public boolean isEmpty();
+    method @androidx.compose.Stable public boolean isFinite();
+    method @androidx.compose.Stable public boolean isInfinite();
     method public androidx.ui.geometry.Rect join(androidx.ui.geometry.Rect other);
     method public boolean overlaps(androidx.ui.geometry.Rect other);
-    method public androidx.ui.geometry.Rect shift-RIqb49o(long offset);
-    method public androidx.ui.geometry.Rect translate(float translateX, float translateY);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect shift-RIqb49o(long offset);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect translate(float translateX, float translateY);
     property public final float height;
     property public final float maxDimension;
     property public final float minDimension;
@@ -201,10 +201,10 @@
   }
 
   public static final class Rect.Companion {
-    method public androidx.ui.geometry.Rect fromCircle-hSKLB2U(long center, float radius);
-    method public androidx.ui.geometry.Rect fromLTRB(float left, float top, float right, float bottom);
-    method public androidx.ui.geometry.Rect fromLTWH(float left, float top, float width, float height);
-    method public androidx.ui.geometry.Rect fromPoints-cs1Rg_A(long a, long b);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect fromCircle-hSKLB2U(long center, float radius);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect fromLTRB(float left, float top, float right, float bottom);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect fromLTWH(float left, float top, float width, float height);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect fromPoints-cs1Rg_A(long a, long b);
     method public androidx.ui.geometry.Rect getLargest();
     method public androidx.ui.geometry.Rect getZero();
     method public float get_giantScalar();
@@ -214,39 +214,39 @@
   }
 
   public final class RectKt {
-    method public static androidx.ui.geometry.Rect lerp(androidx.ui.geometry.Rect start, androidx.ui.geometry.Rect stop, float fraction);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Rect lerp(androidx.ui.geometry.Rect start, androidx.ui.geometry.Rect stop, float fraction);
   }
 
-  public final inline class Size {
+  @androidx.compose.Immutable public final inline class Size {
     ctor public Size();
-    method public static long bottomCenter-RIqb49o(long $this, long origin);
-    method public static long bottomLeft-RIqb49o(long $this, long origin);
-    method public static long bottomRight-RIqb49o(long $this, long origin);
-    method public static long center-RIqb49o(long $this, long origin = Offset.zero);
-    method public static long centerLeft-RIqb49o(long $this, long origin);
-    method public static long centerRight-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long bottomCenter-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long bottomLeft-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long bottomRight-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long center-RIqb49o(long $this, long origin = Offset.zero);
+    method @androidx.compose.Stable public static long centerLeft-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long centerRight-RIqb49o(long $this, long origin);
     method public static long constructor-impl(internal long value);
-    method public static boolean contains-RIqb49o(long $this, long offset);
-    method public static operator long div-impl(long $this, float operand);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static boolean contains-RIqb49o(long $this, long offset);
+    method @androidx.compose.Stable public static operator long div-impl(long $this, float operand);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
-    method public static long getFlipped-impl(long $this);
+    method @androidx.compose.Stable public static long getFlipped-impl(long $this);
     method public static float getHeight-impl(long $this);
     method public static float getMaxDimension-impl(long $this);
     method public static float getMinDimension-impl(long $this);
     method public static float getWidth-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static boolean isEmpty-impl(long $this);
-    method public static operator long minus-RIqb49o(long $this, long other);
-    method public static operator long minus-b2zCL34(long $this, long other);
-    method public static operator long plus-RIqb49o(long $this, long other);
-    method public static operator long rem-impl(long $this, float operand);
-    method public static operator long times-impl(long $this, float operand);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Stable public static boolean isEmpty-impl(long $this);
+    method @androidx.compose.Stable public static operator long minus-RIqb49o(long $this, long other);
+    method @androidx.compose.Stable public static operator long minus-b2zCL34(long $this, long other);
+    method @androidx.compose.Stable public static operator long plus-RIqb49o(long $this, long other);
+    method @androidx.compose.Stable public static operator long rem-impl(long $this, float operand);
+    method @androidx.compose.Stable public static operator long times-impl(long $this, float operand);
     method public static String toString-impl(long $this);
-    method public static long topCenter-RIqb49o(long $this, long origin);
-    method public static long topLeft-RIqb49o(long $this, long origin);
-    method public static long topRight-RIqb49o(long $this, long origin);
-    method public static long truncDiv-impl(long $this, float operand);
+    method @androidx.compose.Stable public static long topCenter-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long topLeft-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long topRight-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long truncDiv-impl(long $this, float operand);
     field public static final androidx.ui.geometry.Size.Companion! Companion;
   }
 
@@ -257,15 +257,15 @@
     method public long fromWidth(float width);
     method public long getUnspecifiedSize();
     method public long getZero();
-    method public androidx.ui.geometry.Size? lerp-T-c3OIQ(long start, long stop, float fraction);
+    method @androidx.compose.Stable public androidx.ui.geometry.Size? lerp-T-c3OIQ(long start, long stop, float fraction);
     method public long square(float dimension);
     property public final long UnspecifiedSize;
     property public final long zero;
   }
 
   public final class SizeKt {
-    method public static long Size(float width, float height);
-    method public static androidx.ui.geometry.Rect toRect-b2zCL34(long);
+    method @androidx.compose.Stable public static long Size(float width, float height);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Rect toRect-b2zCL34(long);
   }
 
 }
diff --git a/ui/ui-geometry/api/current.txt b/ui/ui-geometry/api/current.txt
index 540aa8a..0ca2e11 100644
--- a/ui/ui-geometry/api/current.txt
+++ b/ui/ui-geometry/api/current.txt
@@ -1,36 +1,36 @@
 // Signature format: 3.0
 package androidx.ui.geometry {
 
-  public final inline class Offset {
+  @androidx.compose.Immutable public final inline class Offset {
     ctor public Offset();
     method public static infix androidx.ui.geometry.Rect and-b2zCL34(long $this, long other);
     method public static long constructor-impl(internal long packedValue);
-    method public static operator long div-impl(long $this, float operand);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static operator long div-impl(long $this, float operand);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static float getDirection-impl(long $this);
-    method public static float getDistance-impl(long $this);
-    method public static float getDistanceSquared-impl(long $this);
+    method @androidx.compose.Stable public static float getDistance-impl(long $this);
+    method @androidx.compose.Stable public static float getDistanceSquared-impl(long $this);
     method public static float getDx-impl(long $this);
     method public static float getDy-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static operator long minus-RIqb49o(long $this, long other);
-    method public static operator long plus-RIqb49o(long $this, long other);
-    method public static operator long rem-impl(long $this, float operand);
-    method public static long scale-impl(long $this, float scaleX, float scaleY);
-    method public static operator long times-impl(long $this, float operand);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Stable public static operator long minus-RIqb49o(long $this, long other);
+    method @androidx.compose.Stable public static operator long plus-RIqb49o(long $this, long other);
+    method @androidx.compose.Stable public static operator long rem-impl(long $this, float operand);
+    method @androidx.compose.Stable public static long scale-impl(long $this, float scaleX, float scaleY);
+    method @androidx.compose.Stable public static operator long times-impl(long $this, float operand);
     method public static String toString-impl(long $this);
-    method public static long translate-impl(long $this, float translateX, float translateY);
+    method @androidx.compose.Stable public static long translate-impl(long $this, float translateX, float translateY);
     method public static long truncDiv-impl(long $this, float operand);
-    method public static operator long unaryMinus-impl(long $this);
+    method @androidx.compose.Stable public static operator long unaryMinus-impl(long $this);
     field public static final androidx.ui.geometry.Offset.Companion! Companion;
   }
 
   public static final class Offset.Companion {
     method public long getInfinite();
     method public long getZero();
-    method public boolean isValid-RIqb49o(long offset);
-    method public long lerp-nqy8KaQ(long start, long stop, float fraction);
+    method @androidx.compose.Stable public boolean isValid-RIqb49o(long offset);
+    method @androidx.compose.Stable public long lerp-nqy8KaQ(long start, long stop, float fraction);
     property public final long infinite;
     property public final long zero;
   }
@@ -128,43 +128,43 @@
     method public static androidx.ui.geometry.RRect withRadius(androidx.ui.geometry.RRect, androidx.ui.geometry.Radius radius);
   }
 
-  public final class Radius {
+  @androidx.compose.Immutable public final class Radius {
     ctor public Radius(float x, float y);
     method public float component1();
     method public float component2();
-    method public androidx.ui.geometry.Radius copy(float x, float y);
-    method public operator androidx.ui.geometry.Radius div(float operand);
+    method @androidx.compose.Immutable public androidx.ui.geometry.Radius copy(float x, float y);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius div(float operand);
     method public float getX();
     method public float getY();
-    method public operator androidx.ui.geometry.Radius minus(androidx.ui.geometry.Radius other);
-    method public operator androidx.ui.geometry.Radius plus(androidx.ui.geometry.Radius other);
-    method public operator androidx.ui.geometry.Radius rem(float operand);
-    method public operator androidx.ui.geometry.Radius times(float operand);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius minus(androidx.ui.geometry.Radius other);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius plus(androidx.ui.geometry.Radius other);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius rem(float operand);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius times(float operand);
     method public androidx.ui.geometry.Radius truncDiv(float operand);
-    method public operator androidx.ui.geometry.Radius unaryMinus();
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius unaryMinus();
     field public static final androidx.ui.geometry.Radius.Companion! Companion;
   }
 
   public static final class Radius.Companion {
-    method public androidx.ui.geometry.Radius circular(float radius);
-    method public androidx.ui.geometry.Radius elliptical(float x, float y);
+    method @androidx.compose.Stable public androidx.ui.geometry.Radius circular(float radius);
+    method @androidx.compose.Stable public androidx.ui.geometry.Radius elliptical(float x, float y);
     method public androidx.ui.geometry.Radius getZero();
     property public final androidx.ui.geometry.Radius zero;
   }
 
   public final class RadiusKt {
-    method public static androidx.ui.geometry.Radius lerp(androidx.ui.geometry.Radius start, androidx.ui.geometry.Radius stop, float fraction);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Radius lerp(androidx.ui.geometry.Radius start, androidx.ui.geometry.Radius stop, float fraction);
   }
 
-  public final class Rect {
+  @androidx.compose.Immutable public final class Rect {
     ctor public Rect(float left, float top, float right, float bottom);
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
     method public boolean contains-RIqb49o(long offset);
-    method public androidx.ui.geometry.Rect copy(float left, float top, float right, float bottom);
-    method public androidx.ui.geometry.Rect deflate(float delta);
+    method @androidx.compose.Immutable public androidx.ui.geometry.Rect copy(float left, float top, float right, float bottom);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect deflate(float delta);
     method public androidx.ui.geometry.Rect expandToInclude(androidx.ui.geometry.Rect other);
     method public float getBottom();
     method public long getBottomCenter();
@@ -184,15 +184,15 @@
     method public long getTopLeft();
     method public long getTopRight();
     method public float getWidth();
-    method public androidx.ui.geometry.Rect inflate(float delta);
-    method public androidx.ui.geometry.Rect intersect(androidx.ui.geometry.Rect other);
-    method public boolean isEmpty();
-    method public boolean isFinite();
-    method public boolean isInfinite();
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect inflate(float delta);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect intersect(androidx.ui.geometry.Rect other);
+    method @androidx.compose.Stable public boolean isEmpty();
+    method @androidx.compose.Stable public boolean isFinite();
+    method @androidx.compose.Stable public boolean isInfinite();
     method public androidx.ui.geometry.Rect join(androidx.ui.geometry.Rect other);
     method public boolean overlaps(androidx.ui.geometry.Rect other);
-    method public androidx.ui.geometry.Rect shift-RIqb49o(long offset);
-    method public androidx.ui.geometry.Rect translate(float translateX, float translateY);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect shift-RIqb49o(long offset);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect translate(float translateX, float translateY);
     property public final float height;
     property public final float maxDimension;
     property public final float minDimension;
@@ -201,10 +201,10 @@
   }
 
   public static final class Rect.Companion {
-    method public androidx.ui.geometry.Rect fromCircle-hSKLB2U(long center, float radius);
-    method public androidx.ui.geometry.Rect fromLTRB(float left, float top, float right, float bottom);
-    method public androidx.ui.geometry.Rect fromLTWH(float left, float top, float width, float height);
-    method public androidx.ui.geometry.Rect fromPoints-cs1Rg_A(long a, long b);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect fromCircle-hSKLB2U(long center, float radius);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect fromLTRB(float left, float top, float right, float bottom);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect fromLTWH(float left, float top, float width, float height);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect fromPoints-cs1Rg_A(long a, long b);
     method public androidx.ui.geometry.Rect getLargest();
     method public androidx.ui.geometry.Rect getZero();
     method public float get_giantScalar();
@@ -214,39 +214,39 @@
   }
 
   public final class RectKt {
-    method public static androidx.ui.geometry.Rect lerp(androidx.ui.geometry.Rect start, androidx.ui.geometry.Rect stop, float fraction);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Rect lerp(androidx.ui.geometry.Rect start, androidx.ui.geometry.Rect stop, float fraction);
   }
 
-  public final inline class Size {
+  @androidx.compose.Immutable public final inline class Size {
     ctor public Size();
-    method public static long bottomCenter-RIqb49o(long $this, long origin);
-    method public static long bottomLeft-RIqb49o(long $this, long origin);
-    method public static long bottomRight-RIqb49o(long $this, long origin);
-    method public static long center-RIqb49o(long $this, long origin = Offset.zero);
-    method public static long centerLeft-RIqb49o(long $this, long origin);
-    method public static long centerRight-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long bottomCenter-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long bottomLeft-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long bottomRight-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long center-RIqb49o(long $this, long origin = Offset.zero);
+    method @androidx.compose.Stable public static long centerLeft-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long centerRight-RIqb49o(long $this, long origin);
     method public static long constructor-impl(internal long value);
-    method public static boolean contains-RIqb49o(long $this, long offset);
-    method public static operator long div-impl(long $this, float operand);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static boolean contains-RIqb49o(long $this, long offset);
+    method @androidx.compose.Stable public static operator long div-impl(long $this, float operand);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
-    method public static long getFlipped-impl(long $this);
+    method @androidx.compose.Stable public static long getFlipped-impl(long $this);
     method public static float getHeight-impl(long $this);
     method public static float getMaxDimension-impl(long $this);
     method public static float getMinDimension-impl(long $this);
     method public static float getWidth-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static boolean isEmpty-impl(long $this);
-    method public static operator long minus-RIqb49o(long $this, long other);
-    method public static operator long minus-b2zCL34(long $this, long other);
-    method public static operator long plus-RIqb49o(long $this, long other);
-    method public static operator long rem-impl(long $this, float operand);
-    method public static operator long times-impl(long $this, float operand);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Stable public static boolean isEmpty-impl(long $this);
+    method @androidx.compose.Stable public static operator long minus-RIqb49o(long $this, long other);
+    method @androidx.compose.Stable public static operator long minus-b2zCL34(long $this, long other);
+    method @androidx.compose.Stable public static operator long plus-RIqb49o(long $this, long other);
+    method @androidx.compose.Stable public static operator long rem-impl(long $this, float operand);
+    method @androidx.compose.Stable public static operator long times-impl(long $this, float operand);
     method public static String toString-impl(long $this);
-    method public static long topCenter-RIqb49o(long $this, long origin);
-    method public static long topLeft-RIqb49o(long $this, long origin);
-    method public static long topRight-RIqb49o(long $this, long origin);
-    method public static long truncDiv-impl(long $this, float operand);
+    method @androidx.compose.Stable public static long topCenter-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long topLeft-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long topRight-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long truncDiv-impl(long $this, float operand);
     field public static final androidx.ui.geometry.Size.Companion! Companion;
   }
 
@@ -257,15 +257,15 @@
     method public long fromWidth(float width);
     method public long getUnspecifiedSize();
     method public long getZero();
-    method public androidx.ui.geometry.Size? lerp-T-c3OIQ(long start, long stop, float fraction);
+    method @androidx.compose.Stable public androidx.ui.geometry.Size? lerp-T-c3OIQ(long start, long stop, float fraction);
     method public long square(float dimension);
     property public final long UnspecifiedSize;
     property public final long zero;
   }
 
   public final class SizeKt {
-    method public static long Size(float width, float height);
-    method public static androidx.ui.geometry.Rect toRect-b2zCL34(long);
+    method @androidx.compose.Stable public static long Size(float width, float height);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Rect toRect-b2zCL34(long);
   }
 
 }
diff --git a/ui/ui-geometry/api/public_plus_experimental_0.1.0-dev14.txt b/ui/ui-geometry/api/public_plus_experimental_0.1.0-dev14.txt
index 540aa8a..0ca2e11 100644
--- a/ui/ui-geometry/api/public_plus_experimental_0.1.0-dev14.txt
+++ b/ui/ui-geometry/api/public_plus_experimental_0.1.0-dev14.txt
@@ -1,36 +1,36 @@
 // Signature format: 3.0
 package androidx.ui.geometry {
 
-  public final inline class Offset {
+  @androidx.compose.Immutable public final inline class Offset {
     ctor public Offset();
     method public static infix androidx.ui.geometry.Rect and-b2zCL34(long $this, long other);
     method public static long constructor-impl(internal long packedValue);
-    method public static operator long div-impl(long $this, float operand);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static operator long div-impl(long $this, float operand);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static float getDirection-impl(long $this);
-    method public static float getDistance-impl(long $this);
-    method public static float getDistanceSquared-impl(long $this);
+    method @androidx.compose.Stable public static float getDistance-impl(long $this);
+    method @androidx.compose.Stable public static float getDistanceSquared-impl(long $this);
     method public static float getDx-impl(long $this);
     method public static float getDy-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static operator long minus-RIqb49o(long $this, long other);
-    method public static operator long plus-RIqb49o(long $this, long other);
-    method public static operator long rem-impl(long $this, float operand);
-    method public static long scale-impl(long $this, float scaleX, float scaleY);
-    method public static operator long times-impl(long $this, float operand);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Stable public static operator long minus-RIqb49o(long $this, long other);
+    method @androidx.compose.Stable public static operator long plus-RIqb49o(long $this, long other);
+    method @androidx.compose.Stable public static operator long rem-impl(long $this, float operand);
+    method @androidx.compose.Stable public static long scale-impl(long $this, float scaleX, float scaleY);
+    method @androidx.compose.Stable public static operator long times-impl(long $this, float operand);
     method public static String toString-impl(long $this);
-    method public static long translate-impl(long $this, float translateX, float translateY);
+    method @androidx.compose.Stable public static long translate-impl(long $this, float translateX, float translateY);
     method public static long truncDiv-impl(long $this, float operand);
-    method public static operator long unaryMinus-impl(long $this);
+    method @androidx.compose.Stable public static operator long unaryMinus-impl(long $this);
     field public static final androidx.ui.geometry.Offset.Companion! Companion;
   }
 
   public static final class Offset.Companion {
     method public long getInfinite();
     method public long getZero();
-    method public boolean isValid-RIqb49o(long offset);
-    method public long lerp-nqy8KaQ(long start, long stop, float fraction);
+    method @androidx.compose.Stable public boolean isValid-RIqb49o(long offset);
+    method @androidx.compose.Stable public long lerp-nqy8KaQ(long start, long stop, float fraction);
     property public final long infinite;
     property public final long zero;
   }
@@ -128,43 +128,43 @@
     method public static androidx.ui.geometry.RRect withRadius(androidx.ui.geometry.RRect, androidx.ui.geometry.Radius radius);
   }
 
-  public final class Radius {
+  @androidx.compose.Immutable public final class Radius {
     ctor public Radius(float x, float y);
     method public float component1();
     method public float component2();
-    method public androidx.ui.geometry.Radius copy(float x, float y);
-    method public operator androidx.ui.geometry.Radius div(float operand);
+    method @androidx.compose.Immutable public androidx.ui.geometry.Radius copy(float x, float y);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius div(float operand);
     method public float getX();
     method public float getY();
-    method public operator androidx.ui.geometry.Radius minus(androidx.ui.geometry.Radius other);
-    method public operator androidx.ui.geometry.Radius plus(androidx.ui.geometry.Radius other);
-    method public operator androidx.ui.geometry.Radius rem(float operand);
-    method public operator androidx.ui.geometry.Radius times(float operand);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius minus(androidx.ui.geometry.Radius other);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius plus(androidx.ui.geometry.Radius other);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius rem(float operand);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius times(float operand);
     method public androidx.ui.geometry.Radius truncDiv(float operand);
-    method public operator androidx.ui.geometry.Radius unaryMinus();
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius unaryMinus();
     field public static final androidx.ui.geometry.Radius.Companion! Companion;
   }
 
   public static final class Radius.Companion {
-    method public androidx.ui.geometry.Radius circular(float radius);
-    method public androidx.ui.geometry.Radius elliptical(float x, float y);
+    method @androidx.compose.Stable public androidx.ui.geometry.Radius circular(float radius);
+    method @androidx.compose.Stable public androidx.ui.geometry.Radius elliptical(float x, float y);
     method public androidx.ui.geometry.Radius getZero();
     property public final androidx.ui.geometry.Radius zero;
   }
 
   public final class RadiusKt {
-    method public static androidx.ui.geometry.Radius lerp(androidx.ui.geometry.Radius start, androidx.ui.geometry.Radius stop, float fraction);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Radius lerp(androidx.ui.geometry.Radius start, androidx.ui.geometry.Radius stop, float fraction);
   }
 
-  public final class Rect {
+  @androidx.compose.Immutable public final class Rect {
     ctor public Rect(float left, float top, float right, float bottom);
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
     method public boolean contains-RIqb49o(long offset);
-    method public androidx.ui.geometry.Rect copy(float left, float top, float right, float bottom);
-    method public androidx.ui.geometry.Rect deflate(float delta);
+    method @androidx.compose.Immutable public androidx.ui.geometry.Rect copy(float left, float top, float right, float bottom);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect deflate(float delta);
     method public androidx.ui.geometry.Rect expandToInclude(androidx.ui.geometry.Rect other);
     method public float getBottom();
     method public long getBottomCenter();
@@ -184,15 +184,15 @@
     method public long getTopLeft();
     method public long getTopRight();
     method public float getWidth();
-    method public androidx.ui.geometry.Rect inflate(float delta);
-    method public androidx.ui.geometry.Rect intersect(androidx.ui.geometry.Rect other);
-    method public boolean isEmpty();
-    method public boolean isFinite();
-    method public boolean isInfinite();
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect inflate(float delta);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect intersect(androidx.ui.geometry.Rect other);
+    method @androidx.compose.Stable public boolean isEmpty();
+    method @androidx.compose.Stable public boolean isFinite();
+    method @androidx.compose.Stable public boolean isInfinite();
     method public androidx.ui.geometry.Rect join(androidx.ui.geometry.Rect other);
     method public boolean overlaps(androidx.ui.geometry.Rect other);
-    method public androidx.ui.geometry.Rect shift-RIqb49o(long offset);
-    method public androidx.ui.geometry.Rect translate(float translateX, float translateY);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect shift-RIqb49o(long offset);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect translate(float translateX, float translateY);
     property public final float height;
     property public final float maxDimension;
     property public final float minDimension;
@@ -201,10 +201,10 @@
   }
 
   public static final class Rect.Companion {
-    method public androidx.ui.geometry.Rect fromCircle-hSKLB2U(long center, float radius);
-    method public androidx.ui.geometry.Rect fromLTRB(float left, float top, float right, float bottom);
-    method public androidx.ui.geometry.Rect fromLTWH(float left, float top, float width, float height);
-    method public androidx.ui.geometry.Rect fromPoints-cs1Rg_A(long a, long b);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect fromCircle-hSKLB2U(long center, float radius);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect fromLTRB(float left, float top, float right, float bottom);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect fromLTWH(float left, float top, float width, float height);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect fromPoints-cs1Rg_A(long a, long b);
     method public androidx.ui.geometry.Rect getLargest();
     method public androidx.ui.geometry.Rect getZero();
     method public float get_giantScalar();
@@ -214,39 +214,39 @@
   }
 
   public final class RectKt {
-    method public static androidx.ui.geometry.Rect lerp(androidx.ui.geometry.Rect start, androidx.ui.geometry.Rect stop, float fraction);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Rect lerp(androidx.ui.geometry.Rect start, androidx.ui.geometry.Rect stop, float fraction);
   }
 
-  public final inline class Size {
+  @androidx.compose.Immutable public final inline class Size {
     ctor public Size();
-    method public static long bottomCenter-RIqb49o(long $this, long origin);
-    method public static long bottomLeft-RIqb49o(long $this, long origin);
-    method public static long bottomRight-RIqb49o(long $this, long origin);
-    method public static long center-RIqb49o(long $this, long origin = Offset.zero);
-    method public static long centerLeft-RIqb49o(long $this, long origin);
-    method public static long centerRight-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long bottomCenter-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long bottomLeft-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long bottomRight-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long center-RIqb49o(long $this, long origin = Offset.zero);
+    method @androidx.compose.Stable public static long centerLeft-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long centerRight-RIqb49o(long $this, long origin);
     method public static long constructor-impl(internal long value);
-    method public static boolean contains-RIqb49o(long $this, long offset);
-    method public static operator long div-impl(long $this, float operand);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static boolean contains-RIqb49o(long $this, long offset);
+    method @androidx.compose.Stable public static operator long div-impl(long $this, float operand);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
-    method public static long getFlipped-impl(long $this);
+    method @androidx.compose.Stable public static long getFlipped-impl(long $this);
     method public static float getHeight-impl(long $this);
     method public static float getMaxDimension-impl(long $this);
     method public static float getMinDimension-impl(long $this);
     method public static float getWidth-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static boolean isEmpty-impl(long $this);
-    method public static operator long minus-RIqb49o(long $this, long other);
-    method public static operator long minus-b2zCL34(long $this, long other);
-    method public static operator long plus-RIqb49o(long $this, long other);
-    method public static operator long rem-impl(long $this, float operand);
-    method public static operator long times-impl(long $this, float operand);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Stable public static boolean isEmpty-impl(long $this);
+    method @androidx.compose.Stable public static operator long minus-RIqb49o(long $this, long other);
+    method @androidx.compose.Stable public static operator long minus-b2zCL34(long $this, long other);
+    method @androidx.compose.Stable public static operator long plus-RIqb49o(long $this, long other);
+    method @androidx.compose.Stable public static operator long rem-impl(long $this, float operand);
+    method @androidx.compose.Stable public static operator long times-impl(long $this, float operand);
     method public static String toString-impl(long $this);
-    method public static long topCenter-RIqb49o(long $this, long origin);
-    method public static long topLeft-RIqb49o(long $this, long origin);
-    method public static long topRight-RIqb49o(long $this, long origin);
-    method public static long truncDiv-impl(long $this, float operand);
+    method @androidx.compose.Stable public static long topCenter-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long topLeft-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long topRight-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long truncDiv-impl(long $this, float operand);
     field public static final androidx.ui.geometry.Size.Companion! Companion;
   }
 
@@ -257,15 +257,15 @@
     method public long fromWidth(float width);
     method public long getUnspecifiedSize();
     method public long getZero();
-    method public androidx.ui.geometry.Size? lerp-T-c3OIQ(long start, long stop, float fraction);
+    method @androidx.compose.Stable public androidx.ui.geometry.Size? lerp-T-c3OIQ(long start, long stop, float fraction);
     method public long square(float dimension);
     property public final long UnspecifiedSize;
     property public final long zero;
   }
 
   public final class SizeKt {
-    method public static long Size(float width, float height);
-    method public static androidx.ui.geometry.Rect toRect-b2zCL34(long);
+    method @androidx.compose.Stable public static long Size(float width, float height);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Rect toRect-b2zCL34(long);
   }
 
 }
diff --git a/ui/ui-geometry/api/public_plus_experimental_current.txt b/ui/ui-geometry/api/public_plus_experimental_current.txt
index 540aa8a..0ca2e11 100644
--- a/ui/ui-geometry/api/public_plus_experimental_current.txt
+++ b/ui/ui-geometry/api/public_plus_experimental_current.txt
@@ -1,36 +1,36 @@
 // Signature format: 3.0
 package androidx.ui.geometry {
 
-  public final inline class Offset {
+  @androidx.compose.Immutable public final inline class Offset {
     ctor public Offset();
     method public static infix androidx.ui.geometry.Rect and-b2zCL34(long $this, long other);
     method public static long constructor-impl(internal long packedValue);
-    method public static operator long div-impl(long $this, float operand);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static operator long div-impl(long $this, float operand);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static float getDirection-impl(long $this);
-    method public static float getDistance-impl(long $this);
-    method public static float getDistanceSquared-impl(long $this);
+    method @androidx.compose.Stable public static float getDistance-impl(long $this);
+    method @androidx.compose.Stable public static float getDistanceSquared-impl(long $this);
     method public static float getDx-impl(long $this);
     method public static float getDy-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static operator long minus-RIqb49o(long $this, long other);
-    method public static operator long plus-RIqb49o(long $this, long other);
-    method public static operator long rem-impl(long $this, float operand);
-    method public static long scale-impl(long $this, float scaleX, float scaleY);
-    method public static operator long times-impl(long $this, float operand);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Stable public static operator long minus-RIqb49o(long $this, long other);
+    method @androidx.compose.Stable public static operator long plus-RIqb49o(long $this, long other);
+    method @androidx.compose.Stable public static operator long rem-impl(long $this, float operand);
+    method @androidx.compose.Stable public static long scale-impl(long $this, float scaleX, float scaleY);
+    method @androidx.compose.Stable public static operator long times-impl(long $this, float operand);
     method public static String toString-impl(long $this);
-    method public static long translate-impl(long $this, float translateX, float translateY);
+    method @androidx.compose.Stable public static long translate-impl(long $this, float translateX, float translateY);
     method public static long truncDiv-impl(long $this, float operand);
-    method public static operator long unaryMinus-impl(long $this);
+    method @androidx.compose.Stable public static operator long unaryMinus-impl(long $this);
     field public static final androidx.ui.geometry.Offset.Companion! Companion;
   }
 
   public static final class Offset.Companion {
     method public long getInfinite();
     method public long getZero();
-    method public boolean isValid-RIqb49o(long offset);
-    method public long lerp-nqy8KaQ(long start, long stop, float fraction);
+    method @androidx.compose.Stable public boolean isValid-RIqb49o(long offset);
+    method @androidx.compose.Stable public long lerp-nqy8KaQ(long start, long stop, float fraction);
     property public final long infinite;
     property public final long zero;
   }
@@ -128,43 +128,43 @@
     method public static androidx.ui.geometry.RRect withRadius(androidx.ui.geometry.RRect, androidx.ui.geometry.Radius radius);
   }
 
-  public final class Radius {
+  @androidx.compose.Immutable public final class Radius {
     ctor public Radius(float x, float y);
     method public float component1();
     method public float component2();
-    method public androidx.ui.geometry.Radius copy(float x, float y);
-    method public operator androidx.ui.geometry.Radius div(float operand);
+    method @androidx.compose.Immutable public androidx.ui.geometry.Radius copy(float x, float y);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius div(float operand);
     method public float getX();
     method public float getY();
-    method public operator androidx.ui.geometry.Radius minus(androidx.ui.geometry.Radius other);
-    method public operator androidx.ui.geometry.Radius plus(androidx.ui.geometry.Radius other);
-    method public operator androidx.ui.geometry.Radius rem(float operand);
-    method public operator androidx.ui.geometry.Radius times(float operand);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius minus(androidx.ui.geometry.Radius other);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius plus(androidx.ui.geometry.Radius other);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius rem(float operand);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius times(float operand);
     method public androidx.ui.geometry.Radius truncDiv(float operand);
-    method public operator androidx.ui.geometry.Radius unaryMinus();
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius unaryMinus();
     field public static final androidx.ui.geometry.Radius.Companion! Companion;
   }
 
   public static final class Radius.Companion {
-    method public androidx.ui.geometry.Radius circular(float radius);
-    method public androidx.ui.geometry.Radius elliptical(float x, float y);
+    method @androidx.compose.Stable public androidx.ui.geometry.Radius circular(float radius);
+    method @androidx.compose.Stable public androidx.ui.geometry.Radius elliptical(float x, float y);
     method public androidx.ui.geometry.Radius getZero();
     property public final androidx.ui.geometry.Radius zero;
   }
 
   public final class RadiusKt {
-    method public static androidx.ui.geometry.Radius lerp(androidx.ui.geometry.Radius start, androidx.ui.geometry.Radius stop, float fraction);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Radius lerp(androidx.ui.geometry.Radius start, androidx.ui.geometry.Radius stop, float fraction);
   }
 
-  public final class Rect {
+  @androidx.compose.Immutable public final class Rect {
     ctor public Rect(float left, float top, float right, float bottom);
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
     method public boolean contains-RIqb49o(long offset);
-    method public androidx.ui.geometry.Rect copy(float left, float top, float right, float bottom);
-    method public androidx.ui.geometry.Rect deflate(float delta);
+    method @androidx.compose.Immutable public androidx.ui.geometry.Rect copy(float left, float top, float right, float bottom);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect deflate(float delta);
     method public androidx.ui.geometry.Rect expandToInclude(androidx.ui.geometry.Rect other);
     method public float getBottom();
     method public long getBottomCenter();
@@ -184,15 +184,15 @@
     method public long getTopLeft();
     method public long getTopRight();
     method public float getWidth();
-    method public androidx.ui.geometry.Rect inflate(float delta);
-    method public androidx.ui.geometry.Rect intersect(androidx.ui.geometry.Rect other);
-    method public boolean isEmpty();
-    method public boolean isFinite();
-    method public boolean isInfinite();
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect inflate(float delta);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect intersect(androidx.ui.geometry.Rect other);
+    method @androidx.compose.Stable public boolean isEmpty();
+    method @androidx.compose.Stable public boolean isFinite();
+    method @androidx.compose.Stable public boolean isInfinite();
     method public androidx.ui.geometry.Rect join(androidx.ui.geometry.Rect other);
     method public boolean overlaps(androidx.ui.geometry.Rect other);
-    method public androidx.ui.geometry.Rect shift-RIqb49o(long offset);
-    method public androidx.ui.geometry.Rect translate(float translateX, float translateY);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect shift-RIqb49o(long offset);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect translate(float translateX, float translateY);
     property public final float height;
     property public final float maxDimension;
     property public final float minDimension;
@@ -201,10 +201,10 @@
   }
 
   public static final class Rect.Companion {
-    method public androidx.ui.geometry.Rect fromCircle-hSKLB2U(long center, float radius);
-    method public androidx.ui.geometry.Rect fromLTRB(float left, float top, float right, float bottom);
-    method public androidx.ui.geometry.Rect fromLTWH(float left, float top, float width, float height);
-    method public androidx.ui.geometry.Rect fromPoints-cs1Rg_A(long a, long b);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect fromCircle-hSKLB2U(long center, float radius);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect fromLTRB(float left, float top, float right, float bottom);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect fromLTWH(float left, float top, float width, float height);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect fromPoints-cs1Rg_A(long a, long b);
     method public androidx.ui.geometry.Rect getLargest();
     method public androidx.ui.geometry.Rect getZero();
     method public float get_giantScalar();
@@ -214,39 +214,39 @@
   }
 
   public final class RectKt {
-    method public static androidx.ui.geometry.Rect lerp(androidx.ui.geometry.Rect start, androidx.ui.geometry.Rect stop, float fraction);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Rect lerp(androidx.ui.geometry.Rect start, androidx.ui.geometry.Rect stop, float fraction);
   }
 
-  public final inline class Size {
+  @androidx.compose.Immutable public final inline class Size {
     ctor public Size();
-    method public static long bottomCenter-RIqb49o(long $this, long origin);
-    method public static long bottomLeft-RIqb49o(long $this, long origin);
-    method public static long bottomRight-RIqb49o(long $this, long origin);
-    method public static long center-RIqb49o(long $this, long origin = Offset.zero);
-    method public static long centerLeft-RIqb49o(long $this, long origin);
-    method public static long centerRight-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long bottomCenter-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long bottomLeft-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long bottomRight-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long center-RIqb49o(long $this, long origin = Offset.zero);
+    method @androidx.compose.Stable public static long centerLeft-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long centerRight-RIqb49o(long $this, long origin);
     method public static long constructor-impl(internal long value);
-    method public static boolean contains-RIqb49o(long $this, long offset);
-    method public static operator long div-impl(long $this, float operand);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static boolean contains-RIqb49o(long $this, long offset);
+    method @androidx.compose.Stable public static operator long div-impl(long $this, float operand);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
-    method public static long getFlipped-impl(long $this);
+    method @androidx.compose.Stable public static long getFlipped-impl(long $this);
     method public static float getHeight-impl(long $this);
     method public static float getMaxDimension-impl(long $this);
     method public static float getMinDimension-impl(long $this);
     method public static float getWidth-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static boolean isEmpty-impl(long $this);
-    method public static operator long minus-RIqb49o(long $this, long other);
-    method public static operator long minus-b2zCL34(long $this, long other);
-    method public static operator long plus-RIqb49o(long $this, long other);
-    method public static operator long rem-impl(long $this, float operand);
-    method public static operator long times-impl(long $this, float operand);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Stable public static boolean isEmpty-impl(long $this);
+    method @androidx.compose.Stable public static operator long minus-RIqb49o(long $this, long other);
+    method @androidx.compose.Stable public static operator long minus-b2zCL34(long $this, long other);
+    method @androidx.compose.Stable public static operator long plus-RIqb49o(long $this, long other);
+    method @androidx.compose.Stable public static operator long rem-impl(long $this, float operand);
+    method @androidx.compose.Stable public static operator long times-impl(long $this, float operand);
     method public static String toString-impl(long $this);
-    method public static long topCenter-RIqb49o(long $this, long origin);
-    method public static long topLeft-RIqb49o(long $this, long origin);
-    method public static long topRight-RIqb49o(long $this, long origin);
-    method public static long truncDiv-impl(long $this, float operand);
+    method @androidx.compose.Stable public static long topCenter-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long topLeft-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long topRight-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long truncDiv-impl(long $this, float operand);
     field public static final androidx.ui.geometry.Size.Companion! Companion;
   }
 
@@ -257,15 +257,15 @@
     method public long fromWidth(float width);
     method public long getUnspecifiedSize();
     method public long getZero();
-    method public androidx.ui.geometry.Size? lerp-T-c3OIQ(long start, long stop, float fraction);
+    method @androidx.compose.Stable public androidx.ui.geometry.Size? lerp-T-c3OIQ(long start, long stop, float fraction);
     method public long square(float dimension);
     property public final long UnspecifiedSize;
     property public final long zero;
   }
 
   public final class SizeKt {
-    method public static long Size(float width, float height);
-    method public static androidx.ui.geometry.Rect toRect-b2zCL34(long);
+    method @androidx.compose.Stable public static long Size(float width, float height);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Rect toRect-b2zCL34(long);
   }
 
 }
diff --git a/ui/ui-geometry/api/restricted_0.1.0-dev14.txt b/ui/ui-geometry/api/restricted_0.1.0-dev14.txt
index 540aa8a..0ca2e11 100644
--- a/ui/ui-geometry/api/restricted_0.1.0-dev14.txt
+++ b/ui/ui-geometry/api/restricted_0.1.0-dev14.txt
@@ -1,36 +1,36 @@
 // Signature format: 3.0
 package androidx.ui.geometry {
 
-  public final inline class Offset {
+  @androidx.compose.Immutable public final inline class Offset {
     ctor public Offset();
     method public static infix androidx.ui.geometry.Rect and-b2zCL34(long $this, long other);
     method public static long constructor-impl(internal long packedValue);
-    method public static operator long div-impl(long $this, float operand);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static operator long div-impl(long $this, float operand);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static float getDirection-impl(long $this);
-    method public static float getDistance-impl(long $this);
-    method public static float getDistanceSquared-impl(long $this);
+    method @androidx.compose.Stable public static float getDistance-impl(long $this);
+    method @androidx.compose.Stable public static float getDistanceSquared-impl(long $this);
     method public static float getDx-impl(long $this);
     method public static float getDy-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static operator long minus-RIqb49o(long $this, long other);
-    method public static operator long plus-RIqb49o(long $this, long other);
-    method public static operator long rem-impl(long $this, float operand);
-    method public static long scale-impl(long $this, float scaleX, float scaleY);
-    method public static operator long times-impl(long $this, float operand);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Stable public static operator long minus-RIqb49o(long $this, long other);
+    method @androidx.compose.Stable public static operator long plus-RIqb49o(long $this, long other);
+    method @androidx.compose.Stable public static operator long rem-impl(long $this, float operand);
+    method @androidx.compose.Stable public static long scale-impl(long $this, float scaleX, float scaleY);
+    method @androidx.compose.Stable public static operator long times-impl(long $this, float operand);
     method public static String toString-impl(long $this);
-    method public static long translate-impl(long $this, float translateX, float translateY);
+    method @androidx.compose.Stable public static long translate-impl(long $this, float translateX, float translateY);
     method public static long truncDiv-impl(long $this, float operand);
-    method public static operator long unaryMinus-impl(long $this);
+    method @androidx.compose.Stable public static operator long unaryMinus-impl(long $this);
     field public static final androidx.ui.geometry.Offset.Companion! Companion;
   }
 
   public static final class Offset.Companion {
     method public long getInfinite();
     method public long getZero();
-    method public boolean isValid-RIqb49o(long offset);
-    method public long lerp-nqy8KaQ(long start, long stop, float fraction);
+    method @androidx.compose.Stable public boolean isValid-RIqb49o(long offset);
+    method @androidx.compose.Stable public long lerp-nqy8KaQ(long start, long stop, float fraction);
     property public final long infinite;
     property public final long zero;
   }
@@ -128,43 +128,43 @@
     method public static androidx.ui.geometry.RRect withRadius(androidx.ui.geometry.RRect, androidx.ui.geometry.Radius radius);
   }
 
-  public final class Radius {
+  @androidx.compose.Immutable public final class Radius {
     ctor public Radius(float x, float y);
     method public float component1();
     method public float component2();
-    method public androidx.ui.geometry.Radius copy(float x, float y);
-    method public operator androidx.ui.geometry.Radius div(float operand);
+    method @androidx.compose.Immutable public androidx.ui.geometry.Radius copy(float x, float y);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius div(float operand);
     method public float getX();
     method public float getY();
-    method public operator androidx.ui.geometry.Radius minus(androidx.ui.geometry.Radius other);
-    method public operator androidx.ui.geometry.Radius plus(androidx.ui.geometry.Radius other);
-    method public operator androidx.ui.geometry.Radius rem(float operand);
-    method public operator androidx.ui.geometry.Radius times(float operand);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius minus(androidx.ui.geometry.Radius other);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius plus(androidx.ui.geometry.Radius other);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius rem(float operand);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius times(float operand);
     method public androidx.ui.geometry.Radius truncDiv(float operand);
-    method public operator androidx.ui.geometry.Radius unaryMinus();
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius unaryMinus();
     field public static final androidx.ui.geometry.Radius.Companion! Companion;
   }
 
   public static final class Radius.Companion {
-    method public androidx.ui.geometry.Radius circular(float radius);
-    method public androidx.ui.geometry.Radius elliptical(float x, float y);
+    method @androidx.compose.Stable public androidx.ui.geometry.Radius circular(float radius);
+    method @androidx.compose.Stable public androidx.ui.geometry.Radius elliptical(float x, float y);
     method public androidx.ui.geometry.Radius getZero();
     property public final androidx.ui.geometry.Radius zero;
   }
 
   public final class RadiusKt {
-    method public static androidx.ui.geometry.Radius lerp(androidx.ui.geometry.Radius start, androidx.ui.geometry.Radius stop, float fraction);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Radius lerp(androidx.ui.geometry.Radius start, androidx.ui.geometry.Radius stop, float fraction);
   }
 
-  public final class Rect {
+  @androidx.compose.Immutable public final class Rect {
     ctor public Rect(float left, float top, float right, float bottom);
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
     method public boolean contains-RIqb49o(long offset);
-    method public androidx.ui.geometry.Rect copy(float left, float top, float right, float bottom);
-    method public androidx.ui.geometry.Rect deflate(float delta);
+    method @androidx.compose.Immutable public androidx.ui.geometry.Rect copy(float left, float top, float right, float bottom);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect deflate(float delta);
     method public androidx.ui.geometry.Rect expandToInclude(androidx.ui.geometry.Rect other);
     method public float getBottom();
     method public long getBottomCenter();
@@ -184,15 +184,15 @@
     method public long getTopLeft();
     method public long getTopRight();
     method public float getWidth();
-    method public androidx.ui.geometry.Rect inflate(float delta);
-    method public androidx.ui.geometry.Rect intersect(androidx.ui.geometry.Rect other);
-    method public boolean isEmpty();
-    method public boolean isFinite();
-    method public boolean isInfinite();
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect inflate(float delta);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect intersect(androidx.ui.geometry.Rect other);
+    method @androidx.compose.Stable public boolean isEmpty();
+    method @androidx.compose.Stable public boolean isFinite();
+    method @androidx.compose.Stable public boolean isInfinite();
     method public androidx.ui.geometry.Rect join(androidx.ui.geometry.Rect other);
     method public boolean overlaps(androidx.ui.geometry.Rect other);
-    method public androidx.ui.geometry.Rect shift-RIqb49o(long offset);
-    method public androidx.ui.geometry.Rect translate(float translateX, float translateY);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect shift-RIqb49o(long offset);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect translate(float translateX, float translateY);
     property public final float height;
     property public final float maxDimension;
     property public final float minDimension;
@@ -201,10 +201,10 @@
   }
 
   public static final class Rect.Companion {
-    method public androidx.ui.geometry.Rect fromCircle-hSKLB2U(long center, float radius);
-    method public androidx.ui.geometry.Rect fromLTRB(float left, float top, float right, float bottom);
-    method public androidx.ui.geometry.Rect fromLTWH(float left, float top, float width, float height);
-    method public androidx.ui.geometry.Rect fromPoints-cs1Rg_A(long a, long b);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect fromCircle-hSKLB2U(long center, float radius);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect fromLTRB(float left, float top, float right, float bottom);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect fromLTWH(float left, float top, float width, float height);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect fromPoints-cs1Rg_A(long a, long b);
     method public androidx.ui.geometry.Rect getLargest();
     method public androidx.ui.geometry.Rect getZero();
     method public float get_giantScalar();
@@ -214,39 +214,39 @@
   }
 
   public final class RectKt {
-    method public static androidx.ui.geometry.Rect lerp(androidx.ui.geometry.Rect start, androidx.ui.geometry.Rect stop, float fraction);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Rect lerp(androidx.ui.geometry.Rect start, androidx.ui.geometry.Rect stop, float fraction);
   }
 
-  public final inline class Size {
+  @androidx.compose.Immutable public final inline class Size {
     ctor public Size();
-    method public static long bottomCenter-RIqb49o(long $this, long origin);
-    method public static long bottomLeft-RIqb49o(long $this, long origin);
-    method public static long bottomRight-RIqb49o(long $this, long origin);
-    method public static long center-RIqb49o(long $this, long origin = Offset.zero);
-    method public static long centerLeft-RIqb49o(long $this, long origin);
-    method public static long centerRight-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long bottomCenter-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long bottomLeft-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long bottomRight-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long center-RIqb49o(long $this, long origin = Offset.zero);
+    method @androidx.compose.Stable public static long centerLeft-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long centerRight-RIqb49o(long $this, long origin);
     method public static long constructor-impl(internal long value);
-    method public static boolean contains-RIqb49o(long $this, long offset);
-    method public static operator long div-impl(long $this, float operand);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static boolean contains-RIqb49o(long $this, long offset);
+    method @androidx.compose.Stable public static operator long div-impl(long $this, float operand);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
-    method public static long getFlipped-impl(long $this);
+    method @androidx.compose.Stable public static long getFlipped-impl(long $this);
     method public static float getHeight-impl(long $this);
     method public static float getMaxDimension-impl(long $this);
     method public static float getMinDimension-impl(long $this);
     method public static float getWidth-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static boolean isEmpty-impl(long $this);
-    method public static operator long minus-RIqb49o(long $this, long other);
-    method public static operator long minus-b2zCL34(long $this, long other);
-    method public static operator long plus-RIqb49o(long $this, long other);
-    method public static operator long rem-impl(long $this, float operand);
-    method public static operator long times-impl(long $this, float operand);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Stable public static boolean isEmpty-impl(long $this);
+    method @androidx.compose.Stable public static operator long minus-RIqb49o(long $this, long other);
+    method @androidx.compose.Stable public static operator long minus-b2zCL34(long $this, long other);
+    method @androidx.compose.Stable public static operator long plus-RIqb49o(long $this, long other);
+    method @androidx.compose.Stable public static operator long rem-impl(long $this, float operand);
+    method @androidx.compose.Stable public static operator long times-impl(long $this, float operand);
     method public static String toString-impl(long $this);
-    method public static long topCenter-RIqb49o(long $this, long origin);
-    method public static long topLeft-RIqb49o(long $this, long origin);
-    method public static long topRight-RIqb49o(long $this, long origin);
-    method public static long truncDiv-impl(long $this, float operand);
+    method @androidx.compose.Stable public static long topCenter-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long topLeft-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long topRight-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long truncDiv-impl(long $this, float operand);
     field public static final androidx.ui.geometry.Size.Companion! Companion;
   }
 
@@ -257,15 +257,15 @@
     method public long fromWidth(float width);
     method public long getUnspecifiedSize();
     method public long getZero();
-    method public androidx.ui.geometry.Size? lerp-T-c3OIQ(long start, long stop, float fraction);
+    method @androidx.compose.Stable public androidx.ui.geometry.Size? lerp-T-c3OIQ(long start, long stop, float fraction);
     method public long square(float dimension);
     property public final long UnspecifiedSize;
     property public final long zero;
   }
 
   public final class SizeKt {
-    method public static long Size(float width, float height);
-    method public static androidx.ui.geometry.Rect toRect-b2zCL34(long);
+    method @androidx.compose.Stable public static long Size(float width, float height);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Rect toRect-b2zCL34(long);
   }
 
 }
diff --git a/ui/ui-geometry/api/restricted_current.txt b/ui/ui-geometry/api/restricted_current.txt
index 540aa8a..0ca2e11 100644
--- a/ui/ui-geometry/api/restricted_current.txt
+++ b/ui/ui-geometry/api/restricted_current.txt
@@ -1,36 +1,36 @@
 // Signature format: 3.0
 package androidx.ui.geometry {
 
-  public final inline class Offset {
+  @androidx.compose.Immutable public final inline class Offset {
     ctor public Offset();
     method public static infix androidx.ui.geometry.Rect and-b2zCL34(long $this, long other);
     method public static long constructor-impl(internal long packedValue);
-    method public static operator long div-impl(long $this, float operand);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static operator long div-impl(long $this, float operand);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static float getDirection-impl(long $this);
-    method public static float getDistance-impl(long $this);
-    method public static float getDistanceSquared-impl(long $this);
+    method @androidx.compose.Stable public static float getDistance-impl(long $this);
+    method @androidx.compose.Stable public static float getDistanceSquared-impl(long $this);
     method public static float getDx-impl(long $this);
     method public static float getDy-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static operator long minus-RIqb49o(long $this, long other);
-    method public static operator long plus-RIqb49o(long $this, long other);
-    method public static operator long rem-impl(long $this, float operand);
-    method public static long scale-impl(long $this, float scaleX, float scaleY);
-    method public static operator long times-impl(long $this, float operand);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Stable public static operator long minus-RIqb49o(long $this, long other);
+    method @androidx.compose.Stable public static operator long plus-RIqb49o(long $this, long other);
+    method @androidx.compose.Stable public static operator long rem-impl(long $this, float operand);
+    method @androidx.compose.Stable public static long scale-impl(long $this, float scaleX, float scaleY);
+    method @androidx.compose.Stable public static operator long times-impl(long $this, float operand);
     method public static String toString-impl(long $this);
-    method public static long translate-impl(long $this, float translateX, float translateY);
+    method @androidx.compose.Stable public static long translate-impl(long $this, float translateX, float translateY);
     method public static long truncDiv-impl(long $this, float operand);
-    method public static operator long unaryMinus-impl(long $this);
+    method @androidx.compose.Stable public static operator long unaryMinus-impl(long $this);
     field public static final androidx.ui.geometry.Offset.Companion! Companion;
   }
 
   public static final class Offset.Companion {
     method public long getInfinite();
     method public long getZero();
-    method public boolean isValid-RIqb49o(long offset);
-    method public long lerp-nqy8KaQ(long start, long stop, float fraction);
+    method @androidx.compose.Stable public boolean isValid-RIqb49o(long offset);
+    method @androidx.compose.Stable public long lerp-nqy8KaQ(long start, long stop, float fraction);
     property public final long infinite;
     property public final long zero;
   }
@@ -128,43 +128,43 @@
     method public static androidx.ui.geometry.RRect withRadius(androidx.ui.geometry.RRect, androidx.ui.geometry.Radius radius);
   }
 
-  public final class Radius {
+  @androidx.compose.Immutable public final class Radius {
     ctor public Radius(float x, float y);
     method public float component1();
     method public float component2();
-    method public androidx.ui.geometry.Radius copy(float x, float y);
-    method public operator androidx.ui.geometry.Radius div(float operand);
+    method @androidx.compose.Immutable public androidx.ui.geometry.Radius copy(float x, float y);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius div(float operand);
     method public float getX();
     method public float getY();
-    method public operator androidx.ui.geometry.Radius minus(androidx.ui.geometry.Radius other);
-    method public operator androidx.ui.geometry.Radius plus(androidx.ui.geometry.Radius other);
-    method public operator androidx.ui.geometry.Radius rem(float operand);
-    method public operator androidx.ui.geometry.Radius times(float operand);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius minus(androidx.ui.geometry.Radius other);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius plus(androidx.ui.geometry.Radius other);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius rem(float operand);
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius times(float operand);
     method public androidx.ui.geometry.Radius truncDiv(float operand);
-    method public operator androidx.ui.geometry.Radius unaryMinus();
+    method @androidx.compose.Stable public operator androidx.ui.geometry.Radius unaryMinus();
     field public static final androidx.ui.geometry.Radius.Companion! Companion;
   }
 
   public static final class Radius.Companion {
-    method public androidx.ui.geometry.Radius circular(float radius);
-    method public androidx.ui.geometry.Radius elliptical(float x, float y);
+    method @androidx.compose.Stable public androidx.ui.geometry.Radius circular(float radius);
+    method @androidx.compose.Stable public androidx.ui.geometry.Radius elliptical(float x, float y);
     method public androidx.ui.geometry.Radius getZero();
     property public final androidx.ui.geometry.Radius zero;
   }
 
   public final class RadiusKt {
-    method public static androidx.ui.geometry.Radius lerp(androidx.ui.geometry.Radius start, androidx.ui.geometry.Radius stop, float fraction);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Radius lerp(androidx.ui.geometry.Radius start, androidx.ui.geometry.Radius stop, float fraction);
   }
 
-  public final class Rect {
+  @androidx.compose.Immutable public final class Rect {
     ctor public Rect(float left, float top, float right, float bottom);
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
     method public boolean contains-RIqb49o(long offset);
-    method public androidx.ui.geometry.Rect copy(float left, float top, float right, float bottom);
-    method public androidx.ui.geometry.Rect deflate(float delta);
+    method @androidx.compose.Immutable public androidx.ui.geometry.Rect copy(float left, float top, float right, float bottom);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect deflate(float delta);
     method public androidx.ui.geometry.Rect expandToInclude(androidx.ui.geometry.Rect other);
     method public float getBottom();
     method public long getBottomCenter();
@@ -184,15 +184,15 @@
     method public long getTopLeft();
     method public long getTopRight();
     method public float getWidth();
-    method public androidx.ui.geometry.Rect inflate(float delta);
-    method public androidx.ui.geometry.Rect intersect(androidx.ui.geometry.Rect other);
-    method public boolean isEmpty();
-    method public boolean isFinite();
-    method public boolean isInfinite();
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect inflate(float delta);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect intersect(androidx.ui.geometry.Rect other);
+    method @androidx.compose.Stable public boolean isEmpty();
+    method @androidx.compose.Stable public boolean isFinite();
+    method @androidx.compose.Stable public boolean isInfinite();
     method public androidx.ui.geometry.Rect join(androidx.ui.geometry.Rect other);
     method public boolean overlaps(androidx.ui.geometry.Rect other);
-    method public androidx.ui.geometry.Rect shift-RIqb49o(long offset);
-    method public androidx.ui.geometry.Rect translate(float translateX, float translateY);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect shift-RIqb49o(long offset);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect translate(float translateX, float translateY);
     property public final float height;
     property public final float maxDimension;
     property public final float minDimension;
@@ -201,10 +201,10 @@
   }
 
   public static final class Rect.Companion {
-    method public androidx.ui.geometry.Rect fromCircle-hSKLB2U(long center, float radius);
-    method public androidx.ui.geometry.Rect fromLTRB(float left, float top, float right, float bottom);
-    method public androidx.ui.geometry.Rect fromLTWH(float left, float top, float width, float height);
-    method public androidx.ui.geometry.Rect fromPoints-cs1Rg_A(long a, long b);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect fromCircle-hSKLB2U(long center, float radius);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect fromLTRB(float left, float top, float right, float bottom);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect fromLTWH(float left, float top, float width, float height);
+    method @androidx.compose.Stable public androidx.ui.geometry.Rect fromPoints-cs1Rg_A(long a, long b);
     method public androidx.ui.geometry.Rect getLargest();
     method public androidx.ui.geometry.Rect getZero();
     method public float get_giantScalar();
@@ -214,39 +214,39 @@
   }
 
   public final class RectKt {
-    method public static androidx.ui.geometry.Rect lerp(androidx.ui.geometry.Rect start, androidx.ui.geometry.Rect stop, float fraction);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Rect lerp(androidx.ui.geometry.Rect start, androidx.ui.geometry.Rect stop, float fraction);
   }
 
-  public final inline class Size {
+  @androidx.compose.Immutable public final inline class Size {
     ctor public Size();
-    method public static long bottomCenter-RIqb49o(long $this, long origin);
-    method public static long bottomLeft-RIqb49o(long $this, long origin);
-    method public static long bottomRight-RIqb49o(long $this, long origin);
-    method public static long center-RIqb49o(long $this, long origin = Offset.zero);
-    method public static long centerLeft-RIqb49o(long $this, long origin);
-    method public static long centerRight-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long bottomCenter-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long bottomLeft-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long bottomRight-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long center-RIqb49o(long $this, long origin = Offset.zero);
+    method @androidx.compose.Stable public static long centerLeft-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long centerRight-RIqb49o(long $this, long origin);
     method public static long constructor-impl(internal long value);
-    method public static boolean contains-RIqb49o(long $this, long offset);
-    method public static operator long div-impl(long $this, float operand);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static boolean contains-RIqb49o(long $this, long offset);
+    method @androidx.compose.Stable public static operator long div-impl(long $this, float operand);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
-    method public static long getFlipped-impl(long $this);
+    method @androidx.compose.Stable public static long getFlipped-impl(long $this);
     method public static float getHeight-impl(long $this);
     method public static float getMaxDimension-impl(long $this);
     method public static float getMinDimension-impl(long $this);
     method public static float getWidth-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static boolean isEmpty-impl(long $this);
-    method public static operator long minus-RIqb49o(long $this, long other);
-    method public static operator long minus-b2zCL34(long $this, long other);
-    method public static operator long plus-RIqb49o(long $this, long other);
-    method public static operator long rem-impl(long $this, float operand);
-    method public static operator long times-impl(long $this, float operand);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Stable public static boolean isEmpty-impl(long $this);
+    method @androidx.compose.Stable public static operator long minus-RIqb49o(long $this, long other);
+    method @androidx.compose.Stable public static operator long minus-b2zCL34(long $this, long other);
+    method @androidx.compose.Stable public static operator long plus-RIqb49o(long $this, long other);
+    method @androidx.compose.Stable public static operator long rem-impl(long $this, float operand);
+    method @androidx.compose.Stable public static operator long times-impl(long $this, float operand);
     method public static String toString-impl(long $this);
-    method public static long topCenter-RIqb49o(long $this, long origin);
-    method public static long topLeft-RIqb49o(long $this, long origin);
-    method public static long topRight-RIqb49o(long $this, long origin);
-    method public static long truncDiv-impl(long $this, float operand);
+    method @androidx.compose.Stable public static long topCenter-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long topLeft-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long topRight-RIqb49o(long $this, long origin);
+    method @androidx.compose.Stable public static long truncDiv-impl(long $this, float operand);
     field public static final androidx.ui.geometry.Size.Companion! Companion;
   }
 
@@ -257,15 +257,15 @@
     method public long fromWidth(float width);
     method public long getUnspecifiedSize();
     method public long getZero();
-    method public androidx.ui.geometry.Size? lerp-T-c3OIQ(long start, long stop, float fraction);
+    method @androidx.compose.Stable public androidx.ui.geometry.Size? lerp-T-c3OIQ(long start, long stop, float fraction);
     method public long square(float dimension);
     property public final long UnspecifiedSize;
     property public final long zero;
   }
 
   public final class SizeKt {
-    method public static long Size(float width, float height);
-    method public static androidx.ui.geometry.Rect toRect-b2zCL34(long);
+    method @androidx.compose.Stable public static long Size(float width, float height);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Rect toRect-b2zCL34(long);
   }
 
 }
diff --git a/ui/ui-graphics/api/0.1.0-dev14.txt b/ui/ui-graphics/api/0.1.0-dev14.txt
index 5be0e7e..5dcafe7 100644
--- a/ui/ui-graphics/api/0.1.0-dev14.txt
+++ b/ui/ui-graphics/api/0.1.0-dev14.txt
@@ -186,17 +186,17 @@
     enum_constant public static final androidx.ui.graphics.ClipOp intersect;
   }
 
-  public final inline class Color {
+  @androidx.compose.Immutable public final inline class Color {
     ctor public Color();
-    method public static operator float component1-impl(long $this);
-    method public static operator float component2-impl(long $this);
-    method public static operator float component3-impl(long $this);
-    method public static operator float component4-impl(long $this);
-    method public static operator androidx.ui.graphics.colorspace.ColorSpace component5-impl(long $this);
+    method @androidx.compose.Stable public static operator float component1-impl(long $this);
+    method @androidx.compose.Stable public static operator float component2-impl(long $this);
+    method @androidx.compose.Stable public static operator float component3-impl(long $this);
+    method @androidx.compose.Stable public static operator float component4-impl(long $this);
+    method @androidx.compose.Stable public static operator androidx.ui.graphics.colorspace.ColorSpace component5-impl(long $this);
     method public static long constructor-impl(long value);
     method public static long convert-impl(long $this, androidx.ui.graphics.colorspace.ColorSpace colorSpace);
-    method public static long copy-impl(long $this, float alpha = this.alpha, float red = this.red, float green = this.green, float blue = this.blue);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static long copy-impl(long $this, float alpha = this.alpha, float red = this.red, float green = this.green, float blue = this.blue);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static float getAlpha-impl(long $this);
     method public static float getBlue-impl(long $this);
@@ -204,7 +204,7 @@
     method public static float getGreen-impl(long $this);
     method public static float getRed-impl(long $this);
     method public long getValue();
-    method public static inline int hashCode-impl(long p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
     method public static String toString-impl(long $this);
     field public static final androidx.ui.graphics.Color.Companion! Companion;
   }
@@ -238,30 +238,30 @@
     property public final long Yellow;
   }
 
-  public final class ColorFilter {
+  @androidx.compose.Immutable public final class ColorFilter {
     method public long component1();
     method public androidx.ui.graphics.BlendMode component2();
-    method public androidx.ui.graphics.ColorFilter copy-vOa7YyA(long color, androidx.ui.graphics.BlendMode blendMode);
+    method @androidx.compose.Immutable public androidx.ui.graphics.ColorFilter copy-vOa7YyA(long color, androidx.ui.graphics.BlendMode blendMode);
     method public androidx.ui.graphics.BlendMode getBlendMode();
     method public long getColor();
     field public static final androidx.ui.graphics.ColorFilter.Companion! Companion;
   }
 
   public static final class ColorFilter.Companion {
-    method public androidx.ui.graphics.ColorFilter tint-QEYXlZo(long color);
+    method @androidx.compose.Stable public androidx.ui.graphics.ColorFilter tint-QEYXlZo(long color);
   }
 
   public final class ColorKt {
-    method public static long Color(float red, float green, float blue, float alpha = 1f, androidx.ui.graphics.colorspace.ColorSpace colorSpace = ColorSpaces.Srgb);
-    method public static long Color(@ColorInt int color);
-    method public static long Color(long color);
-    method public static long Color(@IntRange(from=0, to=255) int red, @IntRange(from=0, to=255) int green, @IntRange(from=0, to=255) int blue, @IntRange(from=0, to=255) int alpha = 0xFF);
-    method public static long compositeOver-MsF30Tg(long, long background);
+    method @androidx.compose.Stable public static long Color(float red, float green, float blue, float alpha = 1f, androidx.ui.graphics.colorspace.ColorSpace colorSpace = ColorSpaces.Srgb);
+    method @androidx.compose.Stable public static long Color(@ColorInt int color);
+    method @androidx.compose.Stable public static long Color(long color);
+    method @androidx.compose.Stable public static long Color(@IntRange(from=0, to=255) int red, @IntRange(from=0, to=255) int green, @IntRange(from=0, to=255) int blue, @IntRange(from=0, to=255) int alpha = 0xFF);
+    method @androidx.compose.Stable public static long compositeOver-MsF30Tg(long, long background);
     method public static inline boolean isSet-QEYXlZo(long);
     method public static inline boolean isUnset-QEYXlZo(long);
-    method public static long lerp-hhXNEtA(long start, long stop, @FloatRange(from=0.0, to=1.0) float fraction);
-    method public static float luminance-QEYXlZo(long);
-    method @ColorInt public static int toArgb-QEYXlZo(long);
+    method @androidx.compose.Stable public static long lerp-hhXNEtA(long start, long stop, @FloatRange(from=0.0, to=1.0) float fraction);
+    method @androidx.compose.Stable public static float luminance-QEYXlZo(long);
+    method @ColorInt @androidx.compose.Stable public static int toArgb-QEYXlZo(long);
     method public static inline long useOrElse-4UtWFt0(long, kotlin.jvm.functions.Function0<androidx.ui.graphics.Color> block);
   }
 
@@ -495,11 +495,11 @@
     method public static android.graphics.Shader RadialGradientShader-nSjqbmE(long center, float radius, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
   }
 
-  public final class Shadow {
+  @androidx.compose.Immutable public final class Shadow {
     method public long component1();
     method public long component2();
     method public float component3();
-    method public androidx.ui.graphics.Shadow copy-hgWLwZA(long color, long offset, float blurRadius);
+    method @androidx.compose.Immutable public androidx.ui.graphics.Shadow copy-hgWLwZA(long color, long offset, float blurRadius);
     method public float getBlurRadius();
     method public long getColor();
     method public long getOffset();
@@ -512,10 +512,10 @@
   }
 
   public final class ShadowKt {
-    method public static androidx.ui.graphics.Shadow lerp(androidx.ui.graphics.Shadow start, androidx.ui.graphics.Shadow stop, float fraction);
+    method @androidx.compose.Stable public static androidx.ui.graphics.Shadow lerp(androidx.ui.graphics.Shadow start, androidx.ui.graphics.Shadow stop, float fraction);
   }
 
-  public interface Shape {
+  @androidx.compose.Immutable public interface Shape {
     method public androidx.ui.graphics.Outline createOutline-SwJi8iY(long size, androidx.ui.unit.Density density);
   }
 
diff --git a/ui/ui-graphics/api/current.txt b/ui/ui-graphics/api/current.txt
index 5be0e7e..5dcafe7 100644
--- a/ui/ui-graphics/api/current.txt
+++ b/ui/ui-graphics/api/current.txt
@@ -186,17 +186,17 @@
     enum_constant public static final androidx.ui.graphics.ClipOp intersect;
   }
 
-  public final inline class Color {
+  @androidx.compose.Immutable public final inline class Color {
     ctor public Color();
-    method public static operator float component1-impl(long $this);
-    method public static operator float component2-impl(long $this);
-    method public static operator float component3-impl(long $this);
-    method public static operator float component4-impl(long $this);
-    method public static operator androidx.ui.graphics.colorspace.ColorSpace component5-impl(long $this);
+    method @androidx.compose.Stable public static operator float component1-impl(long $this);
+    method @androidx.compose.Stable public static operator float component2-impl(long $this);
+    method @androidx.compose.Stable public static operator float component3-impl(long $this);
+    method @androidx.compose.Stable public static operator float component4-impl(long $this);
+    method @androidx.compose.Stable public static operator androidx.ui.graphics.colorspace.ColorSpace component5-impl(long $this);
     method public static long constructor-impl(long value);
     method public static long convert-impl(long $this, androidx.ui.graphics.colorspace.ColorSpace colorSpace);
-    method public static long copy-impl(long $this, float alpha = this.alpha, float red = this.red, float green = this.green, float blue = this.blue);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static long copy-impl(long $this, float alpha = this.alpha, float red = this.red, float green = this.green, float blue = this.blue);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static float getAlpha-impl(long $this);
     method public static float getBlue-impl(long $this);
@@ -204,7 +204,7 @@
     method public static float getGreen-impl(long $this);
     method public static float getRed-impl(long $this);
     method public long getValue();
-    method public static inline int hashCode-impl(long p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
     method public static String toString-impl(long $this);
     field public static final androidx.ui.graphics.Color.Companion! Companion;
   }
@@ -238,30 +238,30 @@
     property public final long Yellow;
   }
 
-  public final class ColorFilter {
+  @androidx.compose.Immutable public final class ColorFilter {
     method public long component1();
     method public androidx.ui.graphics.BlendMode component2();
-    method public androidx.ui.graphics.ColorFilter copy-vOa7YyA(long color, androidx.ui.graphics.BlendMode blendMode);
+    method @androidx.compose.Immutable public androidx.ui.graphics.ColorFilter copy-vOa7YyA(long color, androidx.ui.graphics.BlendMode blendMode);
     method public androidx.ui.graphics.BlendMode getBlendMode();
     method public long getColor();
     field public static final androidx.ui.graphics.ColorFilter.Companion! Companion;
   }
 
   public static final class ColorFilter.Companion {
-    method public androidx.ui.graphics.ColorFilter tint-QEYXlZo(long color);
+    method @androidx.compose.Stable public androidx.ui.graphics.ColorFilter tint-QEYXlZo(long color);
   }
 
   public final class ColorKt {
-    method public static long Color(float red, float green, float blue, float alpha = 1f, androidx.ui.graphics.colorspace.ColorSpace colorSpace = ColorSpaces.Srgb);
-    method public static long Color(@ColorInt int color);
-    method public static long Color(long color);
-    method public static long Color(@IntRange(from=0, to=255) int red, @IntRange(from=0, to=255) int green, @IntRange(from=0, to=255) int blue, @IntRange(from=0, to=255) int alpha = 0xFF);
-    method public static long compositeOver-MsF30Tg(long, long background);
+    method @androidx.compose.Stable public static long Color(float red, float green, float blue, float alpha = 1f, androidx.ui.graphics.colorspace.ColorSpace colorSpace = ColorSpaces.Srgb);
+    method @androidx.compose.Stable public static long Color(@ColorInt int color);
+    method @androidx.compose.Stable public static long Color(long color);
+    method @androidx.compose.Stable public static long Color(@IntRange(from=0, to=255) int red, @IntRange(from=0, to=255) int green, @IntRange(from=0, to=255) int blue, @IntRange(from=0, to=255) int alpha = 0xFF);
+    method @androidx.compose.Stable public static long compositeOver-MsF30Tg(long, long background);
     method public static inline boolean isSet-QEYXlZo(long);
     method public static inline boolean isUnset-QEYXlZo(long);
-    method public static long lerp-hhXNEtA(long start, long stop, @FloatRange(from=0.0, to=1.0) float fraction);
-    method public static float luminance-QEYXlZo(long);
-    method @ColorInt public static int toArgb-QEYXlZo(long);
+    method @androidx.compose.Stable public static long lerp-hhXNEtA(long start, long stop, @FloatRange(from=0.0, to=1.0) float fraction);
+    method @androidx.compose.Stable public static float luminance-QEYXlZo(long);
+    method @ColorInt @androidx.compose.Stable public static int toArgb-QEYXlZo(long);
     method public static inline long useOrElse-4UtWFt0(long, kotlin.jvm.functions.Function0<androidx.ui.graphics.Color> block);
   }
 
@@ -495,11 +495,11 @@
     method public static android.graphics.Shader RadialGradientShader-nSjqbmE(long center, float radius, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
   }
 
-  public final class Shadow {
+  @androidx.compose.Immutable public final class Shadow {
     method public long component1();
     method public long component2();
     method public float component3();
-    method public androidx.ui.graphics.Shadow copy-hgWLwZA(long color, long offset, float blurRadius);
+    method @androidx.compose.Immutable public androidx.ui.graphics.Shadow copy-hgWLwZA(long color, long offset, float blurRadius);
     method public float getBlurRadius();
     method public long getColor();
     method public long getOffset();
@@ -512,10 +512,10 @@
   }
 
   public final class ShadowKt {
-    method public static androidx.ui.graphics.Shadow lerp(androidx.ui.graphics.Shadow start, androidx.ui.graphics.Shadow stop, float fraction);
+    method @androidx.compose.Stable public static androidx.ui.graphics.Shadow lerp(androidx.ui.graphics.Shadow start, androidx.ui.graphics.Shadow stop, float fraction);
   }
 
-  public interface Shape {
+  @androidx.compose.Immutable public interface Shape {
     method public androidx.ui.graphics.Outline createOutline-SwJi8iY(long size, androidx.ui.unit.Density density);
   }
 
diff --git a/ui/ui-graphics/api/public_plus_experimental_0.1.0-dev14.txt b/ui/ui-graphics/api/public_plus_experimental_0.1.0-dev14.txt
index 5be0e7e..5dcafe7 100644
--- a/ui/ui-graphics/api/public_plus_experimental_0.1.0-dev14.txt
+++ b/ui/ui-graphics/api/public_plus_experimental_0.1.0-dev14.txt
@@ -186,17 +186,17 @@
     enum_constant public static final androidx.ui.graphics.ClipOp intersect;
   }
 
-  public final inline class Color {
+  @androidx.compose.Immutable public final inline class Color {
     ctor public Color();
-    method public static operator float component1-impl(long $this);
-    method public static operator float component2-impl(long $this);
-    method public static operator float component3-impl(long $this);
-    method public static operator float component4-impl(long $this);
-    method public static operator androidx.ui.graphics.colorspace.ColorSpace component5-impl(long $this);
+    method @androidx.compose.Stable public static operator float component1-impl(long $this);
+    method @androidx.compose.Stable public static operator float component2-impl(long $this);
+    method @androidx.compose.Stable public static operator float component3-impl(long $this);
+    method @androidx.compose.Stable public static operator float component4-impl(long $this);
+    method @androidx.compose.Stable public static operator androidx.ui.graphics.colorspace.ColorSpace component5-impl(long $this);
     method public static long constructor-impl(long value);
     method public static long convert-impl(long $this, androidx.ui.graphics.colorspace.ColorSpace colorSpace);
-    method public static long copy-impl(long $this, float alpha = this.alpha, float red = this.red, float green = this.green, float blue = this.blue);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static long copy-impl(long $this, float alpha = this.alpha, float red = this.red, float green = this.green, float blue = this.blue);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static float getAlpha-impl(long $this);
     method public static float getBlue-impl(long $this);
@@ -204,7 +204,7 @@
     method public static float getGreen-impl(long $this);
     method public static float getRed-impl(long $this);
     method public long getValue();
-    method public static inline int hashCode-impl(long p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
     method public static String toString-impl(long $this);
     field public static final androidx.ui.graphics.Color.Companion! Companion;
   }
@@ -238,30 +238,30 @@
     property public final long Yellow;
   }
 
-  public final class ColorFilter {
+  @androidx.compose.Immutable public final class ColorFilter {
     method public long component1();
     method public androidx.ui.graphics.BlendMode component2();
-    method public androidx.ui.graphics.ColorFilter copy-vOa7YyA(long color, androidx.ui.graphics.BlendMode blendMode);
+    method @androidx.compose.Immutable public androidx.ui.graphics.ColorFilter copy-vOa7YyA(long color, androidx.ui.graphics.BlendMode blendMode);
     method public androidx.ui.graphics.BlendMode getBlendMode();
     method public long getColor();
     field public static final androidx.ui.graphics.ColorFilter.Companion! Companion;
   }
 
   public static final class ColorFilter.Companion {
-    method public androidx.ui.graphics.ColorFilter tint-QEYXlZo(long color);
+    method @androidx.compose.Stable public androidx.ui.graphics.ColorFilter tint-QEYXlZo(long color);
   }
 
   public final class ColorKt {
-    method public static long Color(float red, float green, float blue, float alpha = 1f, androidx.ui.graphics.colorspace.ColorSpace colorSpace = ColorSpaces.Srgb);
-    method public static long Color(@ColorInt int color);
-    method public static long Color(long color);
-    method public static long Color(@IntRange(from=0, to=255) int red, @IntRange(from=0, to=255) int green, @IntRange(from=0, to=255) int blue, @IntRange(from=0, to=255) int alpha = 0xFF);
-    method public static long compositeOver-MsF30Tg(long, long background);
+    method @androidx.compose.Stable public static long Color(float red, float green, float blue, float alpha = 1f, androidx.ui.graphics.colorspace.ColorSpace colorSpace = ColorSpaces.Srgb);
+    method @androidx.compose.Stable public static long Color(@ColorInt int color);
+    method @androidx.compose.Stable public static long Color(long color);
+    method @androidx.compose.Stable public static long Color(@IntRange(from=0, to=255) int red, @IntRange(from=0, to=255) int green, @IntRange(from=0, to=255) int blue, @IntRange(from=0, to=255) int alpha = 0xFF);
+    method @androidx.compose.Stable public static long compositeOver-MsF30Tg(long, long background);
     method public static inline boolean isSet-QEYXlZo(long);
     method public static inline boolean isUnset-QEYXlZo(long);
-    method public static long lerp-hhXNEtA(long start, long stop, @FloatRange(from=0.0, to=1.0) float fraction);
-    method public static float luminance-QEYXlZo(long);
-    method @ColorInt public static int toArgb-QEYXlZo(long);
+    method @androidx.compose.Stable public static long lerp-hhXNEtA(long start, long stop, @FloatRange(from=0.0, to=1.0) float fraction);
+    method @androidx.compose.Stable public static float luminance-QEYXlZo(long);
+    method @ColorInt @androidx.compose.Stable public static int toArgb-QEYXlZo(long);
     method public static inline long useOrElse-4UtWFt0(long, kotlin.jvm.functions.Function0<androidx.ui.graphics.Color> block);
   }
 
@@ -495,11 +495,11 @@
     method public static android.graphics.Shader RadialGradientShader-nSjqbmE(long center, float radius, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
   }
 
-  public final class Shadow {
+  @androidx.compose.Immutable public final class Shadow {
     method public long component1();
     method public long component2();
     method public float component3();
-    method public androidx.ui.graphics.Shadow copy-hgWLwZA(long color, long offset, float blurRadius);
+    method @androidx.compose.Immutable public androidx.ui.graphics.Shadow copy-hgWLwZA(long color, long offset, float blurRadius);
     method public float getBlurRadius();
     method public long getColor();
     method public long getOffset();
@@ -512,10 +512,10 @@
   }
 
   public final class ShadowKt {
-    method public static androidx.ui.graphics.Shadow lerp(androidx.ui.graphics.Shadow start, androidx.ui.graphics.Shadow stop, float fraction);
+    method @androidx.compose.Stable public static androidx.ui.graphics.Shadow lerp(androidx.ui.graphics.Shadow start, androidx.ui.graphics.Shadow stop, float fraction);
   }
 
-  public interface Shape {
+  @androidx.compose.Immutable public interface Shape {
     method public androidx.ui.graphics.Outline createOutline-SwJi8iY(long size, androidx.ui.unit.Density density);
   }
 
diff --git a/ui/ui-graphics/api/public_plus_experimental_current.txt b/ui/ui-graphics/api/public_plus_experimental_current.txt
index 5be0e7e..5dcafe7 100644
--- a/ui/ui-graphics/api/public_plus_experimental_current.txt
+++ b/ui/ui-graphics/api/public_plus_experimental_current.txt
@@ -186,17 +186,17 @@
     enum_constant public static final androidx.ui.graphics.ClipOp intersect;
   }
 
-  public final inline class Color {
+  @androidx.compose.Immutable public final inline class Color {
     ctor public Color();
-    method public static operator float component1-impl(long $this);
-    method public static operator float component2-impl(long $this);
-    method public static operator float component3-impl(long $this);
-    method public static operator float component4-impl(long $this);
-    method public static operator androidx.ui.graphics.colorspace.ColorSpace component5-impl(long $this);
+    method @androidx.compose.Stable public static operator float component1-impl(long $this);
+    method @androidx.compose.Stable public static operator float component2-impl(long $this);
+    method @androidx.compose.Stable public static operator float component3-impl(long $this);
+    method @androidx.compose.Stable public static operator float component4-impl(long $this);
+    method @androidx.compose.Stable public static operator androidx.ui.graphics.colorspace.ColorSpace component5-impl(long $this);
     method public static long constructor-impl(long value);
     method public static long convert-impl(long $this, androidx.ui.graphics.colorspace.ColorSpace colorSpace);
-    method public static long copy-impl(long $this, float alpha = this.alpha, float red = this.red, float green = this.green, float blue = this.blue);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static long copy-impl(long $this, float alpha = this.alpha, float red = this.red, float green = this.green, float blue = this.blue);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static float getAlpha-impl(long $this);
     method public static float getBlue-impl(long $this);
@@ -204,7 +204,7 @@
     method public static float getGreen-impl(long $this);
     method public static float getRed-impl(long $this);
     method public long getValue();
-    method public static inline int hashCode-impl(long p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
     method public static String toString-impl(long $this);
     field public static final androidx.ui.graphics.Color.Companion! Companion;
   }
@@ -238,30 +238,30 @@
     property public final long Yellow;
   }
 
-  public final class ColorFilter {
+  @androidx.compose.Immutable public final class ColorFilter {
     method public long component1();
     method public androidx.ui.graphics.BlendMode component2();
-    method public androidx.ui.graphics.ColorFilter copy-vOa7YyA(long color, androidx.ui.graphics.BlendMode blendMode);
+    method @androidx.compose.Immutable public androidx.ui.graphics.ColorFilter copy-vOa7YyA(long color, androidx.ui.graphics.BlendMode blendMode);
     method public androidx.ui.graphics.BlendMode getBlendMode();
     method public long getColor();
     field public static final androidx.ui.graphics.ColorFilter.Companion! Companion;
   }
 
   public static final class ColorFilter.Companion {
-    method public androidx.ui.graphics.ColorFilter tint-QEYXlZo(long color);
+    method @androidx.compose.Stable public androidx.ui.graphics.ColorFilter tint-QEYXlZo(long color);
   }
 
   public final class ColorKt {
-    method public static long Color(float red, float green, float blue, float alpha = 1f, androidx.ui.graphics.colorspace.ColorSpace colorSpace = ColorSpaces.Srgb);
-    method public static long Color(@ColorInt int color);
-    method public static long Color(long color);
-    method public static long Color(@IntRange(from=0, to=255) int red, @IntRange(from=0, to=255) int green, @IntRange(from=0, to=255) int blue, @IntRange(from=0, to=255) int alpha = 0xFF);
-    method public static long compositeOver-MsF30Tg(long, long background);
+    method @androidx.compose.Stable public static long Color(float red, float green, float blue, float alpha = 1f, androidx.ui.graphics.colorspace.ColorSpace colorSpace = ColorSpaces.Srgb);
+    method @androidx.compose.Stable public static long Color(@ColorInt int color);
+    method @androidx.compose.Stable public static long Color(long color);
+    method @androidx.compose.Stable public static long Color(@IntRange(from=0, to=255) int red, @IntRange(from=0, to=255) int green, @IntRange(from=0, to=255) int blue, @IntRange(from=0, to=255) int alpha = 0xFF);
+    method @androidx.compose.Stable public static long compositeOver-MsF30Tg(long, long background);
     method public static inline boolean isSet-QEYXlZo(long);
     method public static inline boolean isUnset-QEYXlZo(long);
-    method public static long lerp-hhXNEtA(long start, long stop, @FloatRange(from=0.0, to=1.0) float fraction);
-    method public static float luminance-QEYXlZo(long);
-    method @ColorInt public static int toArgb-QEYXlZo(long);
+    method @androidx.compose.Stable public static long lerp-hhXNEtA(long start, long stop, @FloatRange(from=0.0, to=1.0) float fraction);
+    method @androidx.compose.Stable public static float luminance-QEYXlZo(long);
+    method @ColorInt @androidx.compose.Stable public static int toArgb-QEYXlZo(long);
     method public static inline long useOrElse-4UtWFt0(long, kotlin.jvm.functions.Function0<androidx.ui.graphics.Color> block);
   }
 
@@ -495,11 +495,11 @@
     method public static android.graphics.Shader RadialGradientShader-nSjqbmE(long center, float radius, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
   }
 
-  public final class Shadow {
+  @androidx.compose.Immutable public final class Shadow {
     method public long component1();
     method public long component2();
     method public float component3();
-    method public androidx.ui.graphics.Shadow copy-hgWLwZA(long color, long offset, float blurRadius);
+    method @androidx.compose.Immutable public androidx.ui.graphics.Shadow copy-hgWLwZA(long color, long offset, float blurRadius);
     method public float getBlurRadius();
     method public long getColor();
     method public long getOffset();
@@ -512,10 +512,10 @@
   }
 
   public final class ShadowKt {
-    method public static androidx.ui.graphics.Shadow lerp(androidx.ui.graphics.Shadow start, androidx.ui.graphics.Shadow stop, float fraction);
+    method @androidx.compose.Stable public static androidx.ui.graphics.Shadow lerp(androidx.ui.graphics.Shadow start, androidx.ui.graphics.Shadow stop, float fraction);
   }
 
-  public interface Shape {
+  @androidx.compose.Immutable public interface Shape {
     method public androidx.ui.graphics.Outline createOutline-SwJi8iY(long size, androidx.ui.unit.Density density);
   }
 
diff --git a/ui/ui-graphics/api/restricted_0.1.0-dev14.txt b/ui/ui-graphics/api/restricted_0.1.0-dev14.txt
index 42ed725..d84df48 100644
--- a/ui/ui-graphics/api/restricted_0.1.0-dev14.txt
+++ b/ui/ui-graphics/api/restricted_0.1.0-dev14.txt
@@ -220,17 +220,17 @@
     enum_constant public static final androidx.ui.graphics.ClipOp intersect;
   }
 
-  public final inline class Color {
+  @androidx.compose.Immutable public final inline class Color {
     ctor public Color();
-    method public static operator float component1-impl(long $this);
-    method public static operator float component2-impl(long $this);
-    method public static operator float component3-impl(long $this);
-    method public static operator float component4-impl(long $this);
-    method public static operator androidx.ui.graphics.colorspace.ColorSpace component5-impl(long $this);
+    method @androidx.compose.Stable public static operator float component1-impl(long $this);
+    method @androidx.compose.Stable public static operator float component2-impl(long $this);
+    method @androidx.compose.Stable public static operator float component3-impl(long $this);
+    method @androidx.compose.Stable public static operator float component4-impl(long $this);
+    method @androidx.compose.Stable public static operator androidx.ui.graphics.colorspace.ColorSpace component5-impl(long $this);
     method public static long constructor-impl(long value);
     method public static long convert-impl(long $this, androidx.ui.graphics.colorspace.ColorSpace colorSpace);
-    method public static long copy-impl(long $this, float alpha = this.alpha, float red = this.red, float green = this.green, float blue = this.blue);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static long copy-impl(long $this, float alpha = this.alpha, float red = this.red, float green = this.green, float blue = this.blue);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static float getAlpha-impl(long $this);
     method public static float getBlue-impl(long $this);
@@ -238,7 +238,7 @@
     method public static float getGreen-impl(long $this);
     method public static float getRed-impl(long $this);
     method public long getValue();
-    method public static inline int hashCode-impl(long p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
     method public static String toString-impl(long $this);
     field public static final androidx.ui.graphics.Color.Companion! Companion;
   }
@@ -272,30 +272,30 @@
     property public final long Yellow;
   }
 
-  public final class ColorFilter {
+  @androidx.compose.Immutable public final class ColorFilter {
     method public long component1();
     method public androidx.ui.graphics.BlendMode component2();
-    method public androidx.ui.graphics.ColorFilter copy-vOa7YyA(long color, androidx.ui.graphics.BlendMode blendMode);
+    method @androidx.compose.Immutable public androidx.ui.graphics.ColorFilter copy-vOa7YyA(long color, androidx.ui.graphics.BlendMode blendMode);
     method public androidx.ui.graphics.BlendMode getBlendMode();
     method public long getColor();
     field public static final androidx.ui.graphics.ColorFilter.Companion! Companion;
   }
 
   public static final class ColorFilter.Companion {
-    method public androidx.ui.graphics.ColorFilter tint-QEYXlZo(long color);
+    method @androidx.compose.Stable public androidx.ui.graphics.ColorFilter tint-QEYXlZo(long color);
   }
 
   public final class ColorKt {
-    method public static long Color(float red, float green, float blue, float alpha = 1f, androidx.ui.graphics.colorspace.ColorSpace colorSpace = ColorSpaces.Srgb);
-    method public static long Color(@ColorInt int color);
-    method public static long Color(long color);
-    method public static long Color(@IntRange(from=0, to=255) int red, @IntRange(from=0, to=255) int green, @IntRange(from=0, to=255) int blue, @IntRange(from=0, to=255) int alpha = 0xFF);
-    method public static long compositeOver-MsF30Tg(long, long background);
+    method @androidx.compose.Stable public static long Color(float red, float green, float blue, float alpha = 1f, androidx.ui.graphics.colorspace.ColorSpace colorSpace = ColorSpaces.Srgb);
+    method @androidx.compose.Stable public static long Color(@ColorInt int color);
+    method @androidx.compose.Stable public static long Color(long color);
+    method @androidx.compose.Stable public static long Color(@IntRange(from=0, to=255) int red, @IntRange(from=0, to=255) int green, @IntRange(from=0, to=255) int blue, @IntRange(from=0, to=255) int alpha = 0xFF);
+    method @androidx.compose.Stable public static long compositeOver-MsF30Tg(long, long background);
     method public static inline boolean isSet-QEYXlZo(long);
     method public static inline boolean isUnset-QEYXlZo(long);
-    method public static long lerp-hhXNEtA(long start, long stop, @FloatRange(from=0.0, to=1.0) float fraction);
-    method public static float luminance-QEYXlZo(long);
-    method @ColorInt public static int toArgb-QEYXlZo(long);
+    method @androidx.compose.Stable public static long lerp-hhXNEtA(long start, long stop, @FloatRange(from=0.0, to=1.0) float fraction);
+    method @androidx.compose.Stable public static float luminance-QEYXlZo(long);
+    method @ColorInt @androidx.compose.Stable public static int toArgb-QEYXlZo(long);
     method public static inline long useOrElse-4UtWFt0(long, kotlin.jvm.functions.Function0<androidx.ui.graphics.Color> block);
   }
 
@@ -529,11 +529,11 @@
     method public static android.graphics.Shader RadialGradientShader-nSjqbmE(long center, float radius, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
   }
 
-  public final class Shadow {
+  @androidx.compose.Immutable public final class Shadow {
     method public long component1();
     method public long component2();
     method public float component3();
-    method public androidx.ui.graphics.Shadow copy-hgWLwZA(long color, long offset, float blurRadius);
+    method @androidx.compose.Immutable public androidx.ui.graphics.Shadow copy-hgWLwZA(long color, long offset, float blurRadius);
     method public float getBlurRadius();
     method public long getColor();
     method public long getOffset();
@@ -546,10 +546,10 @@
   }
 
   public final class ShadowKt {
-    method public static androidx.ui.graphics.Shadow lerp(androidx.ui.graphics.Shadow start, androidx.ui.graphics.Shadow stop, float fraction);
+    method @androidx.compose.Stable public static androidx.ui.graphics.Shadow lerp(androidx.ui.graphics.Shadow start, androidx.ui.graphics.Shadow stop, float fraction);
   }
 
-  public interface Shape {
+  @androidx.compose.Immutable public interface Shape {
     method public androidx.ui.graphics.Outline createOutline-SwJi8iY(long size, androidx.ui.unit.Density density);
   }
 
diff --git a/ui/ui-graphics/api/restricted_current.txt b/ui/ui-graphics/api/restricted_current.txt
index 42ed725..d84df48 100644
--- a/ui/ui-graphics/api/restricted_current.txt
+++ b/ui/ui-graphics/api/restricted_current.txt
@@ -220,17 +220,17 @@
     enum_constant public static final androidx.ui.graphics.ClipOp intersect;
   }
 
-  public final inline class Color {
+  @androidx.compose.Immutable public final inline class Color {
     ctor public Color();
-    method public static operator float component1-impl(long $this);
-    method public static operator float component2-impl(long $this);
-    method public static operator float component3-impl(long $this);
-    method public static operator float component4-impl(long $this);
-    method public static operator androidx.ui.graphics.colorspace.ColorSpace component5-impl(long $this);
+    method @androidx.compose.Stable public static operator float component1-impl(long $this);
+    method @androidx.compose.Stable public static operator float component2-impl(long $this);
+    method @androidx.compose.Stable public static operator float component3-impl(long $this);
+    method @androidx.compose.Stable public static operator float component4-impl(long $this);
+    method @androidx.compose.Stable public static operator androidx.ui.graphics.colorspace.ColorSpace component5-impl(long $this);
     method public static long constructor-impl(long value);
     method public static long convert-impl(long $this, androidx.ui.graphics.colorspace.ColorSpace colorSpace);
-    method public static long copy-impl(long $this, float alpha = this.alpha, float red = this.red, float green = this.green, float blue = this.blue);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static long copy-impl(long $this, float alpha = this.alpha, float red = this.red, float green = this.green, float blue = this.blue);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static float getAlpha-impl(long $this);
     method public static float getBlue-impl(long $this);
@@ -238,7 +238,7 @@
     method public static float getGreen-impl(long $this);
     method public static float getRed-impl(long $this);
     method public long getValue();
-    method public static inline int hashCode-impl(long p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
     method public static String toString-impl(long $this);
     field public static final androidx.ui.graphics.Color.Companion! Companion;
   }
@@ -272,30 +272,30 @@
     property public final long Yellow;
   }
 
-  public final class ColorFilter {
+  @androidx.compose.Immutable public final class ColorFilter {
     method public long component1();
     method public androidx.ui.graphics.BlendMode component2();
-    method public androidx.ui.graphics.ColorFilter copy-vOa7YyA(long color, androidx.ui.graphics.BlendMode blendMode);
+    method @androidx.compose.Immutable public androidx.ui.graphics.ColorFilter copy-vOa7YyA(long color, androidx.ui.graphics.BlendMode blendMode);
     method public androidx.ui.graphics.BlendMode getBlendMode();
     method public long getColor();
     field public static final androidx.ui.graphics.ColorFilter.Companion! Companion;
   }
 
   public static final class ColorFilter.Companion {
-    method public androidx.ui.graphics.ColorFilter tint-QEYXlZo(long color);
+    method @androidx.compose.Stable public androidx.ui.graphics.ColorFilter tint-QEYXlZo(long color);
   }
 
   public final class ColorKt {
-    method public static long Color(float red, float green, float blue, float alpha = 1f, androidx.ui.graphics.colorspace.ColorSpace colorSpace = ColorSpaces.Srgb);
-    method public static long Color(@ColorInt int color);
-    method public static long Color(long color);
-    method public static long Color(@IntRange(from=0, to=255) int red, @IntRange(from=0, to=255) int green, @IntRange(from=0, to=255) int blue, @IntRange(from=0, to=255) int alpha = 0xFF);
-    method public static long compositeOver-MsF30Tg(long, long background);
+    method @androidx.compose.Stable public static long Color(float red, float green, float blue, float alpha = 1f, androidx.ui.graphics.colorspace.ColorSpace colorSpace = ColorSpaces.Srgb);
+    method @androidx.compose.Stable public static long Color(@ColorInt int color);
+    method @androidx.compose.Stable public static long Color(long color);
+    method @androidx.compose.Stable public static long Color(@IntRange(from=0, to=255) int red, @IntRange(from=0, to=255) int green, @IntRange(from=0, to=255) int blue, @IntRange(from=0, to=255) int alpha = 0xFF);
+    method @androidx.compose.Stable public static long compositeOver-MsF30Tg(long, long background);
     method public static inline boolean isSet-QEYXlZo(long);
     method public static inline boolean isUnset-QEYXlZo(long);
-    method public static long lerp-hhXNEtA(long start, long stop, @FloatRange(from=0.0, to=1.0) float fraction);
-    method public static float luminance-QEYXlZo(long);
-    method @ColorInt public static int toArgb-QEYXlZo(long);
+    method @androidx.compose.Stable public static long lerp-hhXNEtA(long start, long stop, @FloatRange(from=0.0, to=1.0) float fraction);
+    method @androidx.compose.Stable public static float luminance-QEYXlZo(long);
+    method @ColorInt @androidx.compose.Stable public static int toArgb-QEYXlZo(long);
     method public static inline long useOrElse-4UtWFt0(long, kotlin.jvm.functions.Function0<androidx.ui.graphics.Color> block);
   }
 
@@ -529,11 +529,11 @@
     method public static android.graphics.Shader RadialGradientShader-nSjqbmE(long center, float radius, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
   }
 
-  public final class Shadow {
+  @androidx.compose.Immutable public final class Shadow {
     method public long component1();
     method public long component2();
     method public float component3();
-    method public androidx.ui.graphics.Shadow copy-hgWLwZA(long color, long offset, float blurRadius);
+    method @androidx.compose.Immutable public androidx.ui.graphics.Shadow copy-hgWLwZA(long color, long offset, float blurRadius);
     method public float getBlurRadius();
     method public long getColor();
     method public long getOffset();
@@ -546,10 +546,10 @@
   }
 
   public final class ShadowKt {
-    method public static androidx.ui.graphics.Shadow lerp(androidx.ui.graphics.Shadow start, androidx.ui.graphics.Shadow stop, float fraction);
+    method @androidx.compose.Stable public static androidx.ui.graphics.Shadow lerp(androidx.ui.graphics.Shadow start, androidx.ui.graphics.Shadow stop, float fraction);
   }
 
-  public interface Shape {
+  @androidx.compose.Immutable public interface Shape {
     method public androidx.ui.graphics.Outline createOutline-SwJi8iY(long size, androidx.ui.unit.Density density);
   }
 
diff --git a/ui/ui-layout/api/0.1.0-dev14.txt b/ui/ui-layout/api/0.1.0-dev14.txt
index b2841cd..d1db5d8 100644
--- a/ui/ui-layout/api/0.1.0-dev14.txt
+++ b/ui/ui-layout/api/0.1.0-dev14.txt
@@ -2,11 +2,11 @@
 package androidx.ui.layout {
 
   public final class AlignmentLineKt {
-    method @Deprecated public static void AlignmentLineOffset-QVeNkNc(androidx.ui.core.AlignmentLine alignmentLine, androidx.ui.core.Modifier modifier = Modifier, float before = 0.dp, float after = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static androidx.ui.core.Modifier relativePaddingFrom-J8n-V1w(androidx.ui.core.Modifier, androidx.ui.core.AlignmentLine alignmentLine, float before = 0.dp, float after = 0.dp);
+    method @Deprecated @androidx.compose.Composable public static void AlignmentLineOffset-QVeNkNc(androidx.ui.core.AlignmentLine alignmentLine, androidx.ui.core.Modifier modifier = Modifier, float before = 0.dp, float after = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier relativePaddingFrom-J8n-V1w(androidx.ui.core.Modifier, androidx.ui.core.AlignmentLine alignmentLine, float before = 0.dp, float after = 0.dp);
   }
 
-  public interface Arrangement {
+  @androidx.compose.Immutable public interface Arrangement {
     method public java.util.List<androidx.ui.unit.IntPx> arrange-SVHdN54(int totalSize, java.util.List<androidx.ui.unit.IntPx> size, androidx.ui.core.LayoutDirection layoutDirection);
     field @Deprecated public static final androidx.ui.layout.Arrangement.Companion! Companion;
   }
@@ -58,24 +58,24 @@
   }
 
   public final class ColumnKt {
-    method public static void Column(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.layout.Arrangement.Vertical verticalArrangement = Arrangement.Top, androidx.ui.core.Alignment.Horizontal horizontalGravity = Alignment.Start, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Column(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.layout.Arrangement.Vertical verticalArrangement = Arrangement.Top, androidx.ui.core.Alignment.Horizontal horizontalGravity = Alignment.Start, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> children);
   }
 
-  @androidx.ui.layout.LayoutScopeMarker public final class ColumnScope {
-    method public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, androidx.ui.core.VerticalAlignmentLine alignmentLine);
-    method public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.Measured,androidx.ui.unit.IntPx> alignmentLineBlock);
-    method public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Horizontal align);
-    method public androidx.ui.core.Modifier weight(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float weight, boolean fill = true);
+  @androidx.compose.Immutable @androidx.ui.layout.LayoutScopeMarker public final class ColumnScope {
+    method @androidx.compose.Stable public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, androidx.ui.core.VerticalAlignmentLine alignmentLine);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.Measured,androidx.ui.unit.IntPx> alignmentLineBlock);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Horizontal align);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier weight(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float weight, boolean fill = true);
     field public static final androidx.ui.layout.ColumnScope! INSTANCE;
   }
 
   public final class ConstraintLayoutKt {
-    method @androidx.ui.layout.ExperimentalLayout public static void ConstraintLayout(androidx.ui.layout.ConstraintSet constraintSet, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable @androidx.ui.layout.ExperimentalLayout public static void ConstraintLayout(androidx.ui.layout.ConstraintSet constraintSet, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
-  public final class ConstraintSet {
+  @androidx.compose.Immutable public final class ConstraintSet {
     ctor public ConstraintSet(internal kotlin.jvm.functions.Function1<? super androidx.ui.layout.ConstraintSetBuilderScope,kotlin.Unit> description);
-    method public androidx.ui.layout.ConstraintSet copy(kotlin.jvm.functions.Function1<? super androidx.ui.layout.ConstraintSetBuilderScope,kotlin.Unit> description);
+    method @androidx.compose.Immutable public androidx.ui.layout.ConstraintSet copy(kotlin.jvm.functions.Function1<? super androidx.ui.layout.ConstraintSetBuilderScope,kotlin.Unit> description);
   }
 
   public final class ConstraintSetBuilderScope {
@@ -260,7 +260,7 @@
     property public final androidx.ui.layout.ConstraintSetBuilderScope.HorizontalAnchor.ConstrainedLayoutAnchor top;
   }
 
-  public final class CrossAxisAlignment {
+  @androidx.compose.Immutable public final class CrossAxisAlignment {
     field public static final androidx.ui.layout.CrossAxisAlignment.Companion! Companion;
   }
 
@@ -274,12 +274,12 @@
     property public final androidx.ui.layout.CrossAxisAlignment Start;
   }
 
-  public final class DpConstraints {
+  @androidx.compose.Immutable public final class DpConstraints {
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
-    method public androidx.ui.layout.DpConstraints copy-rIHlIKc(float minWidth, float maxWidth, float minHeight, float maxHeight);
+    method @androidx.compose.Immutable public androidx.ui.layout.DpConstraints copy-rIHlIKc(float minWidth, float maxWidth, float minHeight, float maxHeight);
     method public float getMaxHeight();
     method public float getMaxWidth();
     method public float getMinHeight();
@@ -288,25 +288,25 @@
   }
 
   public static final class DpConstraints.Companion {
-    method public androidx.ui.layout.DpConstraints fixed-98Cn76g(float width, float height);
-    method public androidx.ui.layout.DpConstraints fixedHeight-ipo6vVg(float height);
-    method public androidx.ui.layout.DpConstraints fixedWidth-ipo6vVg(float width);
+    method @androidx.compose.Stable public androidx.ui.layout.DpConstraints fixed-98Cn76g(float width, float height);
+    method @androidx.compose.Stable public androidx.ui.layout.DpConstraints fixedHeight-ipo6vVg(float height);
+    method @androidx.compose.Stable public androidx.ui.layout.DpConstraints fixedWidth-ipo6vVg(float width);
   }
 
   public final class DpConstraintsKt {
-    method public static androidx.ui.core.Constraints Constraints(androidx.ui.unit.Density, androidx.ui.layout.DpConstraints dpConstraints);
-    method public static androidx.ui.layout.DpConstraints DpConstraints(androidx.ui.unit.Density, androidx.ui.core.Constraints constraints);
-    method public static androidx.ui.layout.DpConstraints enforce(androidx.ui.layout.DpConstraints, androidx.ui.layout.DpConstraints otherConstraints);
+    method @androidx.compose.Stable public static androidx.ui.core.Constraints Constraints(androidx.ui.unit.Density, androidx.ui.layout.DpConstraints dpConstraints);
+    method @androidx.compose.Stable public static androidx.ui.layout.DpConstraints DpConstraints(androidx.ui.unit.Density, androidx.ui.core.Constraints constraints);
+    method @androidx.compose.Stable public static androidx.ui.layout.DpConstraints enforce(androidx.ui.layout.DpConstraints, androidx.ui.layout.DpConstraints otherConstraints);
     method public static boolean getHasBoundedHeight(androidx.ui.layout.DpConstraints);
     method public static boolean getHasBoundedWidth(androidx.ui.layout.DpConstraints);
     method public static boolean getHasFixedHeight(androidx.ui.layout.DpConstraints);
     method public static boolean getHasFixedWidth(androidx.ui.layout.DpConstraints);
     method public static boolean getSatisfiable(androidx.ui.layout.DpConstraints);
     method public static boolean isZero(androidx.ui.layout.DpConstraints);
-    method public static androidx.ui.layout.DpConstraints offset-bB8corQ(androidx.ui.layout.DpConstraints, float horizontal = 0.dp, float vertical = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.layout.DpConstraints offset-bB8corQ(androidx.ui.layout.DpConstraints, float horizontal = 0.dp, float vertical = 0.dp);
   }
 
-  public @interface ExperimentalLayout {
+  @kotlin.RequiresOptIn(message="The API of this layout is experimental and is likely to change in the future.") public @interface ExperimentalLayout {
   }
 
   public enum FlowCrossAxisAlignment {
@@ -316,16 +316,16 @@
   }
 
   public final class FlowKt {
-    method @androidx.ui.layout.ExperimentalLayout public static void FlowColumn-UKRdXhE(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, float mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, float crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @androidx.ui.layout.ExperimentalLayout public static void FlowRow-UKRdXhE(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, float mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, float crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable @androidx.ui.layout.ExperimentalLayout public static void FlowColumn-UKRdXhE(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, float mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, float crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable @androidx.ui.layout.ExperimentalLayout public static void FlowRow-UKRdXhE(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, float mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, float crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
-  public final class InnerPadding {
+  @androidx.compose.Immutable public final class InnerPadding {
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
-    method public androidx.ui.layout.InnerPadding copy-rIHlIKc(float start, float top, float end, float bottom);
+    method @androidx.compose.Immutable public androidx.ui.layout.InnerPadding copy-rIHlIKc(float start, float top, float end, float bottom);
     method public float getBottom();
     method public float getEnd();
     method public float getStart();
@@ -333,12 +333,12 @@
   }
 
   public final class IntrinsicKt {
-    method @Deprecated public static void MaxIntrinsicHeight(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @Deprecated public static void MaxIntrinsicWidth(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @Deprecated public static void MinIntrinsicHeight(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @Deprecated public static void MinIntrinsicWidth(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @androidx.ui.layout.ExperimentalLayout public static androidx.ui.core.Modifier preferredHeight(androidx.ui.core.Modifier, androidx.ui.layout.IntrinsicSize intrinsicSize);
-    method @androidx.ui.layout.ExperimentalLayout public static androidx.ui.core.Modifier preferredWidth(androidx.ui.core.Modifier, androidx.ui.layout.IntrinsicSize intrinsicSize);
+    method @Deprecated @androidx.compose.Composable public static void MaxIntrinsicHeight(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @Deprecated @androidx.compose.Composable public static void MaxIntrinsicWidth(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @Deprecated @androidx.compose.Composable public static void MinIntrinsicHeight(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @Deprecated @androidx.compose.Composable public static void MinIntrinsicWidth(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Stable @androidx.ui.layout.ExperimentalLayout public static androidx.ui.core.Modifier preferredHeight(androidx.ui.core.Modifier, androidx.ui.layout.IntrinsicSize intrinsicSize);
+    method @androidx.compose.Stable @androidx.ui.layout.ExperimentalLayout public static androidx.ui.core.Modifier preferredWidth(androidx.ui.core.Modifier, androidx.ui.layout.IntrinsicSize intrinsicSize);
   }
 
   public enum IntrinsicSize {
@@ -347,7 +347,7 @@
   }
 
   public final class LayoutAspectRatioKt {
-    method public static androidx.ui.core.Modifier aspectRatio(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float ratio);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier aspectRatio(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float ratio);
   }
 
   public final class LayoutDirectionsKt {
@@ -356,45 +356,45 @@
   }
 
   public final class LayoutOffsetKt {
-    method public static androidx.ui.core.Modifier offset-qJOR85M(androidx.ui.core.Modifier, float x = 0.dp, float y = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier offset-qJOR85M(androidx.ui.core.Modifier, float x = 0.dp, float y = 0.dp);
     method public static androidx.ui.core.Modifier offsetPx(androidx.ui.core.Modifier, androidx.compose.State<androidx.ui.unit.Px> x = mutableStateOf(Px.Zero), androidx.compose.State<androidx.ui.unit.Px> y = mutableStateOf(Px.Zero));
   }
 
   public final class LayoutPaddingKt {
-    method public static androidx.ui.core.Modifier absolutePadding-AwkAAmk(androidx.ui.core.Modifier, float left = 0.dp, float top = 0.dp, float right = 0.dp, float bottom = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier absolutePadding-AwkAAmk(androidx.ui.core.Modifier, float left = 0.dp, float top = 0.dp, float right = 0.dp, float bottom = 0.dp);
     method public static androidx.ui.core.Modifier padding(androidx.ui.core.Modifier, androidx.ui.layout.InnerPadding padding);
-    method public static androidx.ui.core.Modifier padding-AwkAAmk(androidx.ui.core.Modifier, float start = 0.dp, float top = 0.dp, float end = 0.dp, float bottom = 0.dp);
-    method public static androidx.ui.core.Modifier padding-H3qe284(androidx.ui.core.Modifier, float all);
-    method public static androidx.ui.core.Modifier padding-qJOR85M(androidx.ui.core.Modifier, float horizontal = 0.dp, float vertical = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier padding-AwkAAmk(androidx.ui.core.Modifier, float start = 0.dp, float top = 0.dp, float end = 0.dp, float bottom = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier padding-H3qe284(androidx.ui.core.Modifier, float all);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier padding-qJOR85M(androidx.ui.core.Modifier, float horizontal = 0.dp, float vertical = 0.dp);
   }
 
   @kotlin.DslMarker public @interface LayoutScopeMarker {
   }
 
   public final class LayoutSizeKt {
-    method public static androidx.ui.core.Modifier defaultMinSizeConstraints-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier fillMaxHeight(androidx.ui.core.Modifier);
-    method public static androidx.ui.core.Modifier fillMaxSize(androidx.ui.core.Modifier);
-    method public static androidx.ui.core.Modifier fillMaxWidth(androidx.ui.core.Modifier);
-    method public static androidx.ui.core.Modifier height-H3qe284(androidx.ui.core.Modifier, float height);
-    method public static androidx.ui.core.Modifier heightIn-qJOR85M(androidx.ui.core.Modifier, float minHeight = Dp.Unspecified, float maxHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier preferredHeight-H3qe284(androidx.ui.core.Modifier, float height);
-    method public static androidx.ui.core.Modifier preferredHeightIn-qJOR85M(androidx.ui.core.Modifier, float minHeight = Dp.Unspecified, float maxHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier preferredSize-H3qe284(androidx.ui.core.Modifier, float size);
-    method public static androidx.ui.core.Modifier preferredSize-qJOR85M(androidx.ui.core.Modifier, float width, float height);
-    method public static androidx.ui.core.Modifier preferredSizeIn(androidx.ui.core.Modifier, androidx.ui.layout.DpConstraints constraints);
-    method public static androidx.ui.core.Modifier preferredSizeIn-AwkAAmk(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified, float maxWidth = Dp.Unspecified, float maxHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier preferredWidth-H3qe284(androidx.ui.core.Modifier, float width);
-    method public static androidx.ui.core.Modifier preferredWidthIn-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float maxWidth = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier size-H3qe284(androidx.ui.core.Modifier, float size);
-    method public static androidx.ui.core.Modifier size-qJOR85M(androidx.ui.core.Modifier, float width, float height);
-    method public static androidx.ui.core.Modifier sizeIn(androidx.ui.core.Modifier, androidx.ui.layout.DpConstraints constraints);
-    method public static androidx.ui.core.Modifier sizeIn-AwkAAmk(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified, float maxWidth = Dp.Unspecified, float maxHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier width-H3qe284(androidx.ui.core.Modifier, float width);
-    method public static androidx.ui.core.Modifier widthIn-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float maxWidth = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier wrapContentHeight(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Vertical align = Alignment.CenterVertically);
-    method public static androidx.ui.core.Modifier wrapContentSize(androidx.ui.core.Modifier, androidx.ui.core.Alignment align = Alignment.Center);
-    method public static androidx.ui.core.Modifier wrapContentWidth(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Horizontal align = Alignment.CenterHorizontally);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier defaultMinSizeConstraints-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier fillMaxHeight(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier fillMaxSize(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier fillMaxWidth(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier height-H3qe284(androidx.ui.core.Modifier, float height);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier heightIn-qJOR85M(androidx.ui.core.Modifier, float minHeight = Dp.Unspecified, float maxHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredHeight-H3qe284(androidx.ui.core.Modifier, float height);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredHeightIn-qJOR85M(androidx.ui.core.Modifier, float minHeight = Dp.Unspecified, float maxHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredSize-H3qe284(androidx.ui.core.Modifier, float size);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredSize-qJOR85M(androidx.ui.core.Modifier, float width, float height);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredSizeIn(androidx.ui.core.Modifier, androidx.ui.layout.DpConstraints constraints);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredSizeIn-AwkAAmk(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified, float maxWidth = Dp.Unspecified, float maxHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredWidth-H3qe284(androidx.ui.core.Modifier, float width);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredWidthIn-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float maxWidth = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier size-H3qe284(androidx.ui.core.Modifier, float size);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier size-qJOR85M(androidx.ui.core.Modifier, float width, float height);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier sizeIn(androidx.ui.core.Modifier, androidx.ui.layout.DpConstraints constraints);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier sizeIn-AwkAAmk(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified, float maxWidth = Dp.Unspecified, float maxHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier width-H3qe284(androidx.ui.core.Modifier, float width);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier widthIn-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float maxWidth = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier wrapContentHeight(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Vertical align = Alignment.CenterVertically);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier wrapContentSize(androidx.ui.core.Modifier, androidx.ui.core.Alignment align = Alignment.Center);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier wrapContentWidth(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Horizontal align = Alignment.CenterHorizontally);
   }
 
   public enum MainAxisAlignment {
@@ -410,14 +410,14 @@
   }
 
   public final class RowKt {
-    method public static void Row(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.layout.Arrangement.Horizontal horizontalArrangement = Arrangement.Start, androidx.ui.core.Alignment.Vertical verticalGravity = Alignment.Top, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Row(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.layout.Arrangement.Horizontal horizontalArrangement = Arrangement.Start, androidx.ui.core.Alignment.Vertical verticalGravity = Alignment.Top, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> children);
   }
 
-  @androidx.ui.layout.LayoutScopeMarker public final class RowScope {
-    method public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, androidx.ui.core.HorizontalAlignmentLine alignmentLine);
-    method public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.Measured,androidx.ui.unit.IntPx> alignmentLineBlock);
-    method public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Vertical align);
-    method public androidx.ui.core.Modifier weight(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float weight, boolean fill = true);
+  @androidx.compose.Immutable @androidx.ui.layout.LayoutScopeMarker public final class RowScope {
+    method @androidx.compose.Stable public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, androidx.ui.core.HorizontalAlignmentLine alignmentLine);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.Measured,androidx.ui.unit.IntPx> alignmentLineBlock);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Vertical align);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier weight(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float weight, boolean fill = true);
     field public static final androidx.ui.layout.RowScope! INSTANCE;
   }
 
@@ -427,17 +427,17 @@
   }
 
   public final class SpacerKt {
-    method public static void Spacer(androidx.ui.core.Modifier modifier);
+    method @androidx.compose.Composable public static void Spacer(androidx.ui.core.Modifier modifier);
   }
 
   public final class StackKt {
-    method public static void Stack(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.layout.StackScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Stack(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.layout.StackScope,kotlin.Unit> children);
   }
 
-  @androidx.ui.layout.LayoutScopeMarker public final class StackScope {
+  @androidx.compose.Immutable @androidx.ui.layout.LayoutScopeMarker public final class StackScope {
     ctor public StackScope();
-    method public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment align);
-    method public androidx.ui.core.Modifier matchParentSize(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment align);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier matchParentSize(androidx.ui.core.Modifier);
   }
 
 }
diff --git a/ui/ui-layout/api/current.txt b/ui/ui-layout/api/current.txt
index b2841cd..d1db5d8 100644
--- a/ui/ui-layout/api/current.txt
+++ b/ui/ui-layout/api/current.txt
@@ -2,11 +2,11 @@
 package androidx.ui.layout {
 
   public final class AlignmentLineKt {
-    method @Deprecated public static void AlignmentLineOffset-QVeNkNc(androidx.ui.core.AlignmentLine alignmentLine, androidx.ui.core.Modifier modifier = Modifier, float before = 0.dp, float after = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static androidx.ui.core.Modifier relativePaddingFrom-J8n-V1w(androidx.ui.core.Modifier, androidx.ui.core.AlignmentLine alignmentLine, float before = 0.dp, float after = 0.dp);
+    method @Deprecated @androidx.compose.Composable public static void AlignmentLineOffset-QVeNkNc(androidx.ui.core.AlignmentLine alignmentLine, androidx.ui.core.Modifier modifier = Modifier, float before = 0.dp, float after = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier relativePaddingFrom-J8n-V1w(androidx.ui.core.Modifier, androidx.ui.core.AlignmentLine alignmentLine, float before = 0.dp, float after = 0.dp);
   }
 
-  public interface Arrangement {
+  @androidx.compose.Immutable public interface Arrangement {
     method public java.util.List<androidx.ui.unit.IntPx> arrange-SVHdN54(int totalSize, java.util.List<androidx.ui.unit.IntPx> size, androidx.ui.core.LayoutDirection layoutDirection);
     field @Deprecated public static final androidx.ui.layout.Arrangement.Companion! Companion;
   }
@@ -58,24 +58,24 @@
   }
 
   public final class ColumnKt {
-    method public static void Column(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.layout.Arrangement.Vertical verticalArrangement = Arrangement.Top, androidx.ui.core.Alignment.Horizontal horizontalGravity = Alignment.Start, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Column(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.layout.Arrangement.Vertical verticalArrangement = Arrangement.Top, androidx.ui.core.Alignment.Horizontal horizontalGravity = Alignment.Start, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> children);
   }
 
-  @androidx.ui.layout.LayoutScopeMarker public final class ColumnScope {
-    method public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, androidx.ui.core.VerticalAlignmentLine alignmentLine);
-    method public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.Measured,androidx.ui.unit.IntPx> alignmentLineBlock);
-    method public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Horizontal align);
-    method public androidx.ui.core.Modifier weight(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float weight, boolean fill = true);
+  @androidx.compose.Immutable @androidx.ui.layout.LayoutScopeMarker public final class ColumnScope {
+    method @androidx.compose.Stable public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, androidx.ui.core.VerticalAlignmentLine alignmentLine);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.Measured,androidx.ui.unit.IntPx> alignmentLineBlock);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Horizontal align);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier weight(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float weight, boolean fill = true);
     field public static final androidx.ui.layout.ColumnScope! INSTANCE;
   }
 
   public final class ConstraintLayoutKt {
-    method @androidx.ui.layout.ExperimentalLayout public static void ConstraintLayout(androidx.ui.layout.ConstraintSet constraintSet, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable @androidx.ui.layout.ExperimentalLayout public static void ConstraintLayout(androidx.ui.layout.ConstraintSet constraintSet, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
-  public final class ConstraintSet {
+  @androidx.compose.Immutable public final class ConstraintSet {
     ctor public ConstraintSet(internal kotlin.jvm.functions.Function1<? super androidx.ui.layout.ConstraintSetBuilderScope,kotlin.Unit> description);
-    method public androidx.ui.layout.ConstraintSet copy(kotlin.jvm.functions.Function1<? super androidx.ui.layout.ConstraintSetBuilderScope,kotlin.Unit> description);
+    method @androidx.compose.Immutable public androidx.ui.layout.ConstraintSet copy(kotlin.jvm.functions.Function1<? super androidx.ui.layout.ConstraintSetBuilderScope,kotlin.Unit> description);
   }
 
   public final class ConstraintSetBuilderScope {
@@ -260,7 +260,7 @@
     property public final androidx.ui.layout.ConstraintSetBuilderScope.HorizontalAnchor.ConstrainedLayoutAnchor top;
   }
 
-  public final class CrossAxisAlignment {
+  @androidx.compose.Immutable public final class CrossAxisAlignment {
     field public static final androidx.ui.layout.CrossAxisAlignment.Companion! Companion;
   }
 
@@ -274,12 +274,12 @@
     property public final androidx.ui.layout.CrossAxisAlignment Start;
   }
 
-  public final class DpConstraints {
+  @androidx.compose.Immutable public final class DpConstraints {
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
-    method public androidx.ui.layout.DpConstraints copy-rIHlIKc(float minWidth, float maxWidth, float minHeight, float maxHeight);
+    method @androidx.compose.Immutable public androidx.ui.layout.DpConstraints copy-rIHlIKc(float minWidth, float maxWidth, float minHeight, float maxHeight);
     method public float getMaxHeight();
     method public float getMaxWidth();
     method public float getMinHeight();
@@ -288,25 +288,25 @@
   }
 
   public static final class DpConstraints.Companion {
-    method public androidx.ui.layout.DpConstraints fixed-98Cn76g(float width, float height);
-    method public androidx.ui.layout.DpConstraints fixedHeight-ipo6vVg(float height);
-    method public androidx.ui.layout.DpConstraints fixedWidth-ipo6vVg(float width);
+    method @androidx.compose.Stable public androidx.ui.layout.DpConstraints fixed-98Cn76g(float width, float height);
+    method @androidx.compose.Stable public androidx.ui.layout.DpConstraints fixedHeight-ipo6vVg(float height);
+    method @androidx.compose.Stable public androidx.ui.layout.DpConstraints fixedWidth-ipo6vVg(float width);
   }
 
   public final class DpConstraintsKt {
-    method public static androidx.ui.core.Constraints Constraints(androidx.ui.unit.Density, androidx.ui.layout.DpConstraints dpConstraints);
-    method public static androidx.ui.layout.DpConstraints DpConstraints(androidx.ui.unit.Density, androidx.ui.core.Constraints constraints);
-    method public static androidx.ui.layout.DpConstraints enforce(androidx.ui.layout.DpConstraints, androidx.ui.layout.DpConstraints otherConstraints);
+    method @androidx.compose.Stable public static androidx.ui.core.Constraints Constraints(androidx.ui.unit.Density, androidx.ui.layout.DpConstraints dpConstraints);
+    method @androidx.compose.Stable public static androidx.ui.layout.DpConstraints DpConstraints(androidx.ui.unit.Density, androidx.ui.core.Constraints constraints);
+    method @androidx.compose.Stable public static androidx.ui.layout.DpConstraints enforce(androidx.ui.layout.DpConstraints, androidx.ui.layout.DpConstraints otherConstraints);
     method public static boolean getHasBoundedHeight(androidx.ui.layout.DpConstraints);
     method public static boolean getHasBoundedWidth(androidx.ui.layout.DpConstraints);
     method public static boolean getHasFixedHeight(androidx.ui.layout.DpConstraints);
     method public static boolean getHasFixedWidth(androidx.ui.layout.DpConstraints);
     method public static boolean getSatisfiable(androidx.ui.layout.DpConstraints);
     method public static boolean isZero(androidx.ui.layout.DpConstraints);
-    method public static androidx.ui.layout.DpConstraints offset-bB8corQ(androidx.ui.layout.DpConstraints, float horizontal = 0.dp, float vertical = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.layout.DpConstraints offset-bB8corQ(androidx.ui.layout.DpConstraints, float horizontal = 0.dp, float vertical = 0.dp);
   }
 
-  public @interface ExperimentalLayout {
+  @kotlin.RequiresOptIn(message="The API of this layout is experimental and is likely to change in the future.") public @interface ExperimentalLayout {
   }
 
   public enum FlowCrossAxisAlignment {
@@ -316,16 +316,16 @@
   }
 
   public final class FlowKt {
-    method @androidx.ui.layout.ExperimentalLayout public static void FlowColumn-UKRdXhE(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, float mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, float crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @androidx.ui.layout.ExperimentalLayout public static void FlowRow-UKRdXhE(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, float mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, float crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable @androidx.ui.layout.ExperimentalLayout public static void FlowColumn-UKRdXhE(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, float mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, float crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable @androidx.ui.layout.ExperimentalLayout public static void FlowRow-UKRdXhE(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, float mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, float crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
-  public final class InnerPadding {
+  @androidx.compose.Immutable public final class InnerPadding {
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
-    method public androidx.ui.layout.InnerPadding copy-rIHlIKc(float start, float top, float end, float bottom);
+    method @androidx.compose.Immutable public androidx.ui.layout.InnerPadding copy-rIHlIKc(float start, float top, float end, float bottom);
     method public float getBottom();
     method public float getEnd();
     method public float getStart();
@@ -333,12 +333,12 @@
   }
 
   public final class IntrinsicKt {
-    method @Deprecated public static void MaxIntrinsicHeight(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @Deprecated public static void MaxIntrinsicWidth(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @Deprecated public static void MinIntrinsicHeight(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @Deprecated public static void MinIntrinsicWidth(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @androidx.ui.layout.ExperimentalLayout public static androidx.ui.core.Modifier preferredHeight(androidx.ui.core.Modifier, androidx.ui.layout.IntrinsicSize intrinsicSize);
-    method @androidx.ui.layout.ExperimentalLayout public static androidx.ui.core.Modifier preferredWidth(androidx.ui.core.Modifier, androidx.ui.layout.IntrinsicSize intrinsicSize);
+    method @Deprecated @androidx.compose.Composable public static void MaxIntrinsicHeight(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @Deprecated @androidx.compose.Composable public static void MaxIntrinsicWidth(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @Deprecated @androidx.compose.Composable public static void MinIntrinsicHeight(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @Deprecated @androidx.compose.Composable public static void MinIntrinsicWidth(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Stable @androidx.ui.layout.ExperimentalLayout public static androidx.ui.core.Modifier preferredHeight(androidx.ui.core.Modifier, androidx.ui.layout.IntrinsicSize intrinsicSize);
+    method @androidx.compose.Stable @androidx.ui.layout.ExperimentalLayout public static androidx.ui.core.Modifier preferredWidth(androidx.ui.core.Modifier, androidx.ui.layout.IntrinsicSize intrinsicSize);
   }
 
   public enum IntrinsicSize {
@@ -347,7 +347,7 @@
   }
 
   public final class LayoutAspectRatioKt {
-    method public static androidx.ui.core.Modifier aspectRatio(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float ratio);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier aspectRatio(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float ratio);
   }
 
   public final class LayoutDirectionsKt {
@@ -356,45 +356,45 @@
   }
 
   public final class LayoutOffsetKt {
-    method public static androidx.ui.core.Modifier offset-qJOR85M(androidx.ui.core.Modifier, float x = 0.dp, float y = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier offset-qJOR85M(androidx.ui.core.Modifier, float x = 0.dp, float y = 0.dp);
     method public static androidx.ui.core.Modifier offsetPx(androidx.ui.core.Modifier, androidx.compose.State<androidx.ui.unit.Px> x = mutableStateOf(Px.Zero), androidx.compose.State<androidx.ui.unit.Px> y = mutableStateOf(Px.Zero));
   }
 
   public final class LayoutPaddingKt {
-    method public static androidx.ui.core.Modifier absolutePadding-AwkAAmk(androidx.ui.core.Modifier, float left = 0.dp, float top = 0.dp, float right = 0.dp, float bottom = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier absolutePadding-AwkAAmk(androidx.ui.core.Modifier, float left = 0.dp, float top = 0.dp, float right = 0.dp, float bottom = 0.dp);
     method public static androidx.ui.core.Modifier padding(androidx.ui.core.Modifier, androidx.ui.layout.InnerPadding padding);
-    method public static androidx.ui.core.Modifier padding-AwkAAmk(androidx.ui.core.Modifier, float start = 0.dp, float top = 0.dp, float end = 0.dp, float bottom = 0.dp);
-    method public static androidx.ui.core.Modifier padding-H3qe284(androidx.ui.core.Modifier, float all);
-    method public static androidx.ui.core.Modifier padding-qJOR85M(androidx.ui.core.Modifier, float horizontal = 0.dp, float vertical = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier padding-AwkAAmk(androidx.ui.core.Modifier, float start = 0.dp, float top = 0.dp, float end = 0.dp, float bottom = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier padding-H3qe284(androidx.ui.core.Modifier, float all);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier padding-qJOR85M(androidx.ui.core.Modifier, float horizontal = 0.dp, float vertical = 0.dp);
   }
 
   @kotlin.DslMarker public @interface LayoutScopeMarker {
   }
 
   public final class LayoutSizeKt {
-    method public static androidx.ui.core.Modifier defaultMinSizeConstraints-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier fillMaxHeight(androidx.ui.core.Modifier);
-    method public static androidx.ui.core.Modifier fillMaxSize(androidx.ui.core.Modifier);
-    method public static androidx.ui.core.Modifier fillMaxWidth(androidx.ui.core.Modifier);
-    method public static androidx.ui.core.Modifier height-H3qe284(androidx.ui.core.Modifier, float height);
-    method public static androidx.ui.core.Modifier heightIn-qJOR85M(androidx.ui.core.Modifier, float minHeight = Dp.Unspecified, float maxHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier preferredHeight-H3qe284(androidx.ui.core.Modifier, float height);
-    method public static androidx.ui.core.Modifier preferredHeightIn-qJOR85M(androidx.ui.core.Modifier, float minHeight = Dp.Unspecified, float maxHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier preferredSize-H3qe284(androidx.ui.core.Modifier, float size);
-    method public static androidx.ui.core.Modifier preferredSize-qJOR85M(androidx.ui.core.Modifier, float width, float height);
-    method public static androidx.ui.core.Modifier preferredSizeIn(androidx.ui.core.Modifier, androidx.ui.layout.DpConstraints constraints);
-    method public static androidx.ui.core.Modifier preferredSizeIn-AwkAAmk(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified, float maxWidth = Dp.Unspecified, float maxHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier preferredWidth-H3qe284(androidx.ui.core.Modifier, float width);
-    method public static androidx.ui.core.Modifier preferredWidthIn-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float maxWidth = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier size-H3qe284(androidx.ui.core.Modifier, float size);
-    method public static androidx.ui.core.Modifier size-qJOR85M(androidx.ui.core.Modifier, float width, float height);
-    method public static androidx.ui.core.Modifier sizeIn(androidx.ui.core.Modifier, androidx.ui.layout.DpConstraints constraints);
-    method public static androidx.ui.core.Modifier sizeIn-AwkAAmk(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified, float maxWidth = Dp.Unspecified, float maxHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier width-H3qe284(androidx.ui.core.Modifier, float width);
-    method public static androidx.ui.core.Modifier widthIn-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float maxWidth = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier wrapContentHeight(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Vertical align = Alignment.CenterVertically);
-    method public static androidx.ui.core.Modifier wrapContentSize(androidx.ui.core.Modifier, androidx.ui.core.Alignment align = Alignment.Center);
-    method public static androidx.ui.core.Modifier wrapContentWidth(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Horizontal align = Alignment.CenterHorizontally);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier defaultMinSizeConstraints-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier fillMaxHeight(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier fillMaxSize(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier fillMaxWidth(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier height-H3qe284(androidx.ui.core.Modifier, float height);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier heightIn-qJOR85M(androidx.ui.core.Modifier, float minHeight = Dp.Unspecified, float maxHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredHeight-H3qe284(androidx.ui.core.Modifier, float height);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredHeightIn-qJOR85M(androidx.ui.core.Modifier, float minHeight = Dp.Unspecified, float maxHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredSize-H3qe284(androidx.ui.core.Modifier, float size);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredSize-qJOR85M(androidx.ui.core.Modifier, float width, float height);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredSizeIn(androidx.ui.core.Modifier, androidx.ui.layout.DpConstraints constraints);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredSizeIn-AwkAAmk(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified, float maxWidth = Dp.Unspecified, float maxHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredWidth-H3qe284(androidx.ui.core.Modifier, float width);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredWidthIn-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float maxWidth = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier size-H3qe284(androidx.ui.core.Modifier, float size);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier size-qJOR85M(androidx.ui.core.Modifier, float width, float height);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier sizeIn(androidx.ui.core.Modifier, androidx.ui.layout.DpConstraints constraints);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier sizeIn-AwkAAmk(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified, float maxWidth = Dp.Unspecified, float maxHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier width-H3qe284(androidx.ui.core.Modifier, float width);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier widthIn-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float maxWidth = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier wrapContentHeight(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Vertical align = Alignment.CenterVertically);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier wrapContentSize(androidx.ui.core.Modifier, androidx.ui.core.Alignment align = Alignment.Center);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier wrapContentWidth(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Horizontal align = Alignment.CenterHorizontally);
   }
 
   public enum MainAxisAlignment {
@@ -410,14 +410,14 @@
   }
 
   public final class RowKt {
-    method public static void Row(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.layout.Arrangement.Horizontal horizontalArrangement = Arrangement.Start, androidx.ui.core.Alignment.Vertical verticalGravity = Alignment.Top, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Row(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.layout.Arrangement.Horizontal horizontalArrangement = Arrangement.Start, androidx.ui.core.Alignment.Vertical verticalGravity = Alignment.Top, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> children);
   }
 
-  @androidx.ui.layout.LayoutScopeMarker public final class RowScope {
-    method public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, androidx.ui.core.HorizontalAlignmentLine alignmentLine);
-    method public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.Measured,androidx.ui.unit.IntPx> alignmentLineBlock);
-    method public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Vertical align);
-    method public androidx.ui.core.Modifier weight(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float weight, boolean fill = true);
+  @androidx.compose.Immutable @androidx.ui.layout.LayoutScopeMarker public final class RowScope {
+    method @androidx.compose.Stable public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, androidx.ui.core.HorizontalAlignmentLine alignmentLine);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.Measured,androidx.ui.unit.IntPx> alignmentLineBlock);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Vertical align);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier weight(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float weight, boolean fill = true);
     field public static final androidx.ui.layout.RowScope! INSTANCE;
   }
 
@@ -427,17 +427,17 @@
   }
 
   public final class SpacerKt {
-    method public static void Spacer(androidx.ui.core.Modifier modifier);
+    method @androidx.compose.Composable public static void Spacer(androidx.ui.core.Modifier modifier);
   }
 
   public final class StackKt {
-    method public static void Stack(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.layout.StackScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Stack(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.layout.StackScope,kotlin.Unit> children);
   }
 
-  @androidx.ui.layout.LayoutScopeMarker public final class StackScope {
+  @androidx.compose.Immutable @androidx.ui.layout.LayoutScopeMarker public final class StackScope {
     ctor public StackScope();
-    method public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment align);
-    method public androidx.ui.core.Modifier matchParentSize(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment align);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier matchParentSize(androidx.ui.core.Modifier);
   }
 
 }
diff --git a/ui/ui-layout/api/public_plus_experimental_0.1.0-dev14.txt b/ui/ui-layout/api/public_plus_experimental_0.1.0-dev14.txt
index b2841cd..d1db5d8 100644
--- a/ui/ui-layout/api/public_plus_experimental_0.1.0-dev14.txt
+++ b/ui/ui-layout/api/public_plus_experimental_0.1.0-dev14.txt
@@ -2,11 +2,11 @@
 package androidx.ui.layout {
 
   public final class AlignmentLineKt {
-    method @Deprecated public static void AlignmentLineOffset-QVeNkNc(androidx.ui.core.AlignmentLine alignmentLine, androidx.ui.core.Modifier modifier = Modifier, float before = 0.dp, float after = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static androidx.ui.core.Modifier relativePaddingFrom-J8n-V1w(androidx.ui.core.Modifier, androidx.ui.core.AlignmentLine alignmentLine, float before = 0.dp, float after = 0.dp);
+    method @Deprecated @androidx.compose.Composable public static void AlignmentLineOffset-QVeNkNc(androidx.ui.core.AlignmentLine alignmentLine, androidx.ui.core.Modifier modifier = Modifier, float before = 0.dp, float after = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier relativePaddingFrom-J8n-V1w(androidx.ui.core.Modifier, androidx.ui.core.AlignmentLine alignmentLine, float before = 0.dp, float after = 0.dp);
   }
 
-  public interface Arrangement {
+  @androidx.compose.Immutable public interface Arrangement {
     method public java.util.List<androidx.ui.unit.IntPx> arrange-SVHdN54(int totalSize, java.util.List<androidx.ui.unit.IntPx> size, androidx.ui.core.LayoutDirection layoutDirection);
     field @Deprecated public static final androidx.ui.layout.Arrangement.Companion! Companion;
   }
@@ -58,24 +58,24 @@
   }
 
   public final class ColumnKt {
-    method public static void Column(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.layout.Arrangement.Vertical verticalArrangement = Arrangement.Top, androidx.ui.core.Alignment.Horizontal horizontalGravity = Alignment.Start, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Column(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.layout.Arrangement.Vertical verticalArrangement = Arrangement.Top, androidx.ui.core.Alignment.Horizontal horizontalGravity = Alignment.Start, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> children);
   }
 
-  @androidx.ui.layout.LayoutScopeMarker public final class ColumnScope {
-    method public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, androidx.ui.core.VerticalAlignmentLine alignmentLine);
-    method public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.Measured,androidx.ui.unit.IntPx> alignmentLineBlock);
-    method public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Horizontal align);
-    method public androidx.ui.core.Modifier weight(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float weight, boolean fill = true);
+  @androidx.compose.Immutable @androidx.ui.layout.LayoutScopeMarker public final class ColumnScope {
+    method @androidx.compose.Stable public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, androidx.ui.core.VerticalAlignmentLine alignmentLine);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.Measured,androidx.ui.unit.IntPx> alignmentLineBlock);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Horizontal align);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier weight(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float weight, boolean fill = true);
     field public static final androidx.ui.layout.ColumnScope! INSTANCE;
   }
 
   public final class ConstraintLayoutKt {
-    method @androidx.ui.layout.ExperimentalLayout public static void ConstraintLayout(androidx.ui.layout.ConstraintSet constraintSet, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable @androidx.ui.layout.ExperimentalLayout public static void ConstraintLayout(androidx.ui.layout.ConstraintSet constraintSet, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
-  public final class ConstraintSet {
+  @androidx.compose.Immutable public final class ConstraintSet {
     ctor public ConstraintSet(internal kotlin.jvm.functions.Function1<? super androidx.ui.layout.ConstraintSetBuilderScope,kotlin.Unit> description);
-    method public androidx.ui.layout.ConstraintSet copy(kotlin.jvm.functions.Function1<? super androidx.ui.layout.ConstraintSetBuilderScope,kotlin.Unit> description);
+    method @androidx.compose.Immutable public androidx.ui.layout.ConstraintSet copy(kotlin.jvm.functions.Function1<? super androidx.ui.layout.ConstraintSetBuilderScope,kotlin.Unit> description);
   }
 
   public final class ConstraintSetBuilderScope {
@@ -260,7 +260,7 @@
     property public final androidx.ui.layout.ConstraintSetBuilderScope.HorizontalAnchor.ConstrainedLayoutAnchor top;
   }
 
-  public final class CrossAxisAlignment {
+  @androidx.compose.Immutable public final class CrossAxisAlignment {
     field public static final androidx.ui.layout.CrossAxisAlignment.Companion! Companion;
   }
 
@@ -274,12 +274,12 @@
     property public final androidx.ui.layout.CrossAxisAlignment Start;
   }
 
-  public final class DpConstraints {
+  @androidx.compose.Immutable public final class DpConstraints {
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
-    method public androidx.ui.layout.DpConstraints copy-rIHlIKc(float minWidth, float maxWidth, float minHeight, float maxHeight);
+    method @androidx.compose.Immutable public androidx.ui.layout.DpConstraints copy-rIHlIKc(float minWidth, float maxWidth, float minHeight, float maxHeight);
     method public float getMaxHeight();
     method public float getMaxWidth();
     method public float getMinHeight();
@@ -288,25 +288,25 @@
   }
 
   public static final class DpConstraints.Companion {
-    method public androidx.ui.layout.DpConstraints fixed-98Cn76g(float width, float height);
-    method public androidx.ui.layout.DpConstraints fixedHeight-ipo6vVg(float height);
-    method public androidx.ui.layout.DpConstraints fixedWidth-ipo6vVg(float width);
+    method @androidx.compose.Stable public androidx.ui.layout.DpConstraints fixed-98Cn76g(float width, float height);
+    method @androidx.compose.Stable public androidx.ui.layout.DpConstraints fixedHeight-ipo6vVg(float height);
+    method @androidx.compose.Stable public androidx.ui.layout.DpConstraints fixedWidth-ipo6vVg(float width);
   }
 
   public final class DpConstraintsKt {
-    method public static androidx.ui.core.Constraints Constraints(androidx.ui.unit.Density, androidx.ui.layout.DpConstraints dpConstraints);
-    method public static androidx.ui.layout.DpConstraints DpConstraints(androidx.ui.unit.Density, androidx.ui.core.Constraints constraints);
-    method public static androidx.ui.layout.DpConstraints enforce(androidx.ui.layout.DpConstraints, androidx.ui.layout.DpConstraints otherConstraints);
+    method @androidx.compose.Stable public static androidx.ui.core.Constraints Constraints(androidx.ui.unit.Density, androidx.ui.layout.DpConstraints dpConstraints);
+    method @androidx.compose.Stable public static androidx.ui.layout.DpConstraints DpConstraints(androidx.ui.unit.Density, androidx.ui.core.Constraints constraints);
+    method @androidx.compose.Stable public static androidx.ui.layout.DpConstraints enforce(androidx.ui.layout.DpConstraints, androidx.ui.layout.DpConstraints otherConstraints);
     method public static boolean getHasBoundedHeight(androidx.ui.layout.DpConstraints);
     method public static boolean getHasBoundedWidth(androidx.ui.layout.DpConstraints);
     method public static boolean getHasFixedHeight(androidx.ui.layout.DpConstraints);
     method public static boolean getHasFixedWidth(androidx.ui.layout.DpConstraints);
     method public static boolean getSatisfiable(androidx.ui.layout.DpConstraints);
     method public static boolean isZero(androidx.ui.layout.DpConstraints);
-    method public static androidx.ui.layout.DpConstraints offset-bB8corQ(androidx.ui.layout.DpConstraints, float horizontal = 0.dp, float vertical = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.layout.DpConstraints offset-bB8corQ(androidx.ui.layout.DpConstraints, float horizontal = 0.dp, float vertical = 0.dp);
   }
 
-  public @interface ExperimentalLayout {
+  @kotlin.RequiresOptIn(message="The API of this layout is experimental and is likely to change in the future.") public @interface ExperimentalLayout {
   }
 
   public enum FlowCrossAxisAlignment {
@@ -316,16 +316,16 @@
   }
 
   public final class FlowKt {
-    method @androidx.ui.layout.ExperimentalLayout public static void FlowColumn-UKRdXhE(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, float mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, float crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @androidx.ui.layout.ExperimentalLayout public static void FlowRow-UKRdXhE(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, float mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, float crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable @androidx.ui.layout.ExperimentalLayout public static void FlowColumn-UKRdXhE(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, float mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, float crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable @androidx.ui.layout.ExperimentalLayout public static void FlowRow-UKRdXhE(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, float mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, float crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
-  public final class InnerPadding {
+  @androidx.compose.Immutable public final class InnerPadding {
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
-    method public androidx.ui.layout.InnerPadding copy-rIHlIKc(float start, float top, float end, float bottom);
+    method @androidx.compose.Immutable public androidx.ui.layout.InnerPadding copy-rIHlIKc(float start, float top, float end, float bottom);
     method public float getBottom();
     method public float getEnd();
     method public float getStart();
@@ -333,12 +333,12 @@
   }
 
   public final class IntrinsicKt {
-    method @Deprecated public static void MaxIntrinsicHeight(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @Deprecated public static void MaxIntrinsicWidth(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @Deprecated public static void MinIntrinsicHeight(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @Deprecated public static void MinIntrinsicWidth(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @androidx.ui.layout.ExperimentalLayout public static androidx.ui.core.Modifier preferredHeight(androidx.ui.core.Modifier, androidx.ui.layout.IntrinsicSize intrinsicSize);
-    method @androidx.ui.layout.ExperimentalLayout public static androidx.ui.core.Modifier preferredWidth(androidx.ui.core.Modifier, androidx.ui.layout.IntrinsicSize intrinsicSize);
+    method @Deprecated @androidx.compose.Composable public static void MaxIntrinsicHeight(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @Deprecated @androidx.compose.Composable public static void MaxIntrinsicWidth(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @Deprecated @androidx.compose.Composable public static void MinIntrinsicHeight(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @Deprecated @androidx.compose.Composable public static void MinIntrinsicWidth(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Stable @androidx.ui.layout.ExperimentalLayout public static androidx.ui.core.Modifier preferredHeight(androidx.ui.core.Modifier, androidx.ui.layout.IntrinsicSize intrinsicSize);
+    method @androidx.compose.Stable @androidx.ui.layout.ExperimentalLayout public static androidx.ui.core.Modifier preferredWidth(androidx.ui.core.Modifier, androidx.ui.layout.IntrinsicSize intrinsicSize);
   }
 
   public enum IntrinsicSize {
@@ -347,7 +347,7 @@
   }
 
   public final class LayoutAspectRatioKt {
-    method public static androidx.ui.core.Modifier aspectRatio(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float ratio);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier aspectRatio(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float ratio);
   }
 
   public final class LayoutDirectionsKt {
@@ -356,45 +356,45 @@
   }
 
   public final class LayoutOffsetKt {
-    method public static androidx.ui.core.Modifier offset-qJOR85M(androidx.ui.core.Modifier, float x = 0.dp, float y = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier offset-qJOR85M(androidx.ui.core.Modifier, float x = 0.dp, float y = 0.dp);
     method public static androidx.ui.core.Modifier offsetPx(androidx.ui.core.Modifier, androidx.compose.State<androidx.ui.unit.Px> x = mutableStateOf(Px.Zero), androidx.compose.State<androidx.ui.unit.Px> y = mutableStateOf(Px.Zero));
   }
 
   public final class LayoutPaddingKt {
-    method public static androidx.ui.core.Modifier absolutePadding-AwkAAmk(androidx.ui.core.Modifier, float left = 0.dp, float top = 0.dp, float right = 0.dp, float bottom = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier absolutePadding-AwkAAmk(androidx.ui.core.Modifier, float left = 0.dp, float top = 0.dp, float right = 0.dp, float bottom = 0.dp);
     method public static androidx.ui.core.Modifier padding(androidx.ui.core.Modifier, androidx.ui.layout.InnerPadding padding);
-    method public static androidx.ui.core.Modifier padding-AwkAAmk(androidx.ui.core.Modifier, float start = 0.dp, float top = 0.dp, float end = 0.dp, float bottom = 0.dp);
-    method public static androidx.ui.core.Modifier padding-H3qe284(androidx.ui.core.Modifier, float all);
-    method public static androidx.ui.core.Modifier padding-qJOR85M(androidx.ui.core.Modifier, float horizontal = 0.dp, float vertical = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier padding-AwkAAmk(androidx.ui.core.Modifier, float start = 0.dp, float top = 0.dp, float end = 0.dp, float bottom = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier padding-H3qe284(androidx.ui.core.Modifier, float all);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier padding-qJOR85M(androidx.ui.core.Modifier, float horizontal = 0.dp, float vertical = 0.dp);
   }
 
   @kotlin.DslMarker public @interface LayoutScopeMarker {
   }
 
   public final class LayoutSizeKt {
-    method public static androidx.ui.core.Modifier defaultMinSizeConstraints-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier fillMaxHeight(androidx.ui.core.Modifier);
-    method public static androidx.ui.core.Modifier fillMaxSize(androidx.ui.core.Modifier);
-    method public static androidx.ui.core.Modifier fillMaxWidth(androidx.ui.core.Modifier);
-    method public static androidx.ui.core.Modifier height-H3qe284(androidx.ui.core.Modifier, float height);
-    method public static androidx.ui.core.Modifier heightIn-qJOR85M(androidx.ui.core.Modifier, float minHeight = Dp.Unspecified, float maxHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier preferredHeight-H3qe284(androidx.ui.core.Modifier, float height);
-    method public static androidx.ui.core.Modifier preferredHeightIn-qJOR85M(androidx.ui.core.Modifier, float minHeight = Dp.Unspecified, float maxHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier preferredSize-H3qe284(androidx.ui.core.Modifier, float size);
-    method public static androidx.ui.core.Modifier preferredSize-qJOR85M(androidx.ui.core.Modifier, float width, float height);
-    method public static androidx.ui.core.Modifier preferredSizeIn(androidx.ui.core.Modifier, androidx.ui.layout.DpConstraints constraints);
-    method public static androidx.ui.core.Modifier preferredSizeIn-AwkAAmk(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified, float maxWidth = Dp.Unspecified, float maxHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier preferredWidth-H3qe284(androidx.ui.core.Modifier, float width);
-    method public static androidx.ui.core.Modifier preferredWidthIn-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float maxWidth = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier size-H3qe284(androidx.ui.core.Modifier, float size);
-    method public static androidx.ui.core.Modifier size-qJOR85M(androidx.ui.core.Modifier, float width, float height);
-    method public static androidx.ui.core.Modifier sizeIn(androidx.ui.core.Modifier, androidx.ui.layout.DpConstraints constraints);
-    method public static androidx.ui.core.Modifier sizeIn-AwkAAmk(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified, float maxWidth = Dp.Unspecified, float maxHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier width-H3qe284(androidx.ui.core.Modifier, float width);
-    method public static androidx.ui.core.Modifier widthIn-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float maxWidth = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier wrapContentHeight(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Vertical align = Alignment.CenterVertically);
-    method public static androidx.ui.core.Modifier wrapContentSize(androidx.ui.core.Modifier, androidx.ui.core.Alignment align = Alignment.Center);
-    method public static androidx.ui.core.Modifier wrapContentWidth(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Horizontal align = Alignment.CenterHorizontally);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier defaultMinSizeConstraints-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier fillMaxHeight(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier fillMaxSize(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier fillMaxWidth(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier height-H3qe284(androidx.ui.core.Modifier, float height);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier heightIn-qJOR85M(androidx.ui.core.Modifier, float minHeight = Dp.Unspecified, float maxHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredHeight-H3qe284(androidx.ui.core.Modifier, float height);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredHeightIn-qJOR85M(androidx.ui.core.Modifier, float minHeight = Dp.Unspecified, float maxHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredSize-H3qe284(androidx.ui.core.Modifier, float size);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredSize-qJOR85M(androidx.ui.core.Modifier, float width, float height);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredSizeIn(androidx.ui.core.Modifier, androidx.ui.layout.DpConstraints constraints);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredSizeIn-AwkAAmk(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified, float maxWidth = Dp.Unspecified, float maxHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredWidth-H3qe284(androidx.ui.core.Modifier, float width);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredWidthIn-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float maxWidth = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier size-H3qe284(androidx.ui.core.Modifier, float size);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier size-qJOR85M(androidx.ui.core.Modifier, float width, float height);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier sizeIn(androidx.ui.core.Modifier, androidx.ui.layout.DpConstraints constraints);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier sizeIn-AwkAAmk(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified, float maxWidth = Dp.Unspecified, float maxHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier width-H3qe284(androidx.ui.core.Modifier, float width);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier widthIn-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float maxWidth = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier wrapContentHeight(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Vertical align = Alignment.CenterVertically);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier wrapContentSize(androidx.ui.core.Modifier, androidx.ui.core.Alignment align = Alignment.Center);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier wrapContentWidth(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Horizontal align = Alignment.CenterHorizontally);
   }
 
   public enum MainAxisAlignment {
@@ -410,14 +410,14 @@
   }
 
   public final class RowKt {
-    method public static void Row(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.layout.Arrangement.Horizontal horizontalArrangement = Arrangement.Start, androidx.ui.core.Alignment.Vertical verticalGravity = Alignment.Top, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Row(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.layout.Arrangement.Horizontal horizontalArrangement = Arrangement.Start, androidx.ui.core.Alignment.Vertical verticalGravity = Alignment.Top, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> children);
   }
 
-  @androidx.ui.layout.LayoutScopeMarker public final class RowScope {
-    method public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, androidx.ui.core.HorizontalAlignmentLine alignmentLine);
-    method public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.Measured,androidx.ui.unit.IntPx> alignmentLineBlock);
-    method public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Vertical align);
-    method public androidx.ui.core.Modifier weight(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float weight, boolean fill = true);
+  @androidx.compose.Immutable @androidx.ui.layout.LayoutScopeMarker public final class RowScope {
+    method @androidx.compose.Stable public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, androidx.ui.core.HorizontalAlignmentLine alignmentLine);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.Measured,androidx.ui.unit.IntPx> alignmentLineBlock);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Vertical align);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier weight(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float weight, boolean fill = true);
     field public static final androidx.ui.layout.RowScope! INSTANCE;
   }
 
@@ -427,17 +427,17 @@
   }
 
   public final class SpacerKt {
-    method public static void Spacer(androidx.ui.core.Modifier modifier);
+    method @androidx.compose.Composable public static void Spacer(androidx.ui.core.Modifier modifier);
   }
 
   public final class StackKt {
-    method public static void Stack(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.layout.StackScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Stack(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.layout.StackScope,kotlin.Unit> children);
   }
 
-  @androidx.ui.layout.LayoutScopeMarker public final class StackScope {
+  @androidx.compose.Immutable @androidx.ui.layout.LayoutScopeMarker public final class StackScope {
     ctor public StackScope();
-    method public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment align);
-    method public androidx.ui.core.Modifier matchParentSize(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment align);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier matchParentSize(androidx.ui.core.Modifier);
   }
 
 }
diff --git a/ui/ui-layout/api/public_plus_experimental_current.txt b/ui/ui-layout/api/public_plus_experimental_current.txt
index b2841cd..d1db5d8 100644
--- a/ui/ui-layout/api/public_plus_experimental_current.txt
+++ b/ui/ui-layout/api/public_plus_experimental_current.txt
@@ -2,11 +2,11 @@
 package androidx.ui.layout {
 
   public final class AlignmentLineKt {
-    method @Deprecated public static void AlignmentLineOffset-QVeNkNc(androidx.ui.core.AlignmentLine alignmentLine, androidx.ui.core.Modifier modifier = Modifier, float before = 0.dp, float after = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static androidx.ui.core.Modifier relativePaddingFrom-J8n-V1w(androidx.ui.core.Modifier, androidx.ui.core.AlignmentLine alignmentLine, float before = 0.dp, float after = 0.dp);
+    method @Deprecated @androidx.compose.Composable public static void AlignmentLineOffset-QVeNkNc(androidx.ui.core.AlignmentLine alignmentLine, androidx.ui.core.Modifier modifier = Modifier, float before = 0.dp, float after = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier relativePaddingFrom-J8n-V1w(androidx.ui.core.Modifier, androidx.ui.core.AlignmentLine alignmentLine, float before = 0.dp, float after = 0.dp);
   }
 
-  public interface Arrangement {
+  @androidx.compose.Immutable public interface Arrangement {
     method public java.util.List<androidx.ui.unit.IntPx> arrange-SVHdN54(int totalSize, java.util.List<androidx.ui.unit.IntPx> size, androidx.ui.core.LayoutDirection layoutDirection);
     field @Deprecated public static final androidx.ui.layout.Arrangement.Companion! Companion;
   }
@@ -58,24 +58,24 @@
   }
 
   public final class ColumnKt {
-    method public static void Column(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.layout.Arrangement.Vertical verticalArrangement = Arrangement.Top, androidx.ui.core.Alignment.Horizontal horizontalGravity = Alignment.Start, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Column(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.layout.Arrangement.Vertical verticalArrangement = Arrangement.Top, androidx.ui.core.Alignment.Horizontal horizontalGravity = Alignment.Start, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> children);
   }
 
-  @androidx.ui.layout.LayoutScopeMarker public final class ColumnScope {
-    method public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, androidx.ui.core.VerticalAlignmentLine alignmentLine);
-    method public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.Measured,androidx.ui.unit.IntPx> alignmentLineBlock);
-    method public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Horizontal align);
-    method public androidx.ui.core.Modifier weight(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float weight, boolean fill = true);
+  @androidx.compose.Immutable @androidx.ui.layout.LayoutScopeMarker public final class ColumnScope {
+    method @androidx.compose.Stable public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, androidx.ui.core.VerticalAlignmentLine alignmentLine);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.Measured,androidx.ui.unit.IntPx> alignmentLineBlock);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Horizontal align);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier weight(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float weight, boolean fill = true);
     field public static final androidx.ui.layout.ColumnScope! INSTANCE;
   }
 
   public final class ConstraintLayoutKt {
-    method @androidx.ui.layout.ExperimentalLayout public static void ConstraintLayout(androidx.ui.layout.ConstraintSet constraintSet, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable @androidx.ui.layout.ExperimentalLayout public static void ConstraintLayout(androidx.ui.layout.ConstraintSet constraintSet, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
-  public final class ConstraintSet {
+  @androidx.compose.Immutable public final class ConstraintSet {
     ctor public ConstraintSet(internal kotlin.jvm.functions.Function1<? super androidx.ui.layout.ConstraintSetBuilderScope,kotlin.Unit> description);
-    method public androidx.ui.layout.ConstraintSet copy(kotlin.jvm.functions.Function1<? super androidx.ui.layout.ConstraintSetBuilderScope,kotlin.Unit> description);
+    method @androidx.compose.Immutable public androidx.ui.layout.ConstraintSet copy(kotlin.jvm.functions.Function1<? super androidx.ui.layout.ConstraintSetBuilderScope,kotlin.Unit> description);
   }
 
   public final class ConstraintSetBuilderScope {
@@ -260,7 +260,7 @@
     property public final androidx.ui.layout.ConstraintSetBuilderScope.HorizontalAnchor.ConstrainedLayoutAnchor top;
   }
 
-  public final class CrossAxisAlignment {
+  @androidx.compose.Immutable public final class CrossAxisAlignment {
     field public static final androidx.ui.layout.CrossAxisAlignment.Companion! Companion;
   }
 
@@ -274,12 +274,12 @@
     property public final androidx.ui.layout.CrossAxisAlignment Start;
   }
 
-  public final class DpConstraints {
+  @androidx.compose.Immutable public final class DpConstraints {
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
-    method public androidx.ui.layout.DpConstraints copy-rIHlIKc(float minWidth, float maxWidth, float minHeight, float maxHeight);
+    method @androidx.compose.Immutable public androidx.ui.layout.DpConstraints copy-rIHlIKc(float minWidth, float maxWidth, float minHeight, float maxHeight);
     method public float getMaxHeight();
     method public float getMaxWidth();
     method public float getMinHeight();
@@ -288,25 +288,25 @@
   }
 
   public static final class DpConstraints.Companion {
-    method public androidx.ui.layout.DpConstraints fixed-98Cn76g(float width, float height);
-    method public androidx.ui.layout.DpConstraints fixedHeight-ipo6vVg(float height);
-    method public androidx.ui.layout.DpConstraints fixedWidth-ipo6vVg(float width);
+    method @androidx.compose.Stable public androidx.ui.layout.DpConstraints fixed-98Cn76g(float width, float height);
+    method @androidx.compose.Stable public androidx.ui.layout.DpConstraints fixedHeight-ipo6vVg(float height);
+    method @androidx.compose.Stable public androidx.ui.layout.DpConstraints fixedWidth-ipo6vVg(float width);
   }
 
   public final class DpConstraintsKt {
-    method public static androidx.ui.core.Constraints Constraints(androidx.ui.unit.Density, androidx.ui.layout.DpConstraints dpConstraints);
-    method public static androidx.ui.layout.DpConstraints DpConstraints(androidx.ui.unit.Density, androidx.ui.core.Constraints constraints);
-    method public static androidx.ui.layout.DpConstraints enforce(androidx.ui.layout.DpConstraints, androidx.ui.layout.DpConstraints otherConstraints);
+    method @androidx.compose.Stable public static androidx.ui.core.Constraints Constraints(androidx.ui.unit.Density, androidx.ui.layout.DpConstraints dpConstraints);
+    method @androidx.compose.Stable public static androidx.ui.layout.DpConstraints DpConstraints(androidx.ui.unit.Density, androidx.ui.core.Constraints constraints);
+    method @androidx.compose.Stable public static androidx.ui.layout.DpConstraints enforce(androidx.ui.layout.DpConstraints, androidx.ui.layout.DpConstraints otherConstraints);
     method public static boolean getHasBoundedHeight(androidx.ui.layout.DpConstraints);
     method public static boolean getHasBoundedWidth(androidx.ui.layout.DpConstraints);
     method public static boolean getHasFixedHeight(androidx.ui.layout.DpConstraints);
     method public static boolean getHasFixedWidth(androidx.ui.layout.DpConstraints);
     method public static boolean getSatisfiable(androidx.ui.layout.DpConstraints);
     method public static boolean isZero(androidx.ui.layout.DpConstraints);
-    method public static androidx.ui.layout.DpConstraints offset-bB8corQ(androidx.ui.layout.DpConstraints, float horizontal = 0.dp, float vertical = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.layout.DpConstraints offset-bB8corQ(androidx.ui.layout.DpConstraints, float horizontal = 0.dp, float vertical = 0.dp);
   }
 
-  public @interface ExperimentalLayout {
+  @kotlin.RequiresOptIn(message="The API of this layout is experimental and is likely to change in the future.") public @interface ExperimentalLayout {
   }
 
   public enum FlowCrossAxisAlignment {
@@ -316,16 +316,16 @@
   }
 
   public final class FlowKt {
-    method @androidx.ui.layout.ExperimentalLayout public static void FlowColumn-UKRdXhE(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, float mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, float crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @androidx.ui.layout.ExperimentalLayout public static void FlowRow-UKRdXhE(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, float mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, float crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable @androidx.ui.layout.ExperimentalLayout public static void FlowColumn-UKRdXhE(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, float mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, float crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable @androidx.ui.layout.ExperimentalLayout public static void FlowRow-UKRdXhE(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, float mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, float crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
-  public final class InnerPadding {
+  @androidx.compose.Immutable public final class InnerPadding {
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
-    method public androidx.ui.layout.InnerPadding copy-rIHlIKc(float start, float top, float end, float bottom);
+    method @androidx.compose.Immutable public androidx.ui.layout.InnerPadding copy-rIHlIKc(float start, float top, float end, float bottom);
     method public float getBottom();
     method public float getEnd();
     method public float getStart();
@@ -333,12 +333,12 @@
   }
 
   public final class IntrinsicKt {
-    method @Deprecated public static void MaxIntrinsicHeight(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @Deprecated public static void MaxIntrinsicWidth(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @Deprecated public static void MinIntrinsicHeight(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @Deprecated public static void MinIntrinsicWidth(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @androidx.ui.layout.ExperimentalLayout public static androidx.ui.core.Modifier preferredHeight(androidx.ui.core.Modifier, androidx.ui.layout.IntrinsicSize intrinsicSize);
-    method @androidx.ui.layout.ExperimentalLayout public static androidx.ui.core.Modifier preferredWidth(androidx.ui.core.Modifier, androidx.ui.layout.IntrinsicSize intrinsicSize);
+    method @Deprecated @androidx.compose.Composable public static void MaxIntrinsicHeight(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @Deprecated @androidx.compose.Composable public static void MaxIntrinsicWidth(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @Deprecated @androidx.compose.Composable public static void MinIntrinsicHeight(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @Deprecated @androidx.compose.Composable public static void MinIntrinsicWidth(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Stable @androidx.ui.layout.ExperimentalLayout public static androidx.ui.core.Modifier preferredHeight(androidx.ui.core.Modifier, androidx.ui.layout.IntrinsicSize intrinsicSize);
+    method @androidx.compose.Stable @androidx.ui.layout.ExperimentalLayout public static androidx.ui.core.Modifier preferredWidth(androidx.ui.core.Modifier, androidx.ui.layout.IntrinsicSize intrinsicSize);
   }
 
   public enum IntrinsicSize {
@@ -347,7 +347,7 @@
   }
 
   public final class LayoutAspectRatioKt {
-    method public static androidx.ui.core.Modifier aspectRatio(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float ratio);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier aspectRatio(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float ratio);
   }
 
   public final class LayoutDirectionsKt {
@@ -356,45 +356,45 @@
   }
 
   public final class LayoutOffsetKt {
-    method public static androidx.ui.core.Modifier offset-qJOR85M(androidx.ui.core.Modifier, float x = 0.dp, float y = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier offset-qJOR85M(androidx.ui.core.Modifier, float x = 0.dp, float y = 0.dp);
     method public static androidx.ui.core.Modifier offsetPx(androidx.ui.core.Modifier, androidx.compose.State<androidx.ui.unit.Px> x = mutableStateOf(Px.Zero), androidx.compose.State<androidx.ui.unit.Px> y = mutableStateOf(Px.Zero));
   }
 
   public final class LayoutPaddingKt {
-    method public static androidx.ui.core.Modifier absolutePadding-AwkAAmk(androidx.ui.core.Modifier, float left = 0.dp, float top = 0.dp, float right = 0.dp, float bottom = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier absolutePadding-AwkAAmk(androidx.ui.core.Modifier, float left = 0.dp, float top = 0.dp, float right = 0.dp, float bottom = 0.dp);
     method public static androidx.ui.core.Modifier padding(androidx.ui.core.Modifier, androidx.ui.layout.InnerPadding padding);
-    method public static androidx.ui.core.Modifier padding-AwkAAmk(androidx.ui.core.Modifier, float start = 0.dp, float top = 0.dp, float end = 0.dp, float bottom = 0.dp);
-    method public static androidx.ui.core.Modifier padding-H3qe284(androidx.ui.core.Modifier, float all);
-    method public static androidx.ui.core.Modifier padding-qJOR85M(androidx.ui.core.Modifier, float horizontal = 0.dp, float vertical = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier padding-AwkAAmk(androidx.ui.core.Modifier, float start = 0.dp, float top = 0.dp, float end = 0.dp, float bottom = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier padding-H3qe284(androidx.ui.core.Modifier, float all);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier padding-qJOR85M(androidx.ui.core.Modifier, float horizontal = 0.dp, float vertical = 0.dp);
   }
 
   @kotlin.DslMarker public @interface LayoutScopeMarker {
   }
 
   public final class LayoutSizeKt {
-    method public static androidx.ui.core.Modifier defaultMinSizeConstraints-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier fillMaxHeight(androidx.ui.core.Modifier);
-    method public static androidx.ui.core.Modifier fillMaxSize(androidx.ui.core.Modifier);
-    method public static androidx.ui.core.Modifier fillMaxWidth(androidx.ui.core.Modifier);
-    method public static androidx.ui.core.Modifier height-H3qe284(androidx.ui.core.Modifier, float height);
-    method public static androidx.ui.core.Modifier heightIn-qJOR85M(androidx.ui.core.Modifier, float minHeight = Dp.Unspecified, float maxHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier preferredHeight-H3qe284(androidx.ui.core.Modifier, float height);
-    method public static androidx.ui.core.Modifier preferredHeightIn-qJOR85M(androidx.ui.core.Modifier, float minHeight = Dp.Unspecified, float maxHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier preferredSize-H3qe284(androidx.ui.core.Modifier, float size);
-    method public static androidx.ui.core.Modifier preferredSize-qJOR85M(androidx.ui.core.Modifier, float width, float height);
-    method public static androidx.ui.core.Modifier preferredSizeIn(androidx.ui.core.Modifier, androidx.ui.layout.DpConstraints constraints);
-    method public static androidx.ui.core.Modifier preferredSizeIn-AwkAAmk(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified, float maxWidth = Dp.Unspecified, float maxHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier preferredWidth-H3qe284(androidx.ui.core.Modifier, float width);
-    method public static androidx.ui.core.Modifier preferredWidthIn-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float maxWidth = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier size-H3qe284(androidx.ui.core.Modifier, float size);
-    method public static androidx.ui.core.Modifier size-qJOR85M(androidx.ui.core.Modifier, float width, float height);
-    method public static androidx.ui.core.Modifier sizeIn(androidx.ui.core.Modifier, androidx.ui.layout.DpConstraints constraints);
-    method public static androidx.ui.core.Modifier sizeIn-AwkAAmk(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified, float maxWidth = Dp.Unspecified, float maxHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier width-H3qe284(androidx.ui.core.Modifier, float width);
-    method public static androidx.ui.core.Modifier widthIn-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float maxWidth = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier wrapContentHeight(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Vertical align = Alignment.CenterVertically);
-    method public static androidx.ui.core.Modifier wrapContentSize(androidx.ui.core.Modifier, androidx.ui.core.Alignment align = Alignment.Center);
-    method public static androidx.ui.core.Modifier wrapContentWidth(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Horizontal align = Alignment.CenterHorizontally);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier defaultMinSizeConstraints-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier fillMaxHeight(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier fillMaxSize(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier fillMaxWidth(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier height-H3qe284(androidx.ui.core.Modifier, float height);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier heightIn-qJOR85M(androidx.ui.core.Modifier, float minHeight = Dp.Unspecified, float maxHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredHeight-H3qe284(androidx.ui.core.Modifier, float height);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredHeightIn-qJOR85M(androidx.ui.core.Modifier, float minHeight = Dp.Unspecified, float maxHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredSize-H3qe284(androidx.ui.core.Modifier, float size);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredSize-qJOR85M(androidx.ui.core.Modifier, float width, float height);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredSizeIn(androidx.ui.core.Modifier, androidx.ui.layout.DpConstraints constraints);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredSizeIn-AwkAAmk(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified, float maxWidth = Dp.Unspecified, float maxHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredWidth-H3qe284(androidx.ui.core.Modifier, float width);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredWidthIn-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float maxWidth = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier size-H3qe284(androidx.ui.core.Modifier, float size);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier size-qJOR85M(androidx.ui.core.Modifier, float width, float height);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier sizeIn(androidx.ui.core.Modifier, androidx.ui.layout.DpConstraints constraints);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier sizeIn-AwkAAmk(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified, float maxWidth = Dp.Unspecified, float maxHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier width-H3qe284(androidx.ui.core.Modifier, float width);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier widthIn-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float maxWidth = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier wrapContentHeight(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Vertical align = Alignment.CenterVertically);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier wrapContentSize(androidx.ui.core.Modifier, androidx.ui.core.Alignment align = Alignment.Center);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier wrapContentWidth(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Horizontal align = Alignment.CenterHorizontally);
   }
 
   public enum MainAxisAlignment {
@@ -410,14 +410,14 @@
   }
 
   public final class RowKt {
-    method public static void Row(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.layout.Arrangement.Horizontal horizontalArrangement = Arrangement.Start, androidx.ui.core.Alignment.Vertical verticalGravity = Alignment.Top, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Row(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.layout.Arrangement.Horizontal horizontalArrangement = Arrangement.Start, androidx.ui.core.Alignment.Vertical verticalGravity = Alignment.Top, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> children);
   }
 
-  @androidx.ui.layout.LayoutScopeMarker public final class RowScope {
-    method public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, androidx.ui.core.HorizontalAlignmentLine alignmentLine);
-    method public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.Measured,androidx.ui.unit.IntPx> alignmentLineBlock);
-    method public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Vertical align);
-    method public androidx.ui.core.Modifier weight(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float weight, boolean fill = true);
+  @androidx.compose.Immutable @androidx.ui.layout.LayoutScopeMarker public final class RowScope {
+    method @androidx.compose.Stable public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, androidx.ui.core.HorizontalAlignmentLine alignmentLine);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.Measured,androidx.ui.unit.IntPx> alignmentLineBlock);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Vertical align);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier weight(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float weight, boolean fill = true);
     field public static final androidx.ui.layout.RowScope! INSTANCE;
   }
 
@@ -427,17 +427,17 @@
   }
 
   public final class SpacerKt {
-    method public static void Spacer(androidx.ui.core.Modifier modifier);
+    method @androidx.compose.Composable public static void Spacer(androidx.ui.core.Modifier modifier);
   }
 
   public final class StackKt {
-    method public static void Stack(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.layout.StackScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Stack(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.layout.StackScope,kotlin.Unit> children);
   }
 
-  @androidx.ui.layout.LayoutScopeMarker public final class StackScope {
+  @androidx.compose.Immutable @androidx.ui.layout.LayoutScopeMarker public final class StackScope {
     ctor public StackScope();
-    method public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment align);
-    method public androidx.ui.core.Modifier matchParentSize(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment align);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier matchParentSize(androidx.ui.core.Modifier);
   }
 
 }
diff --git a/ui/ui-layout/api/restricted_0.1.0-dev14.txt b/ui/ui-layout/api/restricted_0.1.0-dev14.txt
index b2841cd..d1db5d8 100644
--- a/ui/ui-layout/api/restricted_0.1.0-dev14.txt
+++ b/ui/ui-layout/api/restricted_0.1.0-dev14.txt
@@ -2,11 +2,11 @@
 package androidx.ui.layout {
 
   public final class AlignmentLineKt {
-    method @Deprecated public static void AlignmentLineOffset-QVeNkNc(androidx.ui.core.AlignmentLine alignmentLine, androidx.ui.core.Modifier modifier = Modifier, float before = 0.dp, float after = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static androidx.ui.core.Modifier relativePaddingFrom-J8n-V1w(androidx.ui.core.Modifier, androidx.ui.core.AlignmentLine alignmentLine, float before = 0.dp, float after = 0.dp);
+    method @Deprecated @androidx.compose.Composable public static void AlignmentLineOffset-QVeNkNc(androidx.ui.core.AlignmentLine alignmentLine, androidx.ui.core.Modifier modifier = Modifier, float before = 0.dp, float after = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier relativePaddingFrom-J8n-V1w(androidx.ui.core.Modifier, androidx.ui.core.AlignmentLine alignmentLine, float before = 0.dp, float after = 0.dp);
   }
 
-  public interface Arrangement {
+  @androidx.compose.Immutable public interface Arrangement {
     method public java.util.List<androidx.ui.unit.IntPx> arrange-SVHdN54(int totalSize, java.util.List<androidx.ui.unit.IntPx> size, androidx.ui.core.LayoutDirection layoutDirection);
     field @Deprecated public static final androidx.ui.layout.Arrangement.Companion! Companion;
   }
@@ -58,24 +58,24 @@
   }
 
   public final class ColumnKt {
-    method public static void Column(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.layout.Arrangement.Vertical verticalArrangement = Arrangement.Top, androidx.ui.core.Alignment.Horizontal horizontalGravity = Alignment.Start, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Column(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.layout.Arrangement.Vertical verticalArrangement = Arrangement.Top, androidx.ui.core.Alignment.Horizontal horizontalGravity = Alignment.Start, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> children);
   }
 
-  @androidx.ui.layout.LayoutScopeMarker public final class ColumnScope {
-    method public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, androidx.ui.core.VerticalAlignmentLine alignmentLine);
-    method public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.Measured,androidx.ui.unit.IntPx> alignmentLineBlock);
-    method public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Horizontal align);
-    method public androidx.ui.core.Modifier weight(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float weight, boolean fill = true);
+  @androidx.compose.Immutable @androidx.ui.layout.LayoutScopeMarker public final class ColumnScope {
+    method @androidx.compose.Stable public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, androidx.ui.core.VerticalAlignmentLine alignmentLine);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.Measured,androidx.ui.unit.IntPx> alignmentLineBlock);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Horizontal align);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier weight(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float weight, boolean fill = true);
     field public static final androidx.ui.layout.ColumnScope! INSTANCE;
   }
 
   public final class ConstraintLayoutKt {
-    method @androidx.ui.layout.ExperimentalLayout public static void ConstraintLayout(androidx.ui.layout.ConstraintSet constraintSet, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable @androidx.ui.layout.ExperimentalLayout public static void ConstraintLayout(androidx.ui.layout.ConstraintSet constraintSet, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
-  public final class ConstraintSet {
+  @androidx.compose.Immutable public final class ConstraintSet {
     ctor public ConstraintSet(internal kotlin.jvm.functions.Function1<? super androidx.ui.layout.ConstraintSetBuilderScope,kotlin.Unit> description);
-    method public androidx.ui.layout.ConstraintSet copy(kotlin.jvm.functions.Function1<? super androidx.ui.layout.ConstraintSetBuilderScope,kotlin.Unit> description);
+    method @androidx.compose.Immutable public androidx.ui.layout.ConstraintSet copy(kotlin.jvm.functions.Function1<? super androidx.ui.layout.ConstraintSetBuilderScope,kotlin.Unit> description);
   }
 
   public final class ConstraintSetBuilderScope {
@@ -260,7 +260,7 @@
     property public final androidx.ui.layout.ConstraintSetBuilderScope.HorizontalAnchor.ConstrainedLayoutAnchor top;
   }
 
-  public final class CrossAxisAlignment {
+  @androidx.compose.Immutable public final class CrossAxisAlignment {
     field public static final androidx.ui.layout.CrossAxisAlignment.Companion! Companion;
   }
 
@@ -274,12 +274,12 @@
     property public final androidx.ui.layout.CrossAxisAlignment Start;
   }
 
-  public final class DpConstraints {
+  @androidx.compose.Immutable public final class DpConstraints {
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
-    method public androidx.ui.layout.DpConstraints copy-rIHlIKc(float minWidth, float maxWidth, float minHeight, float maxHeight);
+    method @androidx.compose.Immutable public androidx.ui.layout.DpConstraints copy-rIHlIKc(float minWidth, float maxWidth, float minHeight, float maxHeight);
     method public float getMaxHeight();
     method public float getMaxWidth();
     method public float getMinHeight();
@@ -288,25 +288,25 @@
   }
 
   public static final class DpConstraints.Companion {
-    method public androidx.ui.layout.DpConstraints fixed-98Cn76g(float width, float height);
-    method public androidx.ui.layout.DpConstraints fixedHeight-ipo6vVg(float height);
-    method public androidx.ui.layout.DpConstraints fixedWidth-ipo6vVg(float width);
+    method @androidx.compose.Stable public androidx.ui.layout.DpConstraints fixed-98Cn76g(float width, float height);
+    method @androidx.compose.Stable public androidx.ui.layout.DpConstraints fixedHeight-ipo6vVg(float height);
+    method @androidx.compose.Stable public androidx.ui.layout.DpConstraints fixedWidth-ipo6vVg(float width);
   }
 
   public final class DpConstraintsKt {
-    method public static androidx.ui.core.Constraints Constraints(androidx.ui.unit.Density, androidx.ui.layout.DpConstraints dpConstraints);
-    method public static androidx.ui.layout.DpConstraints DpConstraints(androidx.ui.unit.Density, androidx.ui.core.Constraints constraints);
-    method public static androidx.ui.layout.DpConstraints enforce(androidx.ui.layout.DpConstraints, androidx.ui.layout.DpConstraints otherConstraints);
+    method @androidx.compose.Stable public static androidx.ui.core.Constraints Constraints(androidx.ui.unit.Density, androidx.ui.layout.DpConstraints dpConstraints);
+    method @androidx.compose.Stable public static androidx.ui.layout.DpConstraints DpConstraints(androidx.ui.unit.Density, androidx.ui.core.Constraints constraints);
+    method @androidx.compose.Stable public static androidx.ui.layout.DpConstraints enforce(androidx.ui.layout.DpConstraints, androidx.ui.layout.DpConstraints otherConstraints);
     method public static boolean getHasBoundedHeight(androidx.ui.layout.DpConstraints);
     method public static boolean getHasBoundedWidth(androidx.ui.layout.DpConstraints);
     method public static boolean getHasFixedHeight(androidx.ui.layout.DpConstraints);
     method public static boolean getHasFixedWidth(androidx.ui.layout.DpConstraints);
     method public static boolean getSatisfiable(androidx.ui.layout.DpConstraints);
     method public static boolean isZero(androidx.ui.layout.DpConstraints);
-    method public static androidx.ui.layout.DpConstraints offset-bB8corQ(androidx.ui.layout.DpConstraints, float horizontal = 0.dp, float vertical = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.layout.DpConstraints offset-bB8corQ(androidx.ui.layout.DpConstraints, float horizontal = 0.dp, float vertical = 0.dp);
   }
 
-  public @interface ExperimentalLayout {
+  @kotlin.RequiresOptIn(message="The API of this layout is experimental and is likely to change in the future.") public @interface ExperimentalLayout {
   }
 
   public enum FlowCrossAxisAlignment {
@@ -316,16 +316,16 @@
   }
 
   public final class FlowKt {
-    method @androidx.ui.layout.ExperimentalLayout public static void FlowColumn-UKRdXhE(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, float mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, float crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @androidx.ui.layout.ExperimentalLayout public static void FlowRow-UKRdXhE(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, float mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, float crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable @androidx.ui.layout.ExperimentalLayout public static void FlowColumn-UKRdXhE(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, float mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, float crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable @androidx.ui.layout.ExperimentalLayout public static void FlowRow-UKRdXhE(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, float mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, float crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
-  public final class InnerPadding {
+  @androidx.compose.Immutable public final class InnerPadding {
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
-    method public androidx.ui.layout.InnerPadding copy-rIHlIKc(float start, float top, float end, float bottom);
+    method @androidx.compose.Immutable public androidx.ui.layout.InnerPadding copy-rIHlIKc(float start, float top, float end, float bottom);
     method public float getBottom();
     method public float getEnd();
     method public float getStart();
@@ -333,12 +333,12 @@
   }
 
   public final class IntrinsicKt {
-    method @Deprecated public static void MaxIntrinsicHeight(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @Deprecated public static void MaxIntrinsicWidth(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @Deprecated public static void MinIntrinsicHeight(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @Deprecated public static void MinIntrinsicWidth(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @androidx.ui.layout.ExperimentalLayout public static androidx.ui.core.Modifier preferredHeight(androidx.ui.core.Modifier, androidx.ui.layout.IntrinsicSize intrinsicSize);
-    method @androidx.ui.layout.ExperimentalLayout public static androidx.ui.core.Modifier preferredWidth(androidx.ui.core.Modifier, androidx.ui.layout.IntrinsicSize intrinsicSize);
+    method @Deprecated @androidx.compose.Composable public static void MaxIntrinsicHeight(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @Deprecated @androidx.compose.Composable public static void MaxIntrinsicWidth(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @Deprecated @androidx.compose.Composable public static void MinIntrinsicHeight(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @Deprecated @androidx.compose.Composable public static void MinIntrinsicWidth(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Stable @androidx.ui.layout.ExperimentalLayout public static androidx.ui.core.Modifier preferredHeight(androidx.ui.core.Modifier, androidx.ui.layout.IntrinsicSize intrinsicSize);
+    method @androidx.compose.Stable @androidx.ui.layout.ExperimentalLayout public static androidx.ui.core.Modifier preferredWidth(androidx.ui.core.Modifier, androidx.ui.layout.IntrinsicSize intrinsicSize);
   }
 
   public enum IntrinsicSize {
@@ -347,7 +347,7 @@
   }
 
   public final class LayoutAspectRatioKt {
-    method public static androidx.ui.core.Modifier aspectRatio(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float ratio);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier aspectRatio(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float ratio);
   }
 
   public final class LayoutDirectionsKt {
@@ -356,45 +356,45 @@
   }
 
   public final class LayoutOffsetKt {
-    method public static androidx.ui.core.Modifier offset-qJOR85M(androidx.ui.core.Modifier, float x = 0.dp, float y = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier offset-qJOR85M(androidx.ui.core.Modifier, float x = 0.dp, float y = 0.dp);
     method public static androidx.ui.core.Modifier offsetPx(androidx.ui.core.Modifier, androidx.compose.State<androidx.ui.unit.Px> x = mutableStateOf(Px.Zero), androidx.compose.State<androidx.ui.unit.Px> y = mutableStateOf(Px.Zero));
   }
 
   public final class LayoutPaddingKt {
-    method public static androidx.ui.core.Modifier absolutePadding-AwkAAmk(androidx.ui.core.Modifier, float left = 0.dp, float top = 0.dp, float right = 0.dp, float bottom = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier absolutePadding-AwkAAmk(androidx.ui.core.Modifier, float left = 0.dp, float top = 0.dp, float right = 0.dp, float bottom = 0.dp);
     method public static androidx.ui.core.Modifier padding(androidx.ui.core.Modifier, androidx.ui.layout.InnerPadding padding);
-    method public static androidx.ui.core.Modifier padding-AwkAAmk(androidx.ui.core.Modifier, float start = 0.dp, float top = 0.dp, float end = 0.dp, float bottom = 0.dp);
-    method public static androidx.ui.core.Modifier padding-H3qe284(androidx.ui.core.Modifier, float all);
-    method public static androidx.ui.core.Modifier padding-qJOR85M(androidx.ui.core.Modifier, float horizontal = 0.dp, float vertical = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier padding-AwkAAmk(androidx.ui.core.Modifier, float start = 0.dp, float top = 0.dp, float end = 0.dp, float bottom = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier padding-H3qe284(androidx.ui.core.Modifier, float all);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier padding-qJOR85M(androidx.ui.core.Modifier, float horizontal = 0.dp, float vertical = 0.dp);
   }
 
   @kotlin.DslMarker public @interface LayoutScopeMarker {
   }
 
   public final class LayoutSizeKt {
-    method public static androidx.ui.core.Modifier defaultMinSizeConstraints-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier fillMaxHeight(androidx.ui.core.Modifier);
-    method public static androidx.ui.core.Modifier fillMaxSize(androidx.ui.core.Modifier);
-    method public static androidx.ui.core.Modifier fillMaxWidth(androidx.ui.core.Modifier);
-    method public static androidx.ui.core.Modifier height-H3qe284(androidx.ui.core.Modifier, float height);
-    method public static androidx.ui.core.Modifier heightIn-qJOR85M(androidx.ui.core.Modifier, float minHeight = Dp.Unspecified, float maxHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier preferredHeight-H3qe284(androidx.ui.core.Modifier, float height);
-    method public static androidx.ui.core.Modifier preferredHeightIn-qJOR85M(androidx.ui.core.Modifier, float minHeight = Dp.Unspecified, float maxHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier preferredSize-H3qe284(androidx.ui.core.Modifier, float size);
-    method public static androidx.ui.core.Modifier preferredSize-qJOR85M(androidx.ui.core.Modifier, float width, float height);
-    method public static androidx.ui.core.Modifier preferredSizeIn(androidx.ui.core.Modifier, androidx.ui.layout.DpConstraints constraints);
-    method public static androidx.ui.core.Modifier preferredSizeIn-AwkAAmk(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified, float maxWidth = Dp.Unspecified, float maxHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier preferredWidth-H3qe284(androidx.ui.core.Modifier, float width);
-    method public static androidx.ui.core.Modifier preferredWidthIn-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float maxWidth = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier size-H3qe284(androidx.ui.core.Modifier, float size);
-    method public static androidx.ui.core.Modifier size-qJOR85M(androidx.ui.core.Modifier, float width, float height);
-    method public static androidx.ui.core.Modifier sizeIn(androidx.ui.core.Modifier, androidx.ui.layout.DpConstraints constraints);
-    method public static androidx.ui.core.Modifier sizeIn-AwkAAmk(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified, float maxWidth = Dp.Unspecified, float maxHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier width-H3qe284(androidx.ui.core.Modifier, float width);
-    method public static androidx.ui.core.Modifier widthIn-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float maxWidth = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier wrapContentHeight(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Vertical align = Alignment.CenterVertically);
-    method public static androidx.ui.core.Modifier wrapContentSize(androidx.ui.core.Modifier, androidx.ui.core.Alignment align = Alignment.Center);
-    method public static androidx.ui.core.Modifier wrapContentWidth(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Horizontal align = Alignment.CenterHorizontally);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier defaultMinSizeConstraints-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier fillMaxHeight(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier fillMaxSize(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier fillMaxWidth(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier height-H3qe284(androidx.ui.core.Modifier, float height);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier heightIn-qJOR85M(androidx.ui.core.Modifier, float minHeight = Dp.Unspecified, float maxHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredHeight-H3qe284(androidx.ui.core.Modifier, float height);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredHeightIn-qJOR85M(androidx.ui.core.Modifier, float minHeight = Dp.Unspecified, float maxHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredSize-H3qe284(androidx.ui.core.Modifier, float size);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredSize-qJOR85M(androidx.ui.core.Modifier, float width, float height);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredSizeIn(androidx.ui.core.Modifier, androidx.ui.layout.DpConstraints constraints);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredSizeIn-AwkAAmk(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified, float maxWidth = Dp.Unspecified, float maxHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredWidth-H3qe284(androidx.ui.core.Modifier, float width);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredWidthIn-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float maxWidth = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier size-H3qe284(androidx.ui.core.Modifier, float size);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier size-qJOR85M(androidx.ui.core.Modifier, float width, float height);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier sizeIn(androidx.ui.core.Modifier, androidx.ui.layout.DpConstraints constraints);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier sizeIn-AwkAAmk(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified, float maxWidth = Dp.Unspecified, float maxHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier width-H3qe284(androidx.ui.core.Modifier, float width);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier widthIn-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float maxWidth = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier wrapContentHeight(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Vertical align = Alignment.CenterVertically);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier wrapContentSize(androidx.ui.core.Modifier, androidx.ui.core.Alignment align = Alignment.Center);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier wrapContentWidth(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Horizontal align = Alignment.CenterHorizontally);
   }
 
   public enum MainAxisAlignment {
@@ -410,14 +410,14 @@
   }
 
   public final class RowKt {
-    method public static void Row(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.layout.Arrangement.Horizontal horizontalArrangement = Arrangement.Start, androidx.ui.core.Alignment.Vertical verticalGravity = Alignment.Top, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Row(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.layout.Arrangement.Horizontal horizontalArrangement = Arrangement.Start, androidx.ui.core.Alignment.Vertical verticalGravity = Alignment.Top, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> children);
   }
 
-  @androidx.ui.layout.LayoutScopeMarker public final class RowScope {
-    method public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, androidx.ui.core.HorizontalAlignmentLine alignmentLine);
-    method public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.Measured,androidx.ui.unit.IntPx> alignmentLineBlock);
-    method public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Vertical align);
-    method public androidx.ui.core.Modifier weight(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float weight, boolean fill = true);
+  @androidx.compose.Immutable @androidx.ui.layout.LayoutScopeMarker public final class RowScope {
+    method @androidx.compose.Stable public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, androidx.ui.core.HorizontalAlignmentLine alignmentLine);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.Measured,androidx.ui.unit.IntPx> alignmentLineBlock);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Vertical align);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier weight(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float weight, boolean fill = true);
     field public static final androidx.ui.layout.RowScope! INSTANCE;
   }
 
@@ -427,17 +427,17 @@
   }
 
   public final class SpacerKt {
-    method public static void Spacer(androidx.ui.core.Modifier modifier);
+    method @androidx.compose.Composable public static void Spacer(androidx.ui.core.Modifier modifier);
   }
 
   public final class StackKt {
-    method public static void Stack(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.layout.StackScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Stack(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.layout.StackScope,kotlin.Unit> children);
   }
 
-  @androidx.ui.layout.LayoutScopeMarker public final class StackScope {
+  @androidx.compose.Immutable @androidx.ui.layout.LayoutScopeMarker public final class StackScope {
     ctor public StackScope();
-    method public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment align);
-    method public androidx.ui.core.Modifier matchParentSize(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment align);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier matchParentSize(androidx.ui.core.Modifier);
   }
 
 }
diff --git a/ui/ui-layout/api/restricted_current.txt b/ui/ui-layout/api/restricted_current.txt
index b2841cd..d1db5d8 100644
--- a/ui/ui-layout/api/restricted_current.txt
+++ b/ui/ui-layout/api/restricted_current.txt
@@ -2,11 +2,11 @@
 package androidx.ui.layout {
 
   public final class AlignmentLineKt {
-    method @Deprecated public static void AlignmentLineOffset-QVeNkNc(androidx.ui.core.AlignmentLine alignmentLine, androidx.ui.core.Modifier modifier = Modifier, float before = 0.dp, float after = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static androidx.ui.core.Modifier relativePaddingFrom-J8n-V1w(androidx.ui.core.Modifier, androidx.ui.core.AlignmentLine alignmentLine, float before = 0.dp, float after = 0.dp);
+    method @Deprecated @androidx.compose.Composable public static void AlignmentLineOffset-QVeNkNc(androidx.ui.core.AlignmentLine alignmentLine, androidx.ui.core.Modifier modifier = Modifier, float before = 0.dp, float after = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier relativePaddingFrom-J8n-V1w(androidx.ui.core.Modifier, androidx.ui.core.AlignmentLine alignmentLine, float before = 0.dp, float after = 0.dp);
   }
 
-  public interface Arrangement {
+  @androidx.compose.Immutable public interface Arrangement {
     method public java.util.List<androidx.ui.unit.IntPx> arrange-SVHdN54(int totalSize, java.util.List<androidx.ui.unit.IntPx> size, androidx.ui.core.LayoutDirection layoutDirection);
     field @Deprecated public static final androidx.ui.layout.Arrangement.Companion! Companion;
   }
@@ -58,24 +58,24 @@
   }
 
   public final class ColumnKt {
-    method public static void Column(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.layout.Arrangement.Vertical verticalArrangement = Arrangement.Top, androidx.ui.core.Alignment.Horizontal horizontalGravity = Alignment.Start, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Column(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.layout.Arrangement.Vertical verticalArrangement = Arrangement.Top, androidx.ui.core.Alignment.Horizontal horizontalGravity = Alignment.Start, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> children);
   }
 
-  @androidx.ui.layout.LayoutScopeMarker public final class ColumnScope {
-    method public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, androidx.ui.core.VerticalAlignmentLine alignmentLine);
-    method public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.Measured,androidx.ui.unit.IntPx> alignmentLineBlock);
-    method public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Horizontal align);
-    method public androidx.ui.core.Modifier weight(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float weight, boolean fill = true);
+  @androidx.compose.Immutable @androidx.ui.layout.LayoutScopeMarker public final class ColumnScope {
+    method @androidx.compose.Stable public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, androidx.ui.core.VerticalAlignmentLine alignmentLine);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.Measured,androidx.ui.unit.IntPx> alignmentLineBlock);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Horizontal align);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier weight(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float weight, boolean fill = true);
     field public static final androidx.ui.layout.ColumnScope! INSTANCE;
   }
 
   public final class ConstraintLayoutKt {
-    method @androidx.ui.layout.ExperimentalLayout public static void ConstraintLayout(androidx.ui.layout.ConstraintSet constraintSet, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable @androidx.ui.layout.ExperimentalLayout public static void ConstraintLayout(androidx.ui.layout.ConstraintSet constraintSet, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
-  public final class ConstraintSet {
+  @androidx.compose.Immutable public final class ConstraintSet {
     ctor public ConstraintSet(internal kotlin.jvm.functions.Function1<? super androidx.ui.layout.ConstraintSetBuilderScope,kotlin.Unit> description);
-    method public androidx.ui.layout.ConstraintSet copy(kotlin.jvm.functions.Function1<? super androidx.ui.layout.ConstraintSetBuilderScope,kotlin.Unit> description);
+    method @androidx.compose.Immutable public androidx.ui.layout.ConstraintSet copy(kotlin.jvm.functions.Function1<? super androidx.ui.layout.ConstraintSetBuilderScope,kotlin.Unit> description);
   }
 
   public final class ConstraintSetBuilderScope {
@@ -260,7 +260,7 @@
     property public final androidx.ui.layout.ConstraintSetBuilderScope.HorizontalAnchor.ConstrainedLayoutAnchor top;
   }
 
-  public final class CrossAxisAlignment {
+  @androidx.compose.Immutable public final class CrossAxisAlignment {
     field public static final androidx.ui.layout.CrossAxisAlignment.Companion! Companion;
   }
 
@@ -274,12 +274,12 @@
     property public final androidx.ui.layout.CrossAxisAlignment Start;
   }
 
-  public final class DpConstraints {
+  @androidx.compose.Immutable public final class DpConstraints {
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
-    method public androidx.ui.layout.DpConstraints copy-rIHlIKc(float minWidth, float maxWidth, float minHeight, float maxHeight);
+    method @androidx.compose.Immutable public androidx.ui.layout.DpConstraints copy-rIHlIKc(float minWidth, float maxWidth, float minHeight, float maxHeight);
     method public float getMaxHeight();
     method public float getMaxWidth();
     method public float getMinHeight();
@@ -288,25 +288,25 @@
   }
 
   public static final class DpConstraints.Companion {
-    method public androidx.ui.layout.DpConstraints fixed-98Cn76g(float width, float height);
-    method public androidx.ui.layout.DpConstraints fixedHeight-ipo6vVg(float height);
-    method public androidx.ui.layout.DpConstraints fixedWidth-ipo6vVg(float width);
+    method @androidx.compose.Stable public androidx.ui.layout.DpConstraints fixed-98Cn76g(float width, float height);
+    method @androidx.compose.Stable public androidx.ui.layout.DpConstraints fixedHeight-ipo6vVg(float height);
+    method @androidx.compose.Stable public androidx.ui.layout.DpConstraints fixedWidth-ipo6vVg(float width);
   }
 
   public final class DpConstraintsKt {
-    method public static androidx.ui.core.Constraints Constraints(androidx.ui.unit.Density, androidx.ui.layout.DpConstraints dpConstraints);
-    method public static androidx.ui.layout.DpConstraints DpConstraints(androidx.ui.unit.Density, androidx.ui.core.Constraints constraints);
-    method public static androidx.ui.layout.DpConstraints enforce(androidx.ui.layout.DpConstraints, androidx.ui.layout.DpConstraints otherConstraints);
+    method @androidx.compose.Stable public static androidx.ui.core.Constraints Constraints(androidx.ui.unit.Density, androidx.ui.layout.DpConstraints dpConstraints);
+    method @androidx.compose.Stable public static androidx.ui.layout.DpConstraints DpConstraints(androidx.ui.unit.Density, androidx.ui.core.Constraints constraints);
+    method @androidx.compose.Stable public static androidx.ui.layout.DpConstraints enforce(androidx.ui.layout.DpConstraints, androidx.ui.layout.DpConstraints otherConstraints);
     method public static boolean getHasBoundedHeight(androidx.ui.layout.DpConstraints);
     method public static boolean getHasBoundedWidth(androidx.ui.layout.DpConstraints);
     method public static boolean getHasFixedHeight(androidx.ui.layout.DpConstraints);
     method public static boolean getHasFixedWidth(androidx.ui.layout.DpConstraints);
     method public static boolean getSatisfiable(androidx.ui.layout.DpConstraints);
     method public static boolean isZero(androidx.ui.layout.DpConstraints);
-    method public static androidx.ui.layout.DpConstraints offset-bB8corQ(androidx.ui.layout.DpConstraints, float horizontal = 0.dp, float vertical = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.layout.DpConstraints offset-bB8corQ(androidx.ui.layout.DpConstraints, float horizontal = 0.dp, float vertical = 0.dp);
   }
 
-  public @interface ExperimentalLayout {
+  @kotlin.RequiresOptIn(message="The API of this layout is experimental and is likely to change in the future.") public @interface ExperimentalLayout {
   }
 
   public enum FlowCrossAxisAlignment {
@@ -316,16 +316,16 @@
   }
 
   public final class FlowKt {
-    method @androidx.ui.layout.ExperimentalLayout public static void FlowColumn-UKRdXhE(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, float mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, float crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @androidx.ui.layout.ExperimentalLayout public static void FlowRow-UKRdXhE(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, float mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, float crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable @androidx.ui.layout.ExperimentalLayout public static void FlowColumn-UKRdXhE(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, float mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, float crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable @androidx.ui.layout.ExperimentalLayout public static void FlowRow-UKRdXhE(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, float mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, float crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
-  public final class InnerPadding {
+  @androidx.compose.Immutable public final class InnerPadding {
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
-    method public androidx.ui.layout.InnerPadding copy-rIHlIKc(float start, float top, float end, float bottom);
+    method @androidx.compose.Immutable public androidx.ui.layout.InnerPadding copy-rIHlIKc(float start, float top, float end, float bottom);
     method public float getBottom();
     method public float getEnd();
     method public float getStart();
@@ -333,12 +333,12 @@
   }
 
   public final class IntrinsicKt {
-    method @Deprecated public static void MaxIntrinsicHeight(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @Deprecated public static void MaxIntrinsicWidth(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @Deprecated public static void MinIntrinsicHeight(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @Deprecated public static void MinIntrinsicWidth(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @androidx.ui.layout.ExperimentalLayout public static androidx.ui.core.Modifier preferredHeight(androidx.ui.core.Modifier, androidx.ui.layout.IntrinsicSize intrinsicSize);
-    method @androidx.ui.layout.ExperimentalLayout public static androidx.ui.core.Modifier preferredWidth(androidx.ui.core.Modifier, androidx.ui.layout.IntrinsicSize intrinsicSize);
+    method @Deprecated @androidx.compose.Composable public static void MaxIntrinsicHeight(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @Deprecated @androidx.compose.Composable public static void MaxIntrinsicWidth(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @Deprecated @androidx.compose.Composable public static void MinIntrinsicHeight(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @Deprecated @androidx.compose.Composable public static void MinIntrinsicWidth(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Stable @androidx.ui.layout.ExperimentalLayout public static androidx.ui.core.Modifier preferredHeight(androidx.ui.core.Modifier, androidx.ui.layout.IntrinsicSize intrinsicSize);
+    method @androidx.compose.Stable @androidx.ui.layout.ExperimentalLayout public static androidx.ui.core.Modifier preferredWidth(androidx.ui.core.Modifier, androidx.ui.layout.IntrinsicSize intrinsicSize);
   }
 
   public enum IntrinsicSize {
@@ -347,7 +347,7 @@
   }
 
   public final class LayoutAspectRatioKt {
-    method public static androidx.ui.core.Modifier aspectRatio(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float ratio);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier aspectRatio(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float ratio);
   }
 
   public final class LayoutDirectionsKt {
@@ -356,45 +356,45 @@
   }
 
   public final class LayoutOffsetKt {
-    method public static androidx.ui.core.Modifier offset-qJOR85M(androidx.ui.core.Modifier, float x = 0.dp, float y = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier offset-qJOR85M(androidx.ui.core.Modifier, float x = 0.dp, float y = 0.dp);
     method public static androidx.ui.core.Modifier offsetPx(androidx.ui.core.Modifier, androidx.compose.State<androidx.ui.unit.Px> x = mutableStateOf(Px.Zero), androidx.compose.State<androidx.ui.unit.Px> y = mutableStateOf(Px.Zero));
   }
 
   public final class LayoutPaddingKt {
-    method public static androidx.ui.core.Modifier absolutePadding-AwkAAmk(androidx.ui.core.Modifier, float left = 0.dp, float top = 0.dp, float right = 0.dp, float bottom = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier absolutePadding-AwkAAmk(androidx.ui.core.Modifier, float left = 0.dp, float top = 0.dp, float right = 0.dp, float bottom = 0.dp);
     method public static androidx.ui.core.Modifier padding(androidx.ui.core.Modifier, androidx.ui.layout.InnerPadding padding);
-    method public static androidx.ui.core.Modifier padding-AwkAAmk(androidx.ui.core.Modifier, float start = 0.dp, float top = 0.dp, float end = 0.dp, float bottom = 0.dp);
-    method public static androidx.ui.core.Modifier padding-H3qe284(androidx.ui.core.Modifier, float all);
-    method public static androidx.ui.core.Modifier padding-qJOR85M(androidx.ui.core.Modifier, float horizontal = 0.dp, float vertical = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier padding-AwkAAmk(androidx.ui.core.Modifier, float start = 0.dp, float top = 0.dp, float end = 0.dp, float bottom = 0.dp);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier padding-H3qe284(androidx.ui.core.Modifier, float all);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier padding-qJOR85M(androidx.ui.core.Modifier, float horizontal = 0.dp, float vertical = 0.dp);
   }
 
   @kotlin.DslMarker public @interface LayoutScopeMarker {
   }
 
   public final class LayoutSizeKt {
-    method public static androidx.ui.core.Modifier defaultMinSizeConstraints-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier fillMaxHeight(androidx.ui.core.Modifier);
-    method public static androidx.ui.core.Modifier fillMaxSize(androidx.ui.core.Modifier);
-    method public static androidx.ui.core.Modifier fillMaxWidth(androidx.ui.core.Modifier);
-    method public static androidx.ui.core.Modifier height-H3qe284(androidx.ui.core.Modifier, float height);
-    method public static androidx.ui.core.Modifier heightIn-qJOR85M(androidx.ui.core.Modifier, float minHeight = Dp.Unspecified, float maxHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier preferredHeight-H3qe284(androidx.ui.core.Modifier, float height);
-    method public static androidx.ui.core.Modifier preferredHeightIn-qJOR85M(androidx.ui.core.Modifier, float minHeight = Dp.Unspecified, float maxHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier preferredSize-H3qe284(androidx.ui.core.Modifier, float size);
-    method public static androidx.ui.core.Modifier preferredSize-qJOR85M(androidx.ui.core.Modifier, float width, float height);
-    method public static androidx.ui.core.Modifier preferredSizeIn(androidx.ui.core.Modifier, androidx.ui.layout.DpConstraints constraints);
-    method public static androidx.ui.core.Modifier preferredSizeIn-AwkAAmk(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified, float maxWidth = Dp.Unspecified, float maxHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier preferredWidth-H3qe284(androidx.ui.core.Modifier, float width);
-    method public static androidx.ui.core.Modifier preferredWidthIn-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float maxWidth = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier size-H3qe284(androidx.ui.core.Modifier, float size);
-    method public static androidx.ui.core.Modifier size-qJOR85M(androidx.ui.core.Modifier, float width, float height);
-    method public static androidx.ui.core.Modifier sizeIn(androidx.ui.core.Modifier, androidx.ui.layout.DpConstraints constraints);
-    method public static androidx.ui.core.Modifier sizeIn-AwkAAmk(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified, float maxWidth = Dp.Unspecified, float maxHeight = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier width-H3qe284(androidx.ui.core.Modifier, float width);
-    method public static androidx.ui.core.Modifier widthIn-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float maxWidth = Dp.Unspecified);
-    method public static androidx.ui.core.Modifier wrapContentHeight(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Vertical align = Alignment.CenterVertically);
-    method public static androidx.ui.core.Modifier wrapContentSize(androidx.ui.core.Modifier, androidx.ui.core.Alignment align = Alignment.Center);
-    method public static androidx.ui.core.Modifier wrapContentWidth(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Horizontal align = Alignment.CenterHorizontally);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier defaultMinSizeConstraints-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier fillMaxHeight(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier fillMaxSize(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier fillMaxWidth(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier height-H3qe284(androidx.ui.core.Modifier, float height);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier heightIn-qJOR85M(androidx.ui.core.Modifier, float minHeight = Dp.Unspecified, float maxHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredHeight-H3qe284(androidx.ui.core.Modifier, float height);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredHeightIn-qJOR85M(androidx.ui.core.Modifier, float minHeight = Dp.Unspecified, float maxHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredSize-H3qe284(androidx.ui.core.Modifier, float size);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredSize-qJOR85M(androidx.ui.core.Modifier, float width, float height);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredSizeIn(androidx.ui.core.Modifier, androidx.ui.layout.DpConstraints constraints);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredSizeIn-AwkAAmk(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified, float maxWidth = Dp.Unspecified, float maxHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredWidth-H3qe284(androidx.ui.core.Modifier, float width);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier preferredWidthIn-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float maxWidth = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier size-H3qe284(androidx.ui.core.Modifier, float size);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier size-qJOR85M(androidx.ui.core.Modifier, float width, float height);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier sizeIn(androidx.ui.core.Modifier, androidx.ui.layout.DpConstraints constraints);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier sizeIn-AwkAAmk(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float minHeight = Dp.Unspecified, float maxWidth = Dp.Unspecified, float maxHeight = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier width-H3qe284(androidx.ui.core.Modifier, float width);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier widthIn-qJOR85M(androidx.ui.core.Modifier, float minWidth = Dp.Unspecified, float maxWidth = Dp.Unspecified);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier wrapContentHeight(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Vertical align = Alignment.CenterVertically);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier wrapContentSize(androidx.ui.core.Modifier, androidx.ui.core.Alignment align = Alignment.Center);
+    method @androidx.compose.Stable public static androidx.ui.core.Modifier wrapContentWidth(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Horizontal align = Alignment.CenterHorizontally);
   }
 
   public enum MainAxisAlignment {
@@ -410,14 +410,14 @@
   }
 
   public final class RowKt {
-    method public static void Row(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.layout.Arrangement.Horizontal horizontalArrangement = Arrangement.Start, androidx.ui.core.Alignment.Vertical verticalGravity = Alignment.Top, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Row(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.layout.Arrangement.Horizontal horizontalArrangement = Arrangement.Start, androidx.ui.core.Alignment.Vertical verticalGravity = Alignment.Top, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> children);
   }
 
-  @androidx.ui.layout.LayoutScopeMarker public final class RowScope {
-    method public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, androidx.ui.core.HorizontalAlignmentLine alignmentLine);
-    method public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.Measured,androidx.ui.unit.IntPx> alignmentLineBlock);
-    method public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Vertical align);
-    method public androidx.ui.core.Modifier weight(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float weight, boolean fill = true);
+  @androidx.compose.Immutable @androidx.ui.layout.LayoutScopeMarker public final class RowScope {
+    method @androidx.compose.Stable public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, androidx.ui.core.HorizontalAlignmentLine alignmentLine);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier alignWithSiblings(androidx.ui.core.Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.core.Measured,androidx.ui.unit.IntPx> alignmentLineBlock);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment.Vertical align);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier weight(androidx.ui.core.Modifier, @FloatRange(from=0.0, fromInclusive=false) float weight, boolean fill = true);
     field public static final androidx.ui.layout.RowScope! INSTANCE;
   }
 
@@ -427,17 +427,17 @@
   }
 
   public final class SpacerKt {
-    method public static void Spacer(androidx.ui.core.Modifier modifier);
+    method @androidx.compose.Composable public static void Spacer(androidx.ui.core.Modifier modifier);
   }
 
   public final class StackKt {
-    method public static void Stack(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.layout.StackScope,kotlin.Unit> children);
+    method @androidx.compose.Composable public static void Stack(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.layout.StackScope,kotlin.Unit> children);
   }
 
-  @androidx.ui.layout.LayoutScopeMarker public final class StackScope {
+  @androidx.compose.Immutable @androidx.ui.layout.LayoutScopeMarker public final class StackScope {
     ctor public StackScope();
-    method public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment align);
-    method public androidx.ui.core.Modifier matchParentSize(androidx.ui.core.Modifier);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier gravity(androidx.ui.core.Modifier, androidx.ui.core.Alignment align);
+    method @androidx.compose.Stable public androidx.ui.core.Modifier matchParentSize(androidx.ui.core.Modifier);
   }
 
 }
diff --git a/ui/ui-livedata/api/0.1.0-dev14.txt b/ui/ui-livedata/api/0.1.0-dev14.txt
index fe1bdb1..26f1352 100644
--- a/ui/ui-livedata/api/0.1.0-dev14.txt
+++ b/ui/ui-livedata/api/0.1.0-dev14.txt
@@ -2,8 +2,8 @@
 package androidx.ui.livedata {
 
   public final class LiveDataAdapterKt {
-    method public static inline <T> androidx.compose.State<T> observeAsState(androidx.lifecycle.LiveData<T>);
-    method public static <R, T extends R> androidx.compose.State<R> observeAsState(androidx.lifecycle.LiveData<T>, R? initial);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> observeAsState(androidx.lifecycle.LiveData<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> observeAsState(androidx.lifecycle.LiveData<T>, R? initial);
   }
 
 }
diff --git a/ui/ui-livedata/api/current.txt b/ui/ui-livedata/api/current.txt
index fe1bdb1..26f1352 100644
--- a/ui/ui-livedata/api/current.txt
+++ b/ui/ui-livedata/api/current.txt
@@ -2,8 +2,8 @@
 package androidx.ui.livedata {
 
   public final class LiveDataAdapterKt {
-    method public static inline <T> androidx.compose.State<T> observeAsState(androidx.lifecycle.LiveData<T>);
-    method public static <R, T extends R> androidx.compose.State<R> observeAsState(androidx.lifecycle.LiveData<T>, R? initial);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> observeAsState(androidx.lifecycle.LiveData<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> observeAsState(androidx.lifecycle.LiveData<T>, R? initial);
   }
 
 }
diff --git a/ui/ui-livedata/api/public_plus_experimental_0.1.0-dev14.txt b/ui/ui-livedata/api/public_plus_experimental_0.1.0-dev14.txt
index fe1bdb1..26f1352 100644
--- a/ui/ui-livedata/api/public_plus_experimental_0.1.0-dev14.txt
+++ b/ui/ui-livedata/api/public_plus_experimental_0.1.0-dev14.txt
@@ -2,8 +2,8 @@
 package androidx.ui.livedata {
 
   public final class LiveDataAdapterKt {
-    method public static inline <T> androidx.compose.State<T> observeAsState(androidx.lifecycle.LiveData<T>);
-    method public static <R, T extends R> androidx.compose.State<R> observeAsState(androidx.lifecycle.LiveData<T>, R? initial);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> observeAsState(androidx.lifecycle.LiveData<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> observeAsState(androidx.lifecycle.LiveData<T>, R? initial);
   }
 
 }
diff --git a/ui/ui-livedata/api/public_plus_experimental_current.txt b/ui/ui-livedata/api/public_plus_experimental_current.txt
index fe1bdb1..26f1352 100644
--- a/ui/ui-livedata/api/public_plus_experimental_current.txt
+++ b/ui/ui-livedata/api/public_plus_experimental_current.txt
@@ -2,8 +2,8 @@
 package androidx.ui.livedata {
 
   public final class LiveDataAdapterKt {
-    method public static inline <T> androidx.compose.State<T> observeAsState(androidx.lifecycle.LiveData<T>);
-    method public static <R, T extends R> androidx.compose.State<R> observeAsState(androidx.lifecycle.LiveData<T>, R? initial);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> observeAsState(androidx.lifecycle.LiveData<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> observeAsState(androidx.lifecycle.LiveData<T>, R? initial);
   }
 
 }
diff --git a/ui/ui-livedata/api/restricted_0.1.0-dev14.txt b/ui/ui-livedata/api/restricted_0.1.0-dev14.txt
index fe1bdb1..26f1352 100644
--- a/ui/ui-livedata/api/restricted_0.1.0-dev14.txt
+++ b/ui/ui-livedata/api/restricted_0.1.0-dev14.txt
@@ -2,8 +2,8 @@
 package androidx.ui.livedata {
 
   public final class LiveDataAdapterKt {
-    method public static inline <T> androidx.compose.State<T> observeAsState(androidx.lifecycle.LiveData<T>);
-    method public static <R, T extends R> androidx.compose.State<R> observeAsState(androidx.lifecycle.LiveData<T>, R? initial);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> observeAsState(androidx.lifecycle.LiveData<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> observeAsState(androidx.lifecycle.LiveData<T>, R? initial);
   }
 
 }
diff --git a/ui/ui-livedata/api/restricted_current.txt b/ui/ui-livedata/api/restricted_current.txt
index fe1bdb1..26f1352 100644
--- a/ui/ui-livedata/api/restricted_current.txt
+++ b/ui/ui-livedata/api/restricted_current.txt
@@ -2,8 +2,8 @@
 package androidx.ui.livedata {
 
   public final class LiveDataAdapterKt {
-    method public static inline <T> androidx.compose.State<T> observeAsState(androidx.lifecycle.LiveData<T>);
-    method public static <R, T extends R> androidx.compose.State<R> observeAsState(androidx.lifecycle.LiveData<T>, R? initial);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> observeAsState(androidx.lifecycle.LiveData<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> observeAsState(androidx.lifecycle.LiveData<T>, R? initial);
   }
 
 }
diff --git a/ui/ui-material/api/0.1.0-dev14.txt b/ui/ui-material/api/0.1.0-dev14.txt
index 8516bbd..0821452 100644
--- a/ui/ui-material/api/0.1.0-dev14.txt
+++ b/ui/ui-material/api/0.1.0-dev14.txt
@@ -7,23 +7,23 @@
   }
 
   public final class AlertDialogKt {
-    method public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit>? title = null, kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> confirmButton, kotlin.jvm.functions.Function0<kotlin.Unit>? dismissButton = null, androidx.ui.material.AlertDialogButtonLayout buttonLayout = androidx.ui.material.AlertDialogButtonLayout.SideBySide, androidx.ui.graphics.Shape shape = medium);
-    method public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit>? title = null, kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> buttons, androidx.ui.graphics.Shape shape = medium);
+    method @androidx.compose.Composable public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit>? title = null, kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> confirmButton, kotlin.jvm.functions.Function0<kotlin.Unit>? dismissButton = null, androidx.ui.material.AlertDialogButtonLayout buttonLayout = androidx.ui.material.AlertDialogButtonLayout.SideBySide, androidx.ui.graphics.Shape shape = medium);
+    method @androidx.compose.Composable public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit>? title = null, kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> buttons, androidx.ui.graphics.Shape shape = medium);
   }
 
   public final class AppBarKt {
-    method public static void BottomAppBar-GqrRtJg(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), androidx.ui.material.BottomAppBar.FabConfiguration? fabConfiguration = null, androidx.ui.graphics.Shape? cutoutShape = null, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
-    method public static void TopAppBar-FikZsjU(kotlin.jvm.functions.Function0<kotlin.Unit> title, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>? navigationIcon = null, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> actions = {}, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.AppBarKt.TopAppBarElevation);
-    method public static void TopAppBar-oP-1cd0(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.AppBarKt.TopAppBarElevation, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
+    method @androidx.compose.Composable public static void BottomAppBar-GqrRtJg(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), androidx.ui.material.BottomAppBar.FabConfiguration? fabConfiguration = null, androidx.ui.graphics.Shape? cutoutShape = null, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
+    method @androidx.compose.Composable public static void TopAppBar-FikZsjU(kotlin.jvm.functions.Function0<kotlin.Unit> title, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>? navigationIcon = null, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> actions = {}, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.AppBarKt.TopAppBarElevation);
+    method @androidx.compose.Composable public static void TopAppBar-oP-1cd0(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.AppBarKt.TopAppBarElevation, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
   }
 
   public final class BottomAppBar {
     field public static final androidx.ui.material.BottomAppBar! INSTANCE;
   }
 
-  public static final class BottomAppBar.FabConfiguration {
+  @androidx.compose.Immutable public static final class BottomAppBar.FabConfiguration {
     ctor public BottomAppBar.FabConfiguration(internal androidx.ui.unit.IntPxSize fabSize, internal androidx.ui.unit.PxPosition fabTopLeftPosition, internal androidx.ui.material.BottomAppBar.FabDockedPosition fabDockedPosition);
-    method public androidx.ui.material.BottomAppBar.FabConfiguration copy(androidx.ui.unit.IntPxSize fabSize, androidx.ui.unit.PxPosition fabTopLeftPosition, androidx.ui.material.BottomAppBar.FabDockedPosition fabDockedPosition);
+    method @androidx.compose.Immutable public androidx.ui.material.BottomAppBar.FabConfiguration copy(androidx.ui.unit.IntPxSize fabSize, androidx.ui.unit.PxPosition fabTopLeftPosition, androidx.ui.material.BottomAppBar.FabDockedPosition fabDockedPosition);
   }
 
   public enum BottomAppBar.FabDockedPosition {
@@ -32,8 +32,8 @@
   }
 
   public final class BottomNavigationKt {
-    method public static void BottomNavigation-oP-1cd0(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.BottomNavigationKt.BottomNavigationElevation, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
-    method public static void BottomNavigationItem-dOPBtLY(kotlin.jvm.functions.Function0<kotlin.Unit> icon, kotlin.jvm.functions.Function0<kotlin.Unit> text = emptyContent(), boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, boolean alwaysShowLabels = true, long activeColor = contentColor(), long inactiveColor = EmphasisAmbient.current.medium.applyEmphasis(activeColor));
+    method @androidx.compose.Composable public static void BottomNavigation-oP-1cd0(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.BottomNavigationKt.BottomNavigationElevation, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
+    method @androidx.compose.Composable public static void BottomNavigationItem-dOPBtLY(kotlin.jvm.functions.Function0<kotlin.Unit> icon, kotlin.jvm.functions.Function0<kotlin.Unit> text = emptyContent(), boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, boolean alwaysShowLabels = true, long activeColor = contentColor(), long inactiveColor = EmphasisAmbient.current.medium.applyEmphasis(activeColor));
   }
 
   public final class Button {
@@ -47,22 +47,22 @@
   }
 
   public final class ButtonKt {
-    method public static void Button-YWYas6U(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 2.dp, float disabledElevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = null, long backgroundColor = MaterialTheme.colors.primary, long disabledBackgroundColor = Button.defaultDisabledBackgroundColor, long contentColor = contentColorFor(backgroundColor), long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = Button.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
-    method public static inline void OutlinedButton-5tjLhF8(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = Border(1.dp, MaterialTheme.colors.onSurface.copy(OutlinedStrokeOpacity)), long backgroundColor = MaterialTheme.colors.surface, long contentColor = contentColorFor(backgroundColor), long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = Button.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
-    method public static inline void TextButton-5tjLhF8(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = null, long backgroundColor = Color.Transparent, long contentColor = MaterialTheme.colors.primary, long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = TextButton.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
+    method @androidx.compose.Composable public static void Button-YWYas6U(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 2.dp, float disabledElevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = null, long backgroundColor = MaterialTheme.colors.primary, long disabledBackgroundColor = Button.defaultDisabledBackgroundColor, long contentColor = contentColorFor(backgroundColor), long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = Button.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
+    method @androidx.compose.Composable public static inline void OutlinedButton-5tjLhF8(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = Border(1.dp, MaterialTheme.colors.onSurface.copy(OutlinedStrokeOpacity)), long backgroundColor = MaterialTheme.colors.surface, long contentColor = contentColorFor(backgroundColor), long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = Button.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
+    method @androidx.compose.Composable public static inline void TextButton-5tjLhF8(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = null, long backgroundColor = Color.Transparent, long contentColor = MaterialTheme.colors.primary, long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = TextButton.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
   }
 
   public final class CardKt {
-    method public static void Card-r7cpYJI(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = medium, long color = MaterialTheme.colors.surface, long contentColor = contentColorFor(color), androidx.ui.foundation.Border? border = null, float elevation = 1.dp, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void Card-r7cpYJI(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = medium, long color = MaterialTheme.colors.surface, long contentColor = contentColorFor(color), androidx.ui.foundation.Border? border = null, float elevation = 1.dp, kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
   public final class CheckboxKt {
-    method public static void Checkbox-D4zOgQA(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
-    method public static void TriStateCheckbox--Buf9SY(androidx.ui.foundation.selection.ToggleableState state, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
+    method @androidx.compose.Composable public static void Checkbox-D4zOgQA(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
+    method @androidx.compose.Composable public static void TriStateCheckbox--Buf9SY(androidx.ui.foundation.selection.ToggleableState state, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
   }
 
   public final class ColorKt {
-    method public static long contentColorFor-QEYXlZo(long color);
+    method @androidx.compose.Composable public static long contentColorFor-QEYXlZo(long color);
     method public static long contentColorFor-ZITCLTE(androidx.ui.material.ColorPalette, long color);
     method public static androidx.ui.material.ColorPalette darkColorPalette-bz757pg(long primary = Color(4290479868), long primaryVariant = Color(4281794739), long secondary = Color(4278442694), long background = Color(4279374354), long surface = Color(4279374354), long error = Color(4291782265), long  long  long  long  long >
     method public static androidx.ui.material.ColorPalette lightColorPalette-eO6A0Mk(long primary = Color(4284612846), long primaryVariant = Color(4281794739), long secondary = Color(4278442694), long secondaryVariant = Color(4278290310), long background = Color.White, long surface = Color.White, long error = Color(4289724448), long  long  long  long  long >
@@ -98,7 +98,7 @@
   }
 
   public final class DividerKt {
-    method public static void Divider-5sN9_mQ(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.onSurface.copy(DividerAlpha), float thickness = 1.dp, float startIndent = 0.dp);
+    method @androidx.compose.Composable public static void Divider-5sN9_mQ(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.onSurface.copy(DividerAlpha), float thickness = 1.dp, float startIndent = 0.dp);
   }
 
   public final class DrawerConstants {
@@ -108,8 +108,8 @@
   }
 
   public final class DrawerKt {
-    method public static void BottomDrawerLayout-s-rmCOo(androidx.ui.material.DrawerState drawerState, kotlin.jvm.functions.Function1<? super androidx.ui.material.DrawerState,kotlin.Unit> onStateChange, boolean gesturesEnabled = true, androidx.ui.graphics.Shape drawerShape = large, float drawerElevation = DrawerConstants.DefaultElevation, kotlin.jvm.functions.Function0<kotlin.Unit> drawerContent, kotlin.jvm.functions.Function0<kotlin.Unit> bodyContent);
-    method public static void ModalDrawerLayout-s-rmCOo(androidx.ui.material.DrawerState drawerState, kotlin.jvm.functions.Function1<? super androidx.ui.material.DrawerState,kotlin.Unit> onStateChange, boolean gesturesEnabled = true, androidx.ui.graphics.Shape drawerShape = large, float drawerElevation = DrawerConstants.DefaultElevation, kotlin.jvm.functions.Function0<kotlin.Unit> drawerContent, kotlin.jvm.functions.Function0<kotlin.Unit> bodyContent);
+    method @androidx.compose.Composable public static void BottomDrawerLayout-s-rmCOo(androidx.ui.material.DrawerState drawerState, kotlin.jvm.functions.Function1<? super androidx.ui.material.DrawerState,kotlin.Unit> onStateChange, boolean gesturesEnabled = true, androidx.ui.graphics.Shape drawerShape = large, float drawerElevation = DrawerConstants.DefaultElevation, kotlin.jvm.functions.Function0<kotlin.Unit> drawerContent, kotlin.jvm.functions.Function0<kotlin.Unit> bodyContent);
+    method @androidx.compose.Composable public static void ModalDrawerLayout-s-rmCOo(androidx.ui.material.DrawerState drawerState, kotlin.jvm.functions.Function1<? super androidx.ui.material.DrawerState,kotlin.Unit> onStateChange, boolean gesturesEnabled = true, androidx.ui.graphics.Shape drawerShape = large, float drawerElevation = DrawerConstants.DefaultElevation, kotlin.jvm.functions.Function0<kotlin.Unit> drawerContent, kotlin.jvm.functions.Function0<kotlin.Unit> bodyContent);
   }
 
   public enum DrawerState {
@@ -117,12 +117,12 @@
     enum_constant public static final androidx.ui.material.DrawerState Opened;
   }
 
-  public interface Emphasis {
+  @androidx.compose.Immutable public interface Emphasis {
     method public long applyEmphasis-QEYXlZo(long color);
   }
 
   public final class EmphasisKt {
-    method public static void ProvideEmphasis(androidx.ui.material.Emphasis emphasis, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void ProvideEmphasis(androidx.ui.material.Emphasis emphasis, kotlin.jvm.functions.Function0<kotlin.Unit> content);
     method public static androidx.compose.Ambient<androidx.ui.material.EmphasisLevels> getEmphasisAmbient();
   }
 
@@ -136,18 +136,18 @@
   }
 
   public final class FloatingActionButtonKt {
-    method public static void ExtendedFloatingActionButton-r9QhOOE(kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>? icon = null, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(CornerSize(50)), long backgroundColor = MaterialTheme.colors.secondary, long contentColor = contentColorFor(backgroundColor), float elevation = 6.dp);
-    method public static void FloatingActionButton-rf6Y9PE(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(CornerSize(50)), long backgroundColor = MaterialTheme.colors.secondary, long contentColor = contentColorFor(backgroundColor), float elevation = 6.dp, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
+    method @androidx.compose.Composable public static void ExtendedFloatingActionButton-r9QhOOE(kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>? icon = null, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(CornerSize(50)), long backgroundColor = MaterialTheme.colors.secondary, long contentColor = contentColorFor(backgroundColor), float elevation = 6.dp);
+    method @androidx.compose.Composable public static void FloatingActionButton-rf6Y9PE(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(CornerSize(50)), long backgroundColor = MaterialTheme.colors.secondary, long contentColor = contentColorFor(backgroundColor), float elevation = 6.dp, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
   }
 
   public final class IconButtonKt {
-    method public static void IconButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
-    method public static void IconToggleButton(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
+    method @androidx.compose.Composable public static void IconButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
+    method @androidx.compose.Composable public static void IconToggleButton(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
   }
 
   public final class ListItemKt {
-    method public static void ListItem(String text, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.ImageAsset? icon = null, String? secondaryText = null, boolean singleLineSecondaryText = true, String? overlineText = null, String? metaText = null);
-    method public static void ListItem(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>? icon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? secondaryText = null, boolean singleLineSecondaryText = true, kotlin.jvm.functions.Function0<kotlin.Unit>? overlineText = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailing = null, kotlin.jvm.functions.Function0<kotlin.Unit> text);
+    method @androidx.compose.Composable public static void ListItem(String text, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.ImageAsset? icon = null, String? secondaryText = null, boolean singleLineSecondaryText = true, String? overlineText = null, String? metaText = null);
+    method @androidx.compose.Composable public static void ListItem(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>? icon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? secondaryText = null, boolean singleLineSecondaryText = true, kotlin.jvm.functions.Function0<kotlin.Unit>? overlineText = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailing = null, kotlin.jvm.functions.Function0<kotlin.Unit> text);
   }
 
   public final class MaterialTheme {
@@ -161,12 +161,12 @@
   }
 
   public final class MaterialThemeKt {
-    method public static void MaterialTheme(androidx.ui.material.ColorPalette colors = MaterialTheme.colors, androidx.ui.material.Typography typography = MaterialTheme.typography, androidx.ui.material.Shapes shapes = MaterialTheme.shapes, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void MaterialTheme(androidx.ui.material.ColorPalette colors = MaterialTheme.colors, androidx.ui.material.Typography typography = MaterialTheme.typography, androidx.ui.material.Shapes shapes = MaterialTheme.shapes, kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
   public final class MenuKt {
-    method public static void DropdownMenu-1DTJxuk(kotlin.jvm.functions.Function0<kotlin.Unit> toggle, boolean expanded, kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, androidx.ui.core.Modifier toggleModifier = Modifier, long dropdownOffset = Position(0.dp, 0.dp), androidx.ui.core.Modifier dropdownModifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> dropdownContent);
-    method public static void DropdownMenuItem(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void DropdownMenu-1DTJxuk(kotlin.jvm.functions.Function0<kotlin.Unit> toggle, boolean expanded, kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, androidx.ui.core.Modifier toggleModifier = Modifier, long dropdownOffset = Position(0.dp, 0.dp), androidx.ui.core.Modifier dropdownModifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> dropdownContent);
+    method @androidx.compose.Composable public static void DropdownMenuItem(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
   public final class ProgressIndicatorConstants {
@@ -176,21 +176,21 @@
   }
 
   public final class ProgressIndicatorKt {
-    method public static void CircularProgressIndicator-EMuwvL0(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary, float strokeWidth = ProgressIndicatorConstants.DefaultStrokeWidth);
-    method public static void CircularProgressIndicator-it0oM4E(@FloatRange(from=0.0, to=1.0) float progress, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary, float strokeWidth = ProgressIndicatorConstants.DefaultStrokeWidth);
-    method public static void LinearProgressIndicator-e8O-MNM(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary);
-    method public static void LinearProgressIndicator-kB8eKMs(@FloatRange(from=0.0, to=1.0) float progress, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary);
+    method @androidx.compose.Composable public static void CircularProgressIndicator-EMuwvL0(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary, float strokeWidth = ProgressIndicatorConstants.DefaultStrokeWidth);
+    method @androidx.compose.Composable public static void CircularProgressIndicator-it0oM4E(@FloatRange(from=0.0, to=1.0) float progress, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary, float strokeWidth = ProgressIndicatorConstants.DefaultStrokeWidth);
+    method @androidx.compose.Composable public static void LinearProgressIndicator-e8O-MNM(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary);
+    method @androidx.compose.Composable public static void LinearProgressIndicator-kB8eKMs(@FloatRange(from=0.0, to=1.0) float progress, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary);
   }
 
   public final class RadioButtonKt {
-    method public static void RadioButton-HeBYgfA(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit>? onSelect, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
-    method public static void RadioGroup(kotlin.jvm.functions.Function1<? super androidx.ui.material.RadioGroupScope,kotlin.Unit> content);
-    method public static void RadioGroup-HJ2D5H4(java.util.List<java.lang.String> options, String? selectedOption, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onSelectedChange, androidx.ui.core.Modifier modifier = Modifier, long radioColor = MaterialTheme.colors.secondary, androidx.ui.text.TextStyle? textStyle = null);
+    method @androidx.compose.Composable public static void RadioButton-HeBYgfA(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit>? onSelect, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
+    method @androidx.compose.Composable public static void RadioGroup(kotlin.jvm.functions.Function1<? super androidx.ui.material.RadioGroupScope,kotlin.Unit> content);
+    method @androidx.compose.Composable public static void RadioGroup-HJ2D5H4(java.util.List<java.lang.String> options, String? selectedOption, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onSelectedChange, androidx.ui.core.Modifier modifier = Modifier, long radioColor = MaterialTheme.colors.secondary, androidx.ui.text.TextStyle? textStyle = null);
   }
 
-  public final class RadioGroupScope {
-    method public void RadioGroupItem(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelect, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method public void RadioGroupTextItem-JJAyy3w(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelect, String text, androidx.ui.core.Modifier modifier = Modifier, long radioColor = MaterialTheme.colors.secondary, androidx.ui.text.TextStyle? textStyle = null);
+  @androidx.compose.Stable public final class RadioGroupScope {
+    method @androidx.compose.Composable public void RadioGroupItem(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelect, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public void RadioGroupTextItem-JJAyy3w(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelect, String text, androidx.ui.core.Modifier modifier = Modifier, long radioColor = MaterialTheme.colors.secondary, androidx.ui.text.TextStyle? textStyle = null);
   }
 
   public final class Scaffold {
@@ -205,12 +205,12 @@
   }
 
   public final class ScaffoldKt {
-    method public static void Scaffold(androidx.ui.material.ScaffoldState scaffoldState = remember({ 
+    method @androidx.compose.Composable public static void Scaffold(androidx.ui.material.ScaffoldState scaffoldState = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function0<kotlin.Unit>? topAppBar = null, kotlin.jvm.functions.Function1<? super androidx.ui.material.BottomAppBar.FabConfiguration,kotlin.Unit>? bottomAppBar = null, kotlin.jvm.functions.Function0<kotlin.Unit>? floatingActionButton = null, androidx.ui.material.Scaffold.FabPosition floatingActionButtonPosition = androidx.ui.material.Scaffold.FabPosition.End, kotlin.jvm.functions.Function0<kotlin.Unit>? drawerContent = null, kotlin.jvm.functions.Function1<? super androidx.ui.core.Modifier,kotlin.Unit> bodyContent);
   }
 
-  public final class ScaffoldState {
+  @androidx.compose.Stable public final class ScaffoldState {
     ctor public ScaffoldState(androidx.ui.material.DrawerState drawerState, boolean isDrawerGesturesEnabled);
     ctor public ScaffoldState();
     method public androidx.ui.material.DrawerState getDrawerState();
@@ -237,34 +237,34 @@
   }
 
   public final class SliderKt {
-    method public static void Slider-NGIokMc(float value, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onValueChange, androidx.ui.core.Modifier modifier = Modifier, kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange = 0.0 .. 1.0, @IntRange(from=0) int steps = 0, kotlin.jvm.functions.Function0<kotlin.Unit>  long color = MaterialTheme.colors.primary);
+    method @androidx.compose.Composable public static void Slider-NGIokMc(float value, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onValueChange, androidx.ui.core.Modifier modifier = Modifier, kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange = 0.0 .. 1.0, @IntRange(from=0) int steps = 0, kotlin.jvm.functions.Function0<kotlin.Unit>  long color = MaterialTheme.colors.primary);
   }
 
   public final class SnackbarKt {
-    method public static void Snackbar-bRoLwi0(kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit>? action = null, androidx.ui.core.Modifier modifier = Modifier, boolean actionOnNewLine = false, androidx.ui.graphics.Shape shape = small, float elevation = 6.dp);
+    method @androidx.compose.Composable public static void Snackbar-bRoLwi0(kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit>? action = null, androidx.ui.core.Modifier modifier = Modifier, boolean actionOnNewLine = false, androidx.ui.graphics.Shape shape = small, float elevation = 6.dp);
     method public static long snackbarPrimaryColorFor(androidx.ui.material.ColorPalette colors);
   }
 
   public final class SurfaceKt {
-    method public static void Surface-r7cpYJI(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, long color = MaterialTheme.colors.surface, long contentColor = contentColorFor(color), androidx.ui.foundation.Border? border = null, float elevation = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void Surface-r7cpYJI(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, long color = MaterialTheme.colors.surface, long contentColor = contentColorFor(color), androidx.ui.foundation.Border? border = null, float elevation = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> content);
     method public static long getPrimarySurface(androidx.ui.material.ColorPalette);
   }
 
   public final class SwitchKt {
-    method public static void Switch-Ym7EGpc(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, long color = MaterialTheme.colors.secondaryVariant);
+    method @androidx.compose.Composable public static void Switch-Ym7EGpc(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, long color = MaterialTheme.colors.secondaryVariant);
   }
 
   public final class TabKt {
-    method public static void Tab(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method public static void Tab-5SZ958c(kotlin.jvm.functions.Function0<kotlin.Unit> text = emptyContent(), kotlin.jvm.functions.Function0<kotlin.Unit> icon = emptyContent(), boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, long activeColor = contentColor(), long inactiveColor = EmphasisAmbient.current.medium.applyEmphasis(activeColor));
-    method public static <T> void TabRow-nOWMzd0(java.util.List<? extends T> items, int selectedIndex, androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), boolean scrollable = false, kotlin.jvm.functions.Function1<? super java.util.List<androidx.ui.material.TabRow.TabPosition>,kotlin.Unit> indicatorContainer = { tabPositions -> TabRow.IndicatorContainer(tabPositions, selectedIndex, { 
+    method @androidx.compose.Composable public static void Tab(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void Tab-5SZ958c(kotlin.jvm.functions.Function0<kotlin.Unit> text = emptyContent(), kotlin.jvm.functions.Function0<kotlin.Unit> icon = emptyContent(), boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, long activeColor = contentColor(), long inactiveColor = EmphasisAmbient.current.medium.applyEmphasis(activeColor));
+    method @androidx.compose.Composable public static <T> void TabRow-nOWMzd0(java.util.List<? extends T> items, int selectedIndex, androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), boolean scrollable = false, kotlin.jvm.functions.Function1<? super java.util.List<androidx.ui.material.TabRow.TabPosition>,kotlin.Unit> indicatorContainer = { tabPositions -> TabRow.IndicatorContainer(tabPositions, selectedIndex, { 
     TabRow.Indicator()
 }) }, kotlin.jvm.functions.Function0<kotlin.Unit> divider = { Divider(1.dp, contentColor().copy(DividerOpacity)) }, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super T,kotlin.Unit> tab);
   }
 
   public final class TabRow {
-    method public void Indicator-e8O-MNM(androidx.ui.core.Modifier modifier = Modifier, long color = contentColor());
-    method public void IndicatorContainer(java.util.List<androidx.ui.material.TabRow.TabPosition> tabPositions, int selectedIndex, kotlin.jvm.functions.Function0<kotlin.Unit> indicator);
+    method @androidx.compose.Composable public void Indicator-e8O-MNM(androidx.ui.core.Modifier modifier = Modifier, long color = contentColor());
+    method @androidx.compose.Composable public void IndicatorContainer(java.util.List<androidx.ui.material.TabRow.TabPosition> tabPositions, int selectedIndex, kotlin.jvm.functions.Function0<kotlin.Unit> indicator);
     field public static final androidx.ui.material.TabRow! INSTANCE;
   }
 
@@ -285,11 +285,11 @@
   }
 
   public final class TextFieldKt {
-    method public static void FilledTextField-o4GafH0(String value, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onValueChange, kotlin.jvm.functions.Function0<kotlin.Unit> label, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle textStyle = currentTextStyle(), kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder = null, kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon = null, boolean isErrorValue = false, androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function2<? super androidx.ui.input.ImeAction,? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  _, _ ->  }, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long activeColor = MaterialTheme.colors.primary, long inactiveColor = MaterialTheme.colors.onSurface, long errorColor = MaterialTheme.colors.error, long backgroundColor = MaterialTheme.colors.onSurface, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(ZeroCornerSize, ZeroCornerSize));
-    method public static void FilledTextField-u5y5QhY(androidx.ui.foundation.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.ui.foundation.TextFieldValue,kotlin.Unit> onValueChange, kotlin.jvm.functions.Function0<kotlin.Unit> label, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle textStyle = currentTextStyle(), kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder = null, kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon = null, boolean isErrorValue = false, androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function2<? super androidx.ui.input.ImeAction,? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  _, _ ->  }, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long activeColor = MaterialTheme.colors.primary, long inactiveColor = MaterialTheme.colors.onSurface, long errorColor = MaterialTheme.colors.error, long backgroundColor = MaterialTheme.colors.onSurface, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(ZeroCornerSize, ZeroCornerSize));
+    method @androidx.compose.Composable public static void FilledTextField-o4GafH0(String value, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onValueChange, kotlin.jvm.functions.Function0<kotlin.Unit> label, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle textStyle = currentTextStyle(), kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder = null, kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon = null, boolean isErrorValue = false, androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function2<? super androidx.ui.input.ImeAction,? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  _, _ ->  }, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long activeColor = MaterialTheme.colors.primary, long inactiveColor = MaterialTheme.colors.onSurface, long errorColor = MaterialTheme.colors.error, long backgroundColor = MaterialTheme.colors.onSurface, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(ZeroCornerSize, ZeroCornerSize));
+    method @androidx.compose.Composable public static void FilledTextField-u5y5QhY(androidx.ui.foundation.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.ui.foundation.TextFieldValue,kotlin.Unit> onValueChange, kotlin.jvm.functions.Function0<kotlin.Unit> label, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle textStyle = currentTextStyle(), kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder = null, kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon = null, boolean isErrorValue = false, androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function2<? super androidx.ui.input.ImeAction,? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  _, _ ->  }, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long activeColor = MaterialTheme.colors.primary, long inactiveColor = MaterialTheme.colors.onSurface, long errorColor = MaterialTheme.colors.error, long backgroundColor = MaterialTheme.colors.onSurface, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(ZeroCornerSize, ZeroCornerSize));
   }
 
-  public final class Typography {
+  @androidx.compose.Immutable public final class Typography {
     ctor public Typography(androidx.ui.text.font.FontFamily defaultFontFamily, androidx.ui.text.TextStyle h1, androidx.ui.text.TextStyle h2, androidx.ui.text.TextStyle h3, androidx.ui.text.TextStyle h4, androidx.ui.text.TextStyle h5, androidx.ui.text.TextStyle h6, androidx.ui.text.TextStyle subtitle1, androidx.ui.text.TextStyle subtitle2, androidx.ui.text.TextStyle body1, androidx.ui.text.TextStyle body2, androidx.ui.text.TextStyle button, androidx.ui.text.TextStyle caption, androidx.ui.text.TextStyle overline);
     method public androidx.ui.text.TextStyle component1();
     method public androidx.ui.text.TextStyle component10();
@@ -304,7 +304,7 @@
     method public androidx.ui.text.TextStyle component7();
     method public androidx.ui.text.TextStyle component8();
     method public androidx.ui.text.TextStyle component9();
-    method public androidx.ui.material.Typography copy(androidx.ui.text.TextStyle h1, androidx.ui.text.TextStyle h2, androidx.ui.text.TextStyle h3, androidx.ui.text.TextStyle h4, androidx.ui.text.TextStyle h5, androidx.ui.text.TextStyle h6, androidx.ui.text.TextStyle subtitle1, androidx.ui.text.TextStyle subtitle2, androidx.ui.text.TextStyle body1, androidx.ui.text.TextStyle body2, androidx.ui.text.TextStyle button, androidx.ui.text.TextStyle caption, androidx.ui.text.TextStyle overline);
+    method @androidx.compose.Immutable public androidx.ui.material.Typography copy(androidx.ui.text.TextStyle h1, androidx.ui.text.TextStyle h2, androidx.ui.text.TextStyle h3, androidx.ui.text.TextStyle h4, androidx.ui.text.TextStyle h5, androidx.ui.text.TextStyle h6, androidx.ui.text.TextStyle subtitle1, androidx.ui.text.TextStyle subtitle2, androidx.ui.text.TextStyle body1, androidx.ui.text.TextStyle body2, androidx.ui.text.TextStyle button, androidx.ui.text.TextStyle caption, androidx.ui.text.TextStyle overline);
     method public androidx.ui.text.TextStyle getBody1();
     method public androidx.ui.text.TextStyle getBody2();
     method public androidx.ui.text.TextStyle getButton();
@@ -357,7 +357,7 @@
   }
 
   public final class RippleIndicationKt {
-    method public static androidx.ui.material.ripple.RippleIndication RippleIndication-XC6LiZk(boolean bounded = true, androidx.ui.unit.Dp? radius = null, long color = Color.Unset);
+    method @androidx.compose.Composable public static androidx.ui.material.ripple.RippleIndication RippleIndication-XC6LiZk(boolean bounded = true, androidx.ui.unit.Dp? radius = null, long color = Color.Unset);
   }
 
   public final class RippleKt {
diff --git a/ui/ui-material/api/current.txt b/ui/ui-material/api/current.txt
index 8516bbd..0821452 100644
--- a/ui/ui-material/api/current.txt
+++ b/ui/ui-material/api/current.txt
@@ -7,23 +7,23 @@
   }
 
   public final class AlertDialogKt {
-    method public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit>? title = null, kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> confirmButton, kotlin.jvm.functions.Function0<kotlin.Unit>? dismissButton = null, androidx.ui.material.AlertDialogButtonLayout buttonLayout = androidx.ui.material.AlertDialogButtonLayout.SideBySide, androidx.ui.graphics.Shape shape = medium);
-    method public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit>? title = null, kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> buttons, androidx.ui.graphics.Shape shape = medium);
+    method @androidx.compose.Composable public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit>? title = null, kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> confirmButton, kotlin.jvm.functions.Function0<kotlin.Unit>? dismissButton = null, androidx.ui.material.AlertDialogButtonLayout buttonLayout = androidx.ui.material.AlertDialogButtonLayout.SideBySide, androidx.ui.graphics.Shape shape = medium);
+    method @androidx.compose.Composable public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit>? title = null, kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> buttons, androidx.ui.graphics.Shape shape = medium);
   }
 
   public final class AppBarKt {
-    method public static void BottomAppBar-GqrRtJg(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), androidx.ui.material.BottomAppBar.FabConfiguration? fabConfiguration = null, androidx.ui.graphics.Shape? cutoutShape = null, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
-    method public static void TopAppBar-FikZsjU(kotlin.jvm.functions.Function0<kotlin.Unit> title, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>? navigationIcon = null, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> actions = {}, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.AppBarKt.TopAppBarElevation);
-    method public static void TopAppBar-oP-1cd0(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.AppBarKt.TopAppBarElevation, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
+    method @androidx.compose.Composable public static void BottomAppBar-GqrRtJg(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), androidx.ui.material.BottomAppBar.FabConfiguration? fabConfiguration = null, androidx.ui.graphics.Shape? cutoutShape = null, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
+    method @androidx.compose.Composable public static void TopAppBar-FikZsjU(kotlin.jvm.functions.Function0<kotlin.Unit> title, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>? navigationIcon = null, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> actions = {}, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.AppBarKt.TopAppBarElevation);
+    method @androidx.compose.Composable public static void TopAppBar-oP-1cd0(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.AppBarKt.TopAppBarElevation, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
   }
 
   public final class BottomAppBar {
     field public static final androidx.ui.material.BottomAppBar! INSTANCE;
   }
 
-  public static final class BottomAppBar.FabConfiguration {
+  @androidx.compose.Immutable public static final class BottomAppBar.FabConfiguration {
     ctor public BottomAppBar.FabConfiguration(internal androidx.ui.unit.IntPxSize fabSize, internal androidx.ui.unit.PxPosition fabTopLeftPosition, internal androidx.ui.material.BottomAppBar.FabDockedPosition fabDockedPosition);
-    method public androidx.ui.material.BottomAppBar.FabConfiguration copy(androidx.ui.unit.IntPxSize fabSize, androidx.ui.unit.PxPosition fabTopLeftPosition, androidx.ui.material.BottomAppBar.FabDockedPosition fabDockedPosition);
+    method @androidx.compose.Immutable public androidx.ui.material.BottomAppBar.FabConfiguration copy(androidx.ui.unit.IntPxSize fabSize, androidx.ui.unit.PxPosition fabTopLeftPosition, androidx.ui.material.BottomAppBar.FabDockedPosition fabDockedPosition);
   }
 
   public enum BottomAppBar.FabDockedPosition {
@@ -32,8 +32,8 @@
   }
 
   public final class BottomNavigationKt {
-    method public static void BottomNavigation-oP-1cd0(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.BottomNavigationKt.BottomNavigationElevation, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
-    method public static void BottomNavigationItem-dOPBtLY(kotlin.jvm.functions.Function0<kotlin.Unit> icon, kotlin.jvm.functions.Function0<kotlin.Unit> text = emptyContent(), boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, boolean alwaysShowLabels = true, long activeColor = contentColor(), long inactiveColor = EmphasisAmbient.current.medium.applyEmphasis(activeColor));
+    method @androidx.compose.Composable public static void BottomNavigation-oP-1cd0(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.BottomNavigationKt.BottomNavigationElevation, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
+    method @androidx.compose.Composable public static void BottomNavigationItem-dOPBtLY(kotlin.jvm.functions.Function0<kotlin.Unit> icon, kotlin.jvm.functions.Function0<kotlin.Unit> text = emptyContent(), boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, boolean alwaysShowLabels = true, long activeColor = contentColor(), long inactiveColor = EmphasisAmbient.current.medium.applyEmphasis(activeColor));
   }
 
   public final class Button {
@@ -47,22 +47,22 @@
   }
 
   public final class ButtonKt {
-    method public static void Button-YWYas6U(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 2.dp, float disabledElevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = null, long backgroundColor = MaterialTheme.colors.primary, long disabledBackgroundColor = Button.defaultDisabledBackgroundColor, long contentColor = contentColorFor(backgroundColor), long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = Button.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
-    method public static inline void OutlinedButton-5tjLhF8(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = Border(1.dp, MaterialTheme.colors.onSurface.copy(OutlinedStrokeOpacity)), long backgroundColor = MaterialTheme.colors.surface, long contentColor = contentColorFor(backgroundColor), long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = Button.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
-    method public static inline void TextButton-5tjLhF8(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = null, long backgroundColor = Color.Transparent, long contentColor = MaterialTheme.colors.primary, long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = TextButton.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
+    method @androidx.compose.Composable public static void Button-YWYas6U(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 2.dp, float disabledElevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = null, long backgroundColor = MaterialTheme.colors.primary, long disabledBackgroundColor = Button.defaultDisabledBackgroundColor, long contentColor = contentColorFor(backgroundColor), long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = Button.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
+    method @androidx.compose.Composable public static inline void OutlinedButton-5tjLhF8(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = Border(1.dp, MaterialTheme.colors.onSurface.copy(OutlinedStrokeOpacity)), long backgroundColor = MaterialTheme.colors.surface, long contentColor = contentColorFor(backgroundColor), long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = Button.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
+    method @androidx.compose.Composable public static inline void TextButton-5tjLhF8(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = null, long backgroundColor = Color.Transparent, long contentColor = MaterialTheme.colors.primary, long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = TextButton.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
   }
 
   public final class CardKt {
-    method public static void Card-r7cpYJI(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = medium, long color = MaterialTheme.colors.surface, long contentColor = contentColorFor(color), androidx.ui.foundation.Border? border = null, float elevation = 1.dp, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void Card-r7cpYJI(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = medium, long color = MaterialTheme.colors.surface, long contentColor = contentColorFor(color), androidx.ui.foundation.Border? border = null, float elevation = 1.dp, kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
   public final class CheckboxKt {
-    method public static void Checkbox-D4zOgQA(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
-    method public static void TriStateCheckbox--Buf9SY(androidx.ui.foundation.selection.ToggleableState state, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
+    method @androidx.compose.Composable public static void Checkbox-D4zOgQA(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
+    method @androidx.compose.Composable public static void TriStateCheckbox--Buf9SY(androidx.ui.foundation.selection.ToggleableState state, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
   }
 
   public final class ColorKt {
-    method public static long contentColorFor-QEYXlZo(long color);
+    method @androidx.compose.Composable public static long contentColorFor-QEYXlZo(long color);
     method public static long contentColorFor-ZITCLTE(androidx.ui.material.ColorPalette, long color);
     method public static androidx.ui.material.ColorPalette darkColorPalette-bz757pg(long primary = Color(4290479868), long primaryVariant = Color(4281794739), long secondary = Color(4278442694), long background = Color(4279374354), long surface = Color(4279374354), long error = Color(4291782265), long  long  long  long  long >
     method public static androidx.ui.material.ColorPalette lightColorPalette-eO6A0Mk(long primary = Color(4284612846), long primaryVariant = Color(4281794739), long secondary = Color(4278442694), long secondaryVariant = Color(4278290310), long background = Color.White, long surface = Color.White, long error = Color(4289724448), long  long  long  long  long >
@@ -98,7 +98,7 @@
   }
 
   public final class DividerKt {
-    method public static void Divider-5sN9_mQ(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.onSurface.copy(DividerAlpha), float thickness = 1.dp, float startIndent = 0.dp);
+    method @androidx.compose.Composable public static void Divider-5sN9_mQ(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.onSurface.copy(DividerAlpha), float thickness = 1.dp, float startIndent = 0.dp);
   }
 
   public final class DrawerConstants {
@@ -108,8 +108,8 @@
   }
 
   public final class DrawerKt {
-    method public static void BottomDrawerLayout-s-rmCOo(androidx.ui.material.DrawerState drawerState, kotlin.jvm.functions.Function1<? super androidx.ui.material.DrawerState,kotlin.Unit> onStateChange, boolean gesturesEnabled = true, androidx.ui.graphics.Shape drawerShape = large, float drawerElevation = DrawerConstants.DefaultElevation, kotlin.jvm.functions.Function0<kotlin.Unit> drawerContent, kotlin.jvm.functions.Function0<kotlin.Unit> bodyContent);
-    method public static void ModalDrawerLayout-s-rmCOo(androidx.ui.material.DrawerState drawerState, kotlin.jvm.functions.Function1<? super androidx.ui.material.DrawerState,kotlin.Unit> onStateChange, boolean gesturesEnabled = true, androidx.ui.graphics.Shape drawerShape = large, float drawerElevation = DrawerConstants.DefaultElevation, kotlin.jvm.functions.Function0<kotlin.Unit> drawerContent, kotlin.jvm.functions.Function0<kotlin.Unit> bodyContent);
+    method @androidx.compose.Composable public static void BottomDrawerLayout-s-rmCOo(androidx.ui.material.DrawerState drawerState, kotlin.jvm.functions.Function1<? super androidx.ui.material.DrawerState,kotlin.Unit> onStateChange, boolean gesturesEnabled = true, androidx.ui.graphics.Shape drawerShape = large, float drawerElevation = DrawerConstants.DefaultElevation, kotlin.jvm.functions.Function0<kotlin.Unit> drawerContent, kotlin.jvm.functions.Function0<kotlin.Unit> bodyContent);
+    method @androidx.compose.Composable public static void ModalDrawerLayout-s-rmCOo(androidx.ui.material.DrawerState drawerState, kotlin.jvm.functions.Function1<? super androidx.ui.material.DrawerState,kotlin.Unit> onStateChange, boolean gesturesEnabled = true, androidx.ui.graphics.Shape drawerShape = large, float drawerElevation = DrawerConstants.DefaultElevation, kotlin.jvm.functions.Function0<kotlin.Unit> drawerContent, kotlin.jvm.functions.Function0<kotlin.Unit> bodyContent);
   }
 
   public enum DrawerState {
@@ -117,12 +117,12 @@
     enum_constant public static final androidx.ui.material.DrawerState Opened;
   }
 
-  public interface Emphasis {
+  @androidx.compose.Immutable public interface Emphasis {
     method public long applyEmphasis-QEYXlZo(long color);
   }
 
   public final class EmphasisKt {
-    method public static void ProvideEmphasis(androidx.ui.material.Emphasis emphasis, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void ProvideEmphasis(androidx.ui.material.Emphasis emphasis, kotlin.jvm.functions.Function0<kotlin.Unit> content);
     method public static androidx.compose.Ambient<androidx.ui.material.EmphasisLevels> getEmphasisAmbient();
   }
 
@@ -136,18 +136,18 @@
   }
 
   public final class FloatingActionButtonKt {
-    method public static void ExtendedFloatingActionButton-r9QhOOE(kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>? icon = null, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(CornerSize(50)), long backgroundColor = MaterialTheme.colors.secondary, long contentColor = contentColorFor(backgroundColor), float elevation = 6.dp);
-    method public static void FloatingActionButton-rf6Y9PE(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(CornerSize(50)), long backgroundColor = MaterialTheme.colors.secondary, long contentColor = contentColorFor(backgroundColor), float elevation = 6.dp, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
+    method @androidx.compose.Composable public static void ExtendedFloatingActionButton-r9QhOOE(kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>? icon = null, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(CornerSize(50)), long backgroundColor = MaterialTheme.colors.secondary, long contentColor = contentColorFor(backgroundColor), float elevation = 6.dp);
+    method @androidx.compose.Composable public static void FloatingActionButton-rf6Y9PE(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(CornerSize(50)), long backgroundColor = MaterialTheme.colors.secondary, long contentColor = contentColorFor(backgroundColor), float elevation = 6.dp, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
   }
 
   public final class IconButtonKt {
-    method public static void IconButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
-    method public static void IconToggleButton(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
+    method @androidx.compose.Composable public static void IconButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
+    method @androidx.compose.Composable public static void IconToggleButton(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
   }
 
   public final class ListItemKt {
-    method public static void ListItem(String text, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.ImageAsset? icon = null, String? secondaryText = null, boolean singleLineSecondaryText = true, String? overlineText = null, String? metaText = null);
-    method public static void ListItem(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>? icon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? secondaryText = null, boolean singleLineSecondaryText = true, kotlin.jvm.functions.Function0<kotlin.Unit>? overlineText = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailing = null, kotlin.jvm.functions.Function0<kotlin.Unit> text);
+    method @androidx.compose.Composable public static void ListItem(String text, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.ImageAsset? icon = null, String? secondaryText = null, boolean singleLineSecondaryText = true, String? overlineText = null, String? metaText = null);
+    method @androidx.compose.Composable public static void ListItem(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>? icon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? secondaryText = null, boolean singleLineSecondaryText = true, kotlin.jvm.functions.Function0<kotlin.Unit>? overlineText = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailing = null, kotlin.jvm.functions.Function0<kotlin.Unit> text);
   }
 
   public final class MaterialTheme {
@@ -161,12 +161,12 @@
   }
 
   public final class MaterialThemeKt {
-    method public static void MaterialTheme(androidx.ui.material.ColorPalette colors = MaterialTheme.colors, androidx.ui.material.Typography typography = MaterialTheme.typography, androidx.ui.material.Shapes shapes = MaterialTheme.shapes, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void MaterialTheme(androidx.ui.material.ColorPalette colors = MaterialTheme.colors, androidx.ui.material.Typography typography = MaterialTheme.typography, androidx.ui.material.Shapes shapes = MaterialTheme.shapes, kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
   public final class MenuKt {
-    method public static void DropdownMenu-1DTJxuk(kotlin.jvm.functions.Function0<kotlin.Unit> toggle, boolean expanded, kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, androidx.ui.core.Modifier toggleModifier = Modifier, long dropdownOffset = Position(0.dp, 0.dp), androidx.ui.core.Modifier dropdownModifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> dropdownContent);
-    method public static void DropdownMenuItem(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void DropdownMenu-1DTJxuk(kotlin.jvm.functions.Function0<kotlin.Unit> toggle, boolean expanded, kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, androidx.ui.core.Modifier toggleModifier = Modifier, long dropdownOffset = Position(0.dp, 0.dp), androidx.ui.core.Modifier dropdownModifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> dropdownContent);
+    method @androidx.compose.Composable public static void DropdownMenuItem(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
   public final class ProgressIndicatorConstants {
@@ -176,21 +176,21 @@
   }
 
   public final class ProgressIndicatorKt {
-    method public static void CircularProgressIndicator-EMuwvL0(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary, float strokeWidth = ProgressIndicatorConstants.DefaultStrokeWidth);
-    method public static void CircularProgressIndicator-it0oM4E(@FloatRange(from=0.0, to=1.0) float progress, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary, float strokeWidth = ProgressIndicatorConstants.DefaultStrokeWidth);
-    method public static void LinearProgressIndicator-e8O-MNM(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary);
-    method public static void LinearProgressIndicator-kB8eKMs(@FloatRange(from=0.0, to=1.0) float progress, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary);
+    method @androidx.compose.Composable public static void CircularProgressIndicator-EMuwvL0(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary, float strokeWidth = ProgressIndicatorConstants.DefaultStrokeWidth);
+    method @androidx.compose.Composable public static void CircularProgressIndicator-it0oM4E(@FloatRange(from=0.0, to=1.0) float progress, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary, float strokeWidth = ProgressIndicatorConstants.DefaultStrokeWidth);
+    method @androidx.compose.Composable public static void LinearProgressIndicator-e8O-MNM(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary);
+    method @androidx.compose.Composable public static void LinearProgressIndicator-kB8eKMs(@FloatRange(from=0.0, to=1.0) float progress, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary);
   }
 
   public final class RadioButtonKt {
-    method public static void RadioButton-HeBYgfA(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit>? onSelect, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
-    method public static void RadioGroup(kotlin.jvm.functions.Function1<? super androidx.ui.material.RadioGroupScope,kotlin.Unit> content);
-    method public static void RadioGroup-HJ2D5H4(java.util.List<java.lang.String> options, String? selectedOption, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onSelectedChange, androidx.ui.core.Modifier modifier = Modifier, long radioColor = MaterialTheme.colors.secondary, androidx.ui.text.TextStyle? textStyle = null);
+    method @androidx.compose.Composable public static void RadioButton-HeBYgfA(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit>? onSelect, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
+    method @androidx.compose.Composable public static void RadioGroup(kotlin.jvm.functions.Function1<? super androidx.ui.material.RadioGroupScope,kotlin.Unit> content);
+    method @androidx.compose.Composable public static void RadioGroup-HJ2D5H4(java.util.List<java.lang.String> options, String? selectedOption, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onSelectedChange, androidx.ui.core.Modifier modifier = Modifier, long radioColor = MaterialTheme.colors.secondary, androidx.ui.text.TextStyle? textStyle = null);
   }
 
-  public final class RadioGroupScope {
-    method public void RadioGroupItem(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelect, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method public void RadioGroupTextItem-JJAyy3w(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelect, String text, androidx.ui.core.Modifier modifier = Modifier, long radioColor = MaterialTheme.colors.secondary, androidx.ui.text.TextStyle? textStyle = null);
+  @androidx.compose.Stable public final class RadioGroupScope {
+    method @androidx.compose.Composable public void RadioGroupItem(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelect, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public void RadioGroupTextItem-JJAyy3w(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelect, String text, androidx.ui.core.Modifier modifier = Modifier, long radioColor = MaterialTheme.colors.secondary, androidx.ui.text.TextStyle? textStyle = null);
   }
 
   public final class Scaffold {
@@ -205,12 +205,12 @@
   }
 
   public final class ScaffoldKt {
-    method public static void Scaffold(androidx.ui.material.ScaffoldState scaffoldState = remember({ 
+    method @androidx.compose.Composable public static void Scaffold(androidx.ui.material.ScaffoldState scaffoldState = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function0<kotlin.Unit>? topAppBar = null, kotlin.jvm.functions.Function1<? super androidx.ui.material.BottomAppBar.FabConfiguration,kotlin.Unit>? bottomAppBar = null, kotlin.jvm.functions.Function0<kotlin.Unit>? floatingActionButton = null, androidx.ui.material.Scaffold.FabPosition floatingActionButtonPosition = androidx.ui.material.Scaffold.FabPosition.End, kotlin.jvm.functions.Function0<kotlin.Unit>? drawerContent = null, kotlin.jvm.functions.Function1<? super androidx.ui.core.Modifier,kotlin.Unit> bodyContent);
   }
 
-  public final class ScaffoldState {
+  @androidx.compose.Stable public final class ScaffoldState {
     ctor public ScaffoldState(androidx.ui.material.DrawerState drawerState, boolean isDrawerGesturesEnabled);
     ctor public ScaffoldState();
     method public androidx.ui.material.DrawerState getDrawerState();
@@ -237,34 +237,34 @@
   }
 
   public final class SliderKt {
-    method public static void Slider-NGIokMc(float value, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onValueChange, androidx.ui.core.Modifier modifier = Modifier, kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange = 0.0 .. 1.0, @IntRange(from=0) int steps = 0, kotlin.jvm.functions.Function0<kotlin.Unit>  long color = MaterialTheme.colors.primary);
+    method @androidx.compose.Composable public static void Slider-NGIokMc(float value, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onValueChange, androidx.ui.core.Modifier modifier = Modifier, kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange = 0.0 .. 1.0, @IntRange(from=0) int steps = 0, kotlin.jvm.functions.Function0<kotlin.Unit>  long color = MaterialTheme.colors.primary);
   }
 
   public final class SnackbarKt {
-    method public static void Snackbar-bRoLwi0(kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit>? action = null, androidx.ui.core.Modifier modifier = Modifier, boolean actionOnNewLine = false, androidx.ui.graphics.Shape shape = small, float elevation = 6.dp);
+    method @androidx.compose.Composable public static void Snackbar-bRoLwi0(kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit>? action = null, androidx.ui.core.Modifier modifier = Modifier, boolean actionOnNewLine = false, androidx.ui.graphics.Shape shape = small, float elevation = 6.dp);
     method public static long snackbarPrimaryColorFor(androidx.ui.material.ColorPalette colors);
   }
 
   public final class SurfaceKt {
-    method public static void Surface-r7cpYJI(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, long color = MaterialTheme.colors.surface, long contentColor = contentColorFor(color), androidx.ui.foundation.Border? border = null, float elevation = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void Surface-r7cpYJI(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, long color = MaterialTheme.colors.surface, long contentColor = contentColorFor(color), androidx.ui.foundation.Border? border = null, float elevation = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> content);
     method public static long getPrimarySurface(androidx.ui.material.ColorPalette);
   }
 
   public final class SwitchKt {
-    method public static void Switch-Ym7EGpc(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, long color = MaterialTheme.colors.secondaryVariant);
+    method @androidx.compose.Composable public static void Switch-Ym7EGpc(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, long color = MaterialTheme.colors.secondaryVariant);
   }
 
   public final class TabKt {
-    method public static void Tab(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method public static void Tab-5SZ958c(kotlin.jvm.functions.Function0<kotlin.Unit> text = emptyContent(), kotlin.jvm.functions.Function0<kotlin.Unit> icon = emptyContent(), boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, long activeColor = contentColor(), long inactiveColor = EmphasisAmbient.current.medium.applyEmphasis(activeColor));
-    method public static <T> void TabRow-nOWMzd0(java.util.List<? extends T> items, int selectedIndex, androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), boolean scrollable = false, kotlin.jvm.functions.Function1<? super java.util.List<androidx.ui.material.TabRow.TabPosition>,kotlin.Unit> indicatorContainer = { tabPositions -> TabRow.IndicatorContainer(tabPositions, selectedIndex, { 
+    method @androidx.compose.Composable public static void Tab(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void Tab-5SZ958c(kotlin.jvm.functions.Function0<kotlin.Unit> text = emptyContent(), kotlin.jvm.functions.Function0<kotlin.Unit> icon = emptyContent(), boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, long activeColor = contentColor(), long inactiveColor = EmphasisAmbient.current.medium.applyEmphasis(activeColor));
+    method @androidx.compose.Composable public static <T> void TabRow-nOWMzd0(java.util.List<? extends T> items, int selectedIndex, androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), boolean scrollable = false, kotlin.jvm.functions.Function1<? super java.util.List<androidx.ui.material.TabRow.TabPosition>,kotlin.Unit> indicatorContainer = { tabPositions -> TabRow.IndicatorContainer(tabPositions, selectedIndex, { 
     TabRow.Indicator()
 }) }, kotlin.jvm.functions.Function0<kotlin.Unit> divider = { Divider(1.dp, contentColor().copy(DividerOpacity)) }, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super T,kotlin.Unit> tab);
   }
 
   public final class TabRow {
-    method public void Indicator-e8O-MNM(androidx.ui.core.Modifier modifier = Modifier, long color = contentColor());
-    method public void IndicatorContainer(java.util.List<androidx.ui.material.TabRow.TabPosition> tabPositions, int selectedIndex, kotlin.jvm.functions.Function0<kotlin.Unit> indicator);
+    method @androidx.compose.Composable public void Indicator-e8O-MNM(androidx.ui.core.Modifier modifier = Modifier, long color = contentColor());
+    method @androidx.compose.Composable public void IndicatorContainer(java.util.List<androidx.ui.material.TabRow.TabPosition> tabPositions, int selectedIndex, kotlin.jvm.functions.Function0<kotlin.Unit> indicator);
     field public static final androidx.ui.material.TabRow! INSTANCE;
   }
 
@@ -285,11 +285,11 @@
   }
 
   public final class TextFieldKt {
-    method public static void FilledTextField-o4GafH0(String value, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onValueChange, kotlin.jvm.functions.Function0<kotlin.Unit> label, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle textStyle = currentTextStyle(), kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder = null, kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon = null, boolean isErrorValue = false, androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function2<? super androidx.ui.input.ImeAction,? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  _, _ ->  }, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long activeColor = MaterialTheme.colors.primary, long inactiveColor = MaterialTheme.colors.onSurface, long errorColor = MaterialTheme.colors.error, long backgroundColor = MaterialTheme.colors.onSurface, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(ZeroCornerSize, ZeroCornerSize));
-    method public static void FilledTextField-u5y5QhY(androidx.ui.foundation.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.ui.foundation.TextFieldValue,kotlin.Unit> onValueChange, kotlin.jvm.functions.Function0<kotlin.Unit> label, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle textStyle = currentTextStyle(), kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder = null, kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon = null, boolean isErrorValue = false, androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function2<? super androidx.ui.input.ImeAction,? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  _, _ ->  }, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long activeColor = MaterialTheme.colors.primary, long inactiveColor = MaterialTheme.colors.onSurface, long errorColor = MaterialTheme.colors.error, long backgroundColor = MaterialTheme.colors.onSurface, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(ZeroCornerSize, ZeroCornerSize));
+    method @androidx.compose.Composable public static void FilledTextField-o4GafH0(String value, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onValueChange, kotlin.jvm.functions.Function0<kotlin.Unit> label, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle textStyle = currentTextStyle(), kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder = null, kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon = null, boolean isErrorValue = false, androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function2<? super androidx.ui.input.ImeAction,? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  _, _ ->  }, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long activeColor = MaterialTheme.colors.primary, long inactiveColor = MaterialTheme.colors.onSurface, long errorColor = MaterialTheme.colors.error, long backgroundColor = MaterialTheme.colors.onSurface, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(ZeroCornerSize, ZeroCornerSize));
+    method @androidx.compose.Composable public static void FilledTextField-u5y5QhY(androidx.ui.foundation.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.ui.foundation.TextFieldValue,kotlin.Unit> onValueChange, kotlin.jvm.functions.Function0<kotlin.Unit> label, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle textStyle = currentTextStyle(), kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder = null, kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon = null, boolean isErrorValue = false, androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function2<? super androidx.ui.input.ImeAction,? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  _, _ ->  }, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long activeColor = MaterialTheme.colors.primary, long inactiveColor = MaterialTheme.colors.onSurface, long errorColor = MaterialTheme.colors.error, long backgroundColor = MaterialTheme.colors.onSurface, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(ZeroCornerSize, ZeroCornerSize));
   }
 
-  public final class Typography {
+  @androidx.compose.Immutable public final class Typography {
     ctor public Typography(androidx.ui.text.font.FontFamily defaultFontFamily, androidx.ui.text.TextStyle h1, androidx.ui.text.TextStyle h2, androidx.ui.text.TextStyle h3, androidx.ui.text.TextStyle h4, androidx.ui.text.TextStyle h5, androidx.ui.text.TextStyle h6, androidx.ui.text.TextStyle subtitle1, androidx.ui.text.TextStyle subtitle2, androidx.ui.text.TextStyle body1, androidx.ui.text.TextStyle body2, androidx.ui.text.TextStyle button, androidx.ui.text.TextStyle caption, androidx.ui.text.TextStyle overline);
     method public androidx.ui.text.TextStyle component1();
     method public androidx.ui.text.TextStyle component10();
@@ -304,7 +304,7 @@
     method public androidx.ui.text.TextStyle component7();
     method public androidx.ui.text.TextStyle component8();
     method public androidx.ui.text.TextStyle component9();
-    method public androidx.ui.material.Typography copy(androidx.ui.text.TextStyle h1, androidx.ui.text.TextStyle h2, androidx.ui.text.TextStyle h3, androidx.ui.text.TextStyle h4, androidx.ui.text.TextStyle h5, androidx.ui.text.TextStyle h6, androidx.ui.text.TextStyle subtitle1, androidx.ui.text.TextStyle subtitle2, androidx.ui.text.TextStyle body1, androidx.ui.text.TextStyle body2, androidx.ui.text.TextStyle button, androidx.ui.text.TextStyle caption, androidx.ui.text.TextStyle overline);
+    method @androidx.compose.Immutable public androidx.ui.material.Typography copy(androidx.ui.text.TextStyle h1, androidx.ui.text.TextStyle h2, androidx.ui.text.TextStyle h3, androidx.ui.text.TextStyle h4, androidx.ui.text.TextStyle h5, androidx.ui.text.TextStyle h6, androidx.ui.text.TextStyle subtitle1, androidx.ui.text.TextStyle subtitle2, androidx.ui.text.TextStyle body1, androidx.ui.text.TextStyle body2, androidx.ui.text.TextStyle button, androidx.ui.text.TextStyle caption, androidx.ui.text.TextStyle overline);
     method public androidx.ui.text.TextStyle getBody1();
     method public androidx.ui.text.TextStyle getBody2();
     method public androidx.ui.text.TextStyle getButton();
@@ -357,7 +357,7 @@
   }
 
   public final class RippleIndicationKt {
-    method public static androidx.ui.material.ripple.RippleIndication RippleIndication-XC6LiZk(boolean bounded = true, androidx.ui.unit.Dp? radius = null, long color = Color.Unset);
+    method @androidx.compose.Composable public static androidx.ui.material.ripple.RippleIndication RippleIndication-XC6LiZk(boolean bounded = true, androidx.ui.unit.Dp? radius = null, long color = Color.Unset);
   }
 
   public final class RippleKt {
diff --git a/ui/ui-material/api/public_plus_experimental_0.1.0-dev14.txt b/ui/ui-material/api/public_plus_experimental_0.1.0-dev14.txt
index 8516bbd..0821452 100644
--- a/ui/ui-material/api/public_plus_experimental_0.1.0-dev14.txt
+++ b/ui/ui-material/api/public_plus_experimental_0.1.0-dev14.txt
@@ -7,23 +7,23 @@
   }
 
   public final class AlertDialogKt {
-    method public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit>? title = null, kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> confirmButton, kotlin.jvm.functions.Function0<kotlin.Unit>? dismissButton = null, androidx.ui.material.AlertDialogButtonLayout buttonLayout = androidx.ui.material.AlertDialogButtonLayout.SideBySide, androidx.ui.graphics.Shape shape = medium);
-    method public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit>? title = null, kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> buttons, androidx.ui.graphics.Shape shape = medium);
+    method @androidx.compose.Composable public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit>? title = null, kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> confirmButton, kotlin.jvm.functions.Function0<kotlin.Unit>? dismissButton = null, androidx.ui.material.AlertDialogButtonLayout buttonLayout = androidx.ui.material.AlertDialogButtonLayout.SideBySide, androidx.ui.graphics.Shape shape = medium);
+    method @androidx.compose.Composable public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit>? title = null, kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> buttons, androidx.ui.graphics.Shape shape = medium);
   }
 
   public final class AppBarKt {
-    method public static void BottomAppBar-GqrRtJg(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), androidx.ui.material.BottomAppBar.FabConfiguration? fabConfiguration = null, androidx.ui.graphics.Shape? cutoutShape = null, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
-    method public static void TopAppBar-FikZsjU(kotlin.jvm.functions.Function0<kotlin.Unit> title, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>? navigationIcon = null, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> actions = {}, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.AppBarKt.TopAppBarElevation);
-    method public static void TopAppBar-oP-1cd0(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.AppBarKt.TopAppBarElevation, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
+    method @androidx.compose.Composable public static void BottomAppBar-GqrRtJg(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), androidx.ui.material.BottomAppBar.FabConfiguration? fabConfiguration = null, androidx.ui.graphics.Shape? cutoutShape = null, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
+    method @androidx.compose.Composable public static void TopAppBar-FikZsjU(kotlin.jvm.functions.Function0<kotlin.Unit> title, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>? navigationIcon = null, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> actions = {}, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.AppBarKt.TopAppBarElevation);
+    method @androidx.compose.Composable public static void TopAppBar-oP-1cd0(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.AppBarKt.TopAppBarElevation, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
   }
 
   public final class BottomAppBar {
     field public static final androidx.ui.material.BottomAppBar! INSTANCE;
   }
 
-  public static final class BottomAppBar.FabConfiguration {
+  @androidx.compose.Immutable public static final class BottomAppBar.FabConfiguration {
     ctor public BottomAppBar.FabConfiguration(internal androidx.ui.unit.IntPxSize fabSize, internal androidx.ui.unit.PxPosition fabTopLeftPosition, internal androidx.ui.material.BottomAppBar.FabDockedPosition fabDockedPosition);
-    method public androidx.ui.material.BottomAppBar.FabConfiguration copy(androidx.ui.unit.IntPxSize fabSize, androidx.ui.unit.PxPosition fabTopLeftPosition, androidx.ui.material.BottomAppBar.FabDockedPosition fabDockedPosition);
+    method @androidx.compose.Immutable public androidx.ui.material.BottomAppBar.FabConfiguration copy(androidx.ui.unit.IntPxSize fabSize, androidx.ui.unit.PxPosition fabTopLeftPosition, androidx.ui.material.BottomAppBar.FabDockedPosition fabDockedPosition);
   }
 
   public enum BottomAppBar.FabDockedPosition {
@@ -32,8 +32,8 @@
   }
 
   public final class BottomNavigationKt {
-    method public static void BottomNavigation-oP-1cd0(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.BottomNavigationKt.BottomNavigationElevation, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
-    method public static void BottomNavigationItem-dOPBtLY(kotlin.jvm.functions.Function0<kotlin.Unit> icon, kotlin.jvm.functions.Function0<kotlin.Unit> text = emptyContent(), boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, boolean alwaysShowLabels = true, long activeColor = contentColor(), long inactiveColor = EmphasisAmbient.current.medium.applyEmphasis(activeColor));
+    method @androidx.compose.Composable public static void BottomNavigation-oP-1cd0(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.BottomNavigationKt.BottomNavigationElevation, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
+    method @androidx.compose.Composable public static void BottomNavigationItem-dOPBtLY(kotlin.jvm.functions.Function0<kotlin.Unit> icon, kotlin.jvm.functions.Function0<kotlin.Unit> text = emptyContent(), boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, boolean alwaysShowLabels = true, long activeColor = contentColor(), long inactiveColor = EmphasisAmbient.current.medium.applyEmphasis(activeColor));
   }
 
   public final class Button {
@@ -47,22 +47,22 @@
   }
 
   public final class ButtonKt {
-    method public static void Button-YWYas6U(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 2.dp, float disabledElevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = null, long backgroundColor = MaterialTheme.colors.primary, long disabledBackgroundColor = Button.defaultDisabledBackgroundColor, long contentColor = contentColorFor(backgroundColor), long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = Button.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
-    method public static inline void OutlinedButton-5tjLhF8(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = Border(1.dp, MaterialTheme.colors.onSurface.copy(OutlinedStrokeOpacity)), long backgroundColor = MaterialTheme.colors.surface, long contentColor = contentColorFor(backgroundColor), long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = Button.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
-    method public static inline void TextButton-5tjLhF8(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = null, long backgroundColor = Color.Transparent, long contentColor = MaterialTheme.colors.primary, long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = TextButton.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
+    method @androidx.compose.Composable public static void Button-YWYas6U(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 2.dp, float disabledElevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = null, long backgroundColor = MaterialTheme.colors.primary, long disabledBackgroundColor = Button.defaultDisabledBackgroundColor, long contentColor = contentColorFor(backgroundColor), long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = Button.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
+    method @androidx.compose.Composable public static inline void OutlinedButton-5tjLhF8(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = Border(1.dp, MaterialTheme.colors.onSurface.copy(OutlinedStrokeOpacity)), long backgroundColor = MaterialTheme.colors.surface, long contentColor = contentColorFor(backgroundColor), long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = Button.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
+    method @androidx.compose.Composable public static inline void TextButton-5tjLhF8(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = null, long backgroundColor = Color.Transparent, long contentColor = MaterialTheme.colors.primary, long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = TextButton.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
   }
 
   public final class CardKt {
-    method public static void Card-r7cpYJI(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = medium, long color = MaterialTheme.colors.surface, long contentColor = contentColorFor(color), androidx.ui.foundation.Border? border = null, float elevation = 1.dp, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void Card-r7cpYJI(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = medium, long color = MaterialTheme.colors.surface, long contentColor = contentColorFor(color), androidx.ui.foundation.Border? border = null, float elevation = 1.dp, kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
   public final class CheckboxKt {
-    method public static void Checkbox-D4zOgQA(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
-    method public static void TriStateCheckbox--Buf9SY(androidx.ui.foundation.selection.ToggleableState state, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
+    method @androidx.compose.Composable public static void Checkbox-D4zOgQA(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
+    method @androidx.compose.Composable public static void TriStateCheckbox--Buf9SY(androidx.ui.foundation.selection.ToggleableState state, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
   }
 
   public final class ColorKt {
-    method public static long contentColorFor-QEYXlZo(long color);
+    method @androidx.compose.Composable public static long contentColorFor-QEYXlZo(long color);
     method public static long contentColorFor-ZITCLTE(androidx.ui.material.ColorPalette, long color);
     method public static androidx.ui.material.ColorPalette darkColorPalette-bz757pg(long primary = Color(4290479868), long primaryVariant = Color(4281794739), long secondary = Color(4278442694), long background = Color(4279374354), long surface = Color(4279374354), long error = Color(4291782265), long  long  long  long  long >
     method public static androidx.ui.material.ColorPalette lightColorPalette-eO6A0Mk(long primary = Color(4284612846), long primaryVariant = Color(4281794739), long secondary = Color(4278442694), long secondaryVariant = Color(4278290310), long background = Color.White, long surface = Color.White, long error = Color(4289724448), long  long  long  long  long >
@@ -98,7 +98,7 @@
   }
 
   public final class DividerKt {
-    method public static void Divider-5sN9_mQ(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.onSurface.copy(DividerAlpha), float thickness = 1.dp, float startIndent = 0.dp);
+    method @androidx.compose.Composable public static void Divider-5sN9_mQ(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.onSurface.copy(DividerAlpha), float thickness = 1.dp, float startIndent = 0.dp);
   }
 
   public final class DrawerConstants {
@@ -108,8 +108,8 @@
   }
 
   public final class DrawerKt {
-    method public static void BottomDrawerLayout-s-rmCOo(androidx.ui.material.DrawerState drawerState, kotlin.jvm.functions.Function1<? super androidx.ui.material.DrawerState,kotlin.Unit> onStateChange, boolean gesturesEnabled = true, androidx.ui.graphics.Shape drawerShape = large, float drawerElevation = DrawerConstants.DefaultElevation, kotlin.jvm.functions.Function0<kotlin.Unit> drawerContent, kotlin.jvm.functions.Function0<kotlin.Unit> bodyContent);
-    method public static void ModalDrawerLayout-s-rmCOo(androidx.ui.material.DrawerState drawerState, kotlin.jvm.functions.Function1<? super androidx.ui.material.DrawerState,kotlin.Unit> onStateChange, boolean gesturesEnabled = true, androidx.ui.graphics.Shape drawerShape = large, float drawerElevation = DrawerConstants.DefaultElevation, kotlin.jvm.functions.Function0<kotlin.Unit> drawerContent, kotlin.jvm.functions.Function0<kotlin.Unit> bodyContent);
+    method @androidx.compose.Composable public static void BottomDrawerLayout-s-rmCOo(androidx.ui.material.DrawerState drawerState, kotlin.jvm.functions.Function1<? super androidx.ui.material.DrawerState,kotlin.Unit> onStateChange, boolean gesturesEnabled = true, androidx.ui.graphics.Shape drawerShape = large, float drawerElevation = DrawerConstants.DefaultElevation, kotlin.jvm.functions.Function0<kotlin.Unit> drawerContent, kotlin.jvm.functions.Function0<kotlin.Unit> bodyContent);
+    method @androidx.compose.Composable public static void ModalDrawerLayout-s-rmCOo(androidx.ui.material.DrawerState drawerState, kotlin.jvm.functions.Function1<? super androidx.ui.material.DrawerState,kotlin.Unit> onStateChange, boolean gesturesEnabled = true, androidx.ui.graphics.Shape drawerShape = large, float drawerElevation = DrawerConstants.DefaultElevation, kotlin.jvm.functions.Function0<kotlin.Unit> drawerContent, kotlin.jvm.functions.Function0<kotlin.Unit> bodyContent);
   }
 
   public enum DrawerState {
@@ -117,12 +117,12 @@
     enum_constant public static final androidx.ui.material.DrawerState Opened;
   }
 
-  public interface Emphasis {
+  @androidx.compose.Immutable public interface Emphasis {
     method public long applyEmphasis-QEYXlZo(long color);
   }
 
   public final class EmphasisKt {
-    method public static void ProvideEmphasis(androidx.ui.material.Emphasis emphasis, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void ProvideEmphasis(androidx.ui.material.Emphasis emphasis, kotlin.jvm.functions.Function0<kotlin.Unit> content);
     method public static androidx.compose.Ambient<androidx.ui.material.EmphasisLevels> getEmphasisAmbient();
   }
 
@@ -136,18 +136,18 @@
   }
 
   public final class FloatingActionButtonKt {
-    method public static void ExtendedFloatingActionButton-r9QhOOE(kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>? icon = null, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(CornerSize(50)), long backgroundColor = MaterialTheme.colors.secondary, long contentColor = contentColorFor(backgroundColor), float elevation = 6.dp);
-    method public static void FloatingActionButton-rf6Y9PE(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(CornerSize(50)), long backgroundColor = MaterialTheme.colors.secondary, long contentColor = contentColorFor(backgroundColor), float elevation = 6.dp, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
+    method @androidx.compose.Composable public static void ExtendedFloatingActionButton-r9QhOOE(kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>? icon = null, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(CornerSize(50)), long backgroundColor = MaterialTheme.colors.secondary, long contentColor = contentColorFor(backgroundColor), float elevation = 6.dp);
+    method @androidx.compose.Composable public static void FloatingActionButton-rf6Y9PE(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(CornerSize(50)), long backgroundColor = MaterialTheme.colors.secondary, long contentColor = contentColorFor(backgroundColor), float elevation = 6.dp, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
   }
 
   public final class IconButtonKt {
-    method public static void IconButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
-    method public static void IconToggleButton(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
+    method @androidx.compose.Composable public static void IconButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
+    method @androidx.compose.Composable public static void IconToggleButton(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
   }
 
   public final class ListItemKt {
-    method public static void ListItem(String text, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.ImageAsset? icon = null, String? secondaryText = null, boolean singleLineSecondaryText = true, String? overlineText = null, String? metaText = null);
-    method public static void ListItem(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>? icon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? secondaryText = null, boolean singleLineSecondaryText = true, kotlin.jvm.functions.Function0<kotlin.Unit>? overlineText = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailing = null, kotlin.jvm.functions.Function0<kotlin.Unit> text);
+    method @androidx.compose.Composable public static void ListItem(String text, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.ImageAsset? icon = null, String? secondaryText = null, boolean singleLineSecondaryText = true, String? overlineText = null, String? metaText = null);
+    method @androidx.compose.Composable public static void ListItem(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>? icon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? secondaryText = null, boolean singleLineSecondaryText = true, kotlin.jvm.functions.Function0<kotlin.Unit>? overlineText = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailing = null, kotlin.jvm.functions.Function0<kotlin.Unit> text);
   }
 
   public final class MaterialTheme {
@@ -161,12 +161,12 @@
   }
 
   public final class MaterialThemeKt {
-    method public static void MaterialTheme(androidx.ui.material.ColorPalette colors = MaterialTheme.colors, androidx.ui.material.Typography typography = MaterialTheme.typography, androidx.ui.material.Shapes shapes = MaterialTheme.shapes, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void MaterialTheme(androidx.ui.material.ColorPalette colors = MaterialTheme.colors, androidx.ui.material.Typography typography = MaterialTheme.typography, androidx.ui.material.Shapes shapes = MaterialTheme.shapes, kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
   public final class MenuKt {
-    method public static void DropdownMenu-1DTJxuk(kotlin.jvm.functions.Function0<kotlin.Unit> toggle, boolean expanded, kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, androidx.ui.core.Modifier toggleModifier = Modifier, long dropdownOffset = Position(0.dp, 0.dp), androidx.ui.core.Modifier dropdownModifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> dropdownContent);
-    method public static void DropdownMenuItem(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void DropdownMenu-1DTJxuk(kotlin.jvm.functions.Function0<kotlin.Unit> toggle, boolean expanded, kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, androidx.ui.core.Modifier toggleModifier = Modifier, long dropdownOffset = Position(0.dp, 0.dp), androidx.ui.core.Modifier dropdownModifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> dropdownContent);
+    method @androidx.compose.Composable public static void DropdownMenuItem(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
   public final class ProgressIndicatorConstants {
@@ -176,21 +176,21 @@
   }
 
   public final class ProgressIndicatorKt {
-    method public static void CircularProgressIndicator-EMuwvL0(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary, float strokeWidth = ProgressIndicatorConstants.DefaultStrokeWidth);
-    method public static void CircularProgressIndicator-it0oM4E(@FloatRange(from=0.0, to=1.0) float progress, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary, float strokeWidth = ProgressIndicatorConstants.DefaultStrokeWidth);
-    method public static void LinearProgressIndicator-e8O-MNM(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary);
-    method public static void LinearProgressIndicator-kB8eKMs(@FloatRange(from=0.0, to=1.0) float progress, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary);
+    method @androidx.compose.Composable public static void CircularProgressIndicator-EMuwvL0(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary, float strokeWidth = ProgressIndicatorConstants.DefaultStrokeWidth);
+    method @androidx.compose.Composable public static void CircularProgressIndicator-it0oM4E(@FloatRange(from=0.0, to=1.0) float progress, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary, float strokeWidth = ProgressIndicatorConstants.DefaultStrokeWidth);
+    method @androidx.compose.Composable public static void LinearProgressIndicator-e8O-MNM(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary);
+    method @androidx.compose.Composable public static void LinearProgressIndicator-kB8eKMs(@FloatRange(from=0.0, to=1.0) float progress, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary);
   }
 
   public final class RadioButtonKt {
-    method public static void RadioButton-HeBYgfA(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit>? onSelect, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
-    method public static void RadioGroup(kotlin.jvm.functions.Function1<? super androidx.ui.material.RadioGroupScope,kotlin.Unit> content);
-    method public static void RadioGroup-HJ2D5H4(java.util.List<java.lang.String> options, String? selectedOption, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onSelectedChange, androidx.ui.core.Modifier modifier = Modifier, long radioColor = MaterialTheme.colors.secondary, androidx.ui.text.TextStyle? textStyle = null);
+    method @androidx.compose.Composable public static void RadioButton-HeBYgfA(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit>? onSelect, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
+    method @androidx.compose.Composable public static void RadioGroup(kotlin.jvm.functions.Function1<? super androidx.ui.material.RadioGroupScope,kotlin.Unit> content);
+    method @androidx.compose.Composable public static void RadioGroup-HJ2D5H4(java.util.List<java.lang.String> options, String? selectedOption, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onSelectedChange, androidx.ui.core.Modifier modifier = Modifier, long radioColor = MaterialTheme.colors.secondary, androidx.ui.text.TextStyle? textStyle = null);
   }
 
-  public final class RadioGroupScope {
-    method public void RadioGroupItem(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelect, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method public void RadioGroupTextItem-JJAyy3w(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelect, String text, androidx.ui.core.Modifier modifier = Modifier, long radioColor = MaterialTheme.colors.secondary, androidx.ui.text.TextStyle? textStyle = null);
+  @androidx.compose.Stable public final class RadioGroupScope {
+    method @androidx.compose.Composable public void RadioGroupItem(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelect, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public void RadioGroupTextItem-JJAyy3w(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelect, String text, androidx.ui.core.Modifier modifier = Modifier, long radioColor = MaterialTheme.colors.secondary, androidx.ui.text.TextStyle? textStyle = null);
   }
 
   public final class Scaffold {
@@ -205,12 +205,12 @@
   }
 
   public final class ScaffoldKt {
-    method public static void Scaffold(androidx.ui.material.ScaffoldState scaffoldState = remember({ 
+    method @androidx.compose.Composable public static void Scaffold(androidx.ui.material.ScaffoldState scaffoldState = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function0<kotlin.Unit>? topAppBar = null, kotlin.jvm.functions.Function1<? super androidx.ui.material.BottomAppBar.FabConfiguration,kotlin.Unit>? bottomAppBar = null, kotlin.jvm.functions.Function0<kotlin.Unit>? floatingActionButton = null, androidx.ui.material.Scaffold.FabPosition floatingActionButtonPosition = androidx.ui.material.Scaffold.FabPosition.End, kotlin.jvm.functions.Function0<kotlin.Unit>? drawerContent = null, kotlin.jvm.functions.Function1<? super androidx.ui.core.Modifier,kotlin.Unit> bodyContent);
   }
 
-  public final class ScaffoldState {
+  @androidx.compose.Stable public final class ScaffoldState {
     ctor public ScaffoldState(androidx.ui.material.DrawerState drawerState, boolean isDrawerGesturesEnabled);
     ctor public ScaffoldState();
     method public androidx.ui.material.DrawerState getDrawerState();
@@ -237,34 +237,34 @@
   }
 
   public final class SliderKt {
-    method public static void Slider-NGIokMc(float value, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onValueChange, androidx.ui.core.Modifier modifier = Modifier, kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange = 0.0 .. 1.0, @IntRange(from=0) int steps = 0, kotlin.jvm.functions.Function0<kotlin.Unit>  long color = MaterialTheme.colors.primary);
+    method @androidx.compose.Composable public static void Slider-NGIokMc(float value, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onValueChange, androidx.ui.core.Modifier modifier = Modifier, kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange = 0.0 .. 1.0, @IntRange(from=0) int steps = 0, kotlin.jvm.functions.Function0<kotlin.Unit>  long color = MaterialTheme.colors.primary);
   }
 
   public final class SnackbarKt {
-    method public static void Snackbar-bRoLwi0(kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit>? action = null, androidx.ui.core.Modifier modifier = Modifier, boolean actionOnNewLine = false, androidx.ui.graphics.Shape shape = small, float elevation = 6.dp);
+    method @androidx.compose.Composable public static void Snackbar-bRoLwi0(kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit>? action = null, androidx.ui.core.Modifier modifier = Modifier, boolean actionOnNewLine = false, androidx.ui.graphics.Shape shape = small, float elevation = 6.dp);
     method public static long snackbarPrimaryColorFor(androidx.ui.material.ColorPalette colors);
   }
 
   public final class SurfaceKt {
-    method public static void Surface-r7cpYJI(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, long color = MaterialTheme.colors.surface, long contentColor = contentColorFor(color), androidx.ui.foundation.Border? border = null, float elevation = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void Surface-r7cpYJI(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, long color = MaterialTheme.colors.surface, long contentColor = contentColorFor(color), androidx.ui.foundation.Border? border = null, float elevation = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> content);
     method public static long getPrimarySurface(androidx.ui.material.ColorPalette);
   }
 
   public final class SwitchKt {
-    method public static void Switch-Ym7EGpc(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, long color = MaterialTheme.colors.secondaryVariant);
+    method @androidx.compose.Composable public static void Switch-Ym7EGpc(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, long color = MaterialTheme.colors.secondaryVariant);
   }
 
   public final class TabKt {
-    method public static void Tab(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method public static void Tab-5SZ958c(kotlin.jvm.functions.Function0<kotlin.Unit> text = emptyContent(), kotlin.jvm.functions.Function0<kotlin.Unit> icon = emptyContent(), boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, long activeColor = contentColor(), long inactiveColor = EmphasisAmbient.current.medium.applyEmphasis(activeColor));
-    method public static <T> void TabRow-nOWMzd0(java.util.List<? extends T> items, int selectedIndex, androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), boolean scrollable = false, kotlin.jvm.functions.Function1<? super java.util.List<androidx.ui.material.TabRow.TabPosition>,kotlin.Unit> indicatorContainer = { tabPositions -> TabRow.IndicatorContainer(tabPositions, selectedIndex, { 
+    method @androidx.compose.Composable public static void Tab(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void Tab-5SZ958c(kotlin.jvm.functions.Function0<kotlin.Unit> text = emptyContent(), kotlin.jvm.functions.Function0<kotlin.Unit> icon = emptyContent(), boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, long activeColor = contentColor(), long inactiveColor = EmphasisAmbient.current.medium.applyEmphasis(activeColor));
+    method @androidx.compose.Composable public static <T> void TabRow-nOWMzd0(java.util.List<? extends T> items, int selectedIndex, androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), boolean scrollable = false, kotlin.jvm.functions.Function1<? super java.util.List<androidx.ui.material.TabRow.TabPosition>,kotlin.Unit> indicatorContainer = { tabPositions -> TabRow.IndicatorContainer(tabPositions, selectedIndex, { 
     TabRow.Indicator()
 }) }, kotlin.jvm.functions.Function0<kotlin.Unit> divider = { Divider(1.dp, contentColor().copy(DividerOpacity)) }, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super T,kotlin.Unit> tab);
   }
 
   public final class TabRow {
-    method public void Indicator-e8O-MNM(androidx.ui.core.Modifier modifier = Modifier, long color = contentColor());
-    method public void IndicatorContainer(java.util.List<androidx.ui.material.TabRow.TabPosition> tabPositions, int selectedIndex, kotlin.jvm.functions.Function0<kotlin.Unit> indicator);
+    method @androidx.compose.Composable public void Indicator-e8O-MNM(androidx.ui.core.Modifier modifier = Modifier, long color = contentColor());
+    method @androidx.compose.Composable public void IndicatorContainer(java.util.List<androidx.ui.material.TabRow.TabPosition> tabPositions, int selectedIndex, kotlin.jvm.functions.Function0<kotlin.Unit> indicator);
     field public static final androidx.ui.material.TabRow! INSTANCE;
   }
 
@@ -285,11 +285,11 @@
   }
 
   public final class TextFieldKt {
-    method public static void FilledTextField-o4GafH0(String value, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onValueChange, kotlin.jvm.functions.Function0<kotlin.Unit> label, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle textStyle = currentTextStyle(), kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder = null, kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon = null, boolean isErrorValue = false, androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function2<? super androidx.ui.input.ImeAction,? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  _, _ ->  }, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long activeColor = MaterialTheme.colors.primary, long inactiveColor = MaterialTheme.colors.onSurface, long errorColor = MaterialTheme.colors.error, long backgroundColor = MaterialTheme.colors.onSurface, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(ZeroCornerSize, ZeroCornerSize));
-    method public static void FilledTextField-u5y5QhY(androidx.ui.foundation.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.ui.foundation.TextFieldValue,kotlin.Unit> onValueChange, kotlin.jvm.functions.Function0<kotlin.Unit> label, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle textStyle = currentTextStyle(), kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder = null, kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon = null, boolean isErrorValue = false, androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function2<? super androidx.ui.input.ImeAction,? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  _, _ ->  }, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long activeColor = MaterialTheme.colors.primary, long inactiveColor = MaterialTheme.colors.onSurface, long errorColor = MaterialTheme.colors.error, long backgroundColor = MaterialTheme.colors.onSurface, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(ZeroCornerSize, ZeroCornerSize));
+    method @androidx.compose.Composable public static void FilledTextField-o4GafH0(String value, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onValueChange, kotlin.jvm.functions.Function0<kotlin.Unit> label, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle textStyle = currentTextStyle(), kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder = null, kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon = null, boolean isErrorValue = false, androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function2<? super androidx.ui.input.ImeAction,? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  _, _ ->  }, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long activeColor = MaterialTheme.colors.primary, long inactiveColor = MaterialTheme.colors.onSurface, long errorColor = MaterialTheme.colors.error, long backgroundColor = MaterialTheme.colors.onSurface, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(ZeroCornerSize, ZeroCornerSize));
+    method @androidx.compose.Composable public static void FilledTextField-u5y5QhY(androidx.ui.foundation.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.ui.foundation.TextFieldValue,kotlin.Unit> onValueChange, kotlin.jvm.functions.Function0<kotlin.Unit> label, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle textStyle = currentTextStyle(), kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder = null, kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon = null, boolean isErrorValue = false, androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function2<? super androidx.ui.input.ImeAction,? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  _, _ ->  }, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long activeColor = MaterialTheme.colors.primary, long inactiveColor = MaterialTheme.colors.onSurface, long errorColor = MaterialTheme.colors.error, long backgroundColor = MaterialTheme.colors.onSurface, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(ZeroCornerSize, ZeroCornerSize));
   }
 
-  public final class Typography {
+  @androidx.compose.Immutable public final class Typography {
     ctor public Typography(androidx.ui.text.font.FontFamily defaultFontFamily, androidx.ui.text.TextStyle h1, androidx.ui.text.TextStyle h2, androidx.ui.text.TextStyle h3, androidx.ui.text.TextStyle h4, androidx.ui.text.TextStyle h5, androidx.ui.text.TextStyle h6, androidx.ui.text.TextStyle subtitle1, androidx.ui.text.TextStyle subtitle2, androidx.ui.text.TextStyle body1, androidx.ui.text.TextStyle body2, androidx.ui.text.TextStyle button, androidx.ui.text.TextStyle caption, androidx.ui.text.TextStyle overline);
     method public androidx.ui.text.TextStyle component1();
     method public androidx.ui.text.TextStyle component10();
@@ -304,7 +304,7 @@
     method public androidx.ui.text.TextStyle component7();
     method public androidx.ui.text.TextStyle component8();
     method public androidx.ui.text.TextStyle component9();
-    method public androidx.ui.material.Typography copy(androidx.ui.text.TextStyle h1, androidx.ui.text.TextStyle h2, androidx.ui.text.TextStyle h3, androidx.ui.text.TextStyle h4, androidx.ui.text.TextStyle h5, androidx.ui.text.TextStyle h6, androidx.ui.text.TextStyle subtitle1, androidx.ui.text.TextStyle subtitle2, androidx.ui.text.TextStyle body1, androidx.ui.text.TextStyle body2, androidx.ui.text.TextStyle button, androidx.ui.text.TextStyle caption, androidx.ui.text.TextStyle overline);
+    method @androidx.compose.Immutable public androidx.ui.material.Typography copy(androidx.ui.text.TextStyle h1, androidx.ui.text.TextStyle h2, androidx.ui.text.TextStyle h3, androidx.ui.text.TextStyle h4, androidx.ui.text.TextStyle h5, androidx.ui.text.TextStyle h6, androidx.ui.text.TextStyle subtitle1, androidx.ui.text.TextStyle subtitle2, androidx.ui.text.TextStyle body1, androidx.ui.text.TextStyle body2, androidx.ui.text.TextStyle button, androidx.ui.text.TextStyle caption, androidx.ui.text.TextStyle overline);
     method public androidx.ui.text.TextStyle getBody1();
     method public androidx.ui.text.TextStyle getBody2();
     method public androidx.ui.text.TextStyle getButton();
@@ -357,7 +357,7 @@
   }
 
   public final class RippleIndicationKt {
-    method public static androidx.ui.material.ripple.RippleIndication RippleIndication-XC6LiZk(boolean bounded = true, androidx.ui.unit.Dp? radius = null, long color = Color.Unset);
+    method @androidx.compose.Composable public static androidx.ui.material.ripple.RippleIndication RippleIndication-XC6LiZk(boolean bounded = true, androidx.ui.unit.Dp? radius = null, long color = Color.Unset);
   }
 
   public final class RippleKt {
diff --git a/ui/ui-material/api/public_plus_experimental_current.txt b/ui/ui-material/api/public_plus_experimental_current.txt
index 8516bbd..0821452 100644
--- a/ui/ui-material/api/public_plus_experimental_current.txt
+++ b/ui/ui-material/api/public_plus_experimental_current.txt
@@ -7,23 +7,23 @@
   }
 
   public final class AlertDialogKt {
-    method public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit>? title = null, kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> confirmButton, kotlin.jvm.functions.Function0<kotlin.Unit>? dismissButton = null, androidx.ui.material.AlertDialogButtonLayout buttonLayout = androidx.ui.material.AlertDialogButtonLayout.SideBySide, androidx.ui.graphics.Shape shape = medium);
-    method public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit>? title = null, kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> buttons, androidx.ui.graphics.Shape shape = medium);
+    method @androidx.compose.Composable public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit>? title = null, kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> confirmButton, kotlin.jvm.functions.Function0<kotlin.Unit>? dismissButton = null, androidx.ui.material.AlertDialogButtonLayout buttonLayout = androidx.ui.material.AlertDialogButtonLayout.SideBySide, androidx.ui.graphics.Shape shape = medium);
+    method @androidx.compose.Composable public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit>? title = null, kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> buttons, androidx.ui.graphics.Shape shape = medium);
   }
 
   public final class AppBarKt {
-    method public static void BottomAppBar-GqrRtJg(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), androidx.ui.material.BottomAppBar.FabConfiguration? fabConfiguration = null, androidx.ui.graphics.Shape? cutoutShape = null, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
-    method public static void TopAppBar-FikZsjU(kotlin.jvm.functions.Function0<kotlin.Unit> title, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>? navigationIcon = null, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> actions = {}, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.AppBarKt.TopAppBarElevation);
-    method public static void TopAppBar-oP-1cd0(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.AppBarKt.TopAppBarElevation, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
+    method @androidx.compose.Composable public static void BottomAppBar-GqrRtJg(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), androidx.ui.material.BottomAppBar.FabConfiguration? fabConfiguration = null, androidx.ui.graphics.Shape? cutoutShape = null, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
+    method @androidx.compose.Composable public static void TopAppBar-FikZsjU(kotlin.jvm.functions.Function0<kotlin.Unit> title, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>? navigationIcon = null, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> actions = {}, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.AppBarKt.TopAppBarElevation);
+    method @androidx.compose.Composable public static void TopAppBar-oP-1cd0(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.AppBarKt.TopAppBarElevation, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
   }
 
   public final class BottomAppBar {
     field public static final androidx.ui.material.BottomAppBar! INSTANCE;
   }
 
-  public static final class BottomAppBar.FabConfiguration {
+  @androidx.compose.Immutable public static final class BottomAppBar.FabConfiguration {
     ctor public BottomAppBar.FabConfiguration(internal androidx.ui.unit.IntPxSize fabSize, internal androidx.ui.unit.PxPosition fabTopLeftPosition, internal androidx.ui.material.BottomAppBar.FabDockedPosition fabDockedPosition);
-    method public androidx.ui.material.BottomAppBar.FabConfiguration copy(androidx.ui.unit.IntPxSize fabSize, androidx.ui.unit.PxPosition fabTopLeftPosition, androidx.ui.material.BottomAppBar.FabDockedPosition fabDockedPosition);
+    method @androidx.compose.Immutable public androidx.ui.material.BottomAppBar.FabConfiguration copy(androidx.ui.unit.IntPxSize fabSize, androidx.ui.unit.PxPosition fabTopLeftPosition, androidx.ui.material.BottomAppBar.FabDockedPosition fabDockedPosition);
   }
 
   public enum BottomAppBar.FabDockedPosition {
@@ -32,8 +32,8 @@
   }
 
   public final class BottomNavigationKt {
-    method public static void BottomNavigation-oP-1cd0(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.BottomNavigationKt.BottomNavigationElevation, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
-    method public static void BottomNavigationItem-dOPBtLY(kotlin.jvm.functions.Function0<kotlin.Unit> icon, kotlin.jvm.functions.Function0<kotlin.Unit> text = emptyContent(), boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, boolean alwaysShowLabels = true, long activeColor = contentColor(), long inactiveColor = EmphasisAmbient.current.medium.applyEmphasis(activeColor));
+    method @androidx.compose.Composable public static void BottomNavigation-oP-1cd0(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.BottomNavigationKt.BottomNavigationElevation, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
+    method @androidx.compose.Composable public static void BottomNavigationItem-dOPBtLY(kotlin.jvm.functions.Function0<kotlin.Unit> icon, kotlin.jvm.functions.Function0<kotlin.Unit> text = emptyContent(), boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, boolean alwaysShowLabels = true, long activeColor = contentColor(), long inactiveColor = EmphasisAmbient.current.medium.applyEmphasis(activeColor));
   }
 
   public final class Button {
@@ -47,22 +47,22 @@
   }
 
   public final class ButtonKt {
-    method public static void Button-YWYas6U(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 2.dp, float disabledElevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = null, long backgroundColor = MaterialTheme.colors.primary, long disabledBackgroundColor = Button.defaultDisabledBackgroundColor, long contentColor = contentColorFor(backgroundColor), long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = Button.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
-    method public static inline void OutlinedButton-5tjLhF8(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = Border(1.dp, MaterialTheme.colors.onSurface.copy(OutlinedStrokeOpacity)), long backgroundColor = MaterialTheme.colors.surface, long contentColor = contentColorFor(backgroundColor), long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = Button.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
-    method public static inline void TextButton-5tjLhF8(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = null, long backgroundColor = Color.Transparent, long contentColor = MaterialTheme.colors.primary, long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = TextButton.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
+    method @androidx.compose.Composable public static void Button-YWYas6U(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 2.dp, float disabledElevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = null, long backgroundColor = MaterialTheme.colors.primary, long disabledBackgroundColor = Button.defaultDisabledBackgroundColor, long contentColor = contentColorFor(backgroundColor), long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = Button.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
+    method @androidx.compose.Composable public static inline void OutlinedButton-5tjLhF8(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = Border(1.dp, MaterialTheme.colors.onSurface.copy(OutlinedStrokeOpacity)), long backgroundColor = MaterialTheme.colors.surface, long contentColor = contentColorFor(backgroundColor), long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = Button.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
+    method @androidx.compose.Composable public static inline void TextButton-5tjLhF8(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = null, long backgroundColor = Color.Transparent, long contentColor = MaterialTheme.colors.primary, long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = TextButton.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
   }
 
   public final class CardKt {
-    method public static void Card-r7cpYJI(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = medium, long color = MaterialTheme.colors.surface, long contentColor = contentColorFor(color), androidx.ui.foundation.Border? border = null, float elevation = 1.dp, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void Card-r7cpYJI(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = medium, long color = MaterialTheme.colors.surface, long contentColor = contentColorFor(color), androidx.ui.foundation.Border? border = null, float elevation = 1.dp, kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
   public final class CheckboxKt {
-    method public static void Checkbox-D4zOgQA(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
-    method public static void TriStateCheckbox--Buf9SY(androidx.ui.foundation.selection.ToggleableState state, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
+    method @androidx.compose.Composable public static void Checkbox-D4zOgQA(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
+    method @androidx.compose.Composable public static void TriStateCheckbox--Buf9SY(androidx.ui.foundation.selection.ToggleableState state, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
   }
 
   public final class ColorKt {
-    method public static long contentColorFor-QEYXlZo(long color);
+    method @androidx.compose.Composable public static long contentColorFor-QEYXlZo(long color);
     method public static long contentColorFor-ZITCLTE(androidx.ui.material.ColorPalette, long color);
     method public static androidx.ui.material.ColorPalette darkColorPalette-bz757pg(long primary = Color(4290479868), long primaryVariant = Color(4281794739), long secondary = Color(4278442694), long background = Color(4279374354), long surface = Color(4279374354), long error = Color(4291782265), long  long  long  long  long >
     method public static androidx.ui.material.ColorPalette lightColorPalette-eO6A0Mk(long primary = Color(4284612846), long primaryVariant = Color(4281794739), long secondary = Color(4278442694), long secondaryVariant = Color(4278290310), long background = Color.White, long surface = Color.White, long error = Color(4289724448), long  long  long  long  long >
@@ -98,7 +98,7 @@
   }
 
   public final class DividerKt {
-    method public static void Divider-5sN9_mQ(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.onSurface.copy(DividerAlpha), float thickness = 1.dp, float startIndent = 0.dp);
+    method @androidx.compose.Composable public static void Divider-5sN9_mQ(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.onSurface.copy(DividerAlpha), float thickness = 1.dp, float startIndent = 0.dp);
   }
 
   public final class DrawerConstants {
@@ -108,8 +108,8 @@
   }
 
   public final class DrawerKt {
-    method public static void BottomDrawerLayout-s-rmCOo(androidx.ui.material.DrawerState drawerState, kotlin.jvm.functions.Function1<? super androidx.ui.material.DrawerState,kotlin.Unit> onStateChange, boolean gesturesEnabled = true, androidx.ui.graphics.Shape drawerShape = large, float drawerElevation = DrawerConstants.DefaultElevation, kotlin.jvm.functions.Function0<kotlin.Unit> drawerContent, kotlin.jvm.functions.Function0<kotlin.Unit> bodyContent);
-    method public static void ModalDrawerLayout-s-rmCOo(androidx.ui.material.DrawerState drawerState, kotlin.jvm.functions.Function1<? super androidx.ui.material.DrawerState,kotlin.Unit> onStateChange, boolean gesturesEnabled = true, androidx.ui.graphics.Shape drawerShape = large, float drawerElevation = DrawerConstants.DefaultElevation, kotlin.jvm.functions.Function0<kotlin.Unit> drawerContent, kotlin.jvm.functions.Function0<kotlin.Unit> bodyContent);
+    method @androidx.compose.Composable public static void BottomDrawerLayout-s-rmCOo(androidx.ui.material.DrawerState drawerState, kotlin.jvm.functions.Function1<? super androidx.ui.material.DrawerState,kotlin.Unit> onStateChange, boolean gesturesEnabled = true, androidx.ui.graphics.Shape drawerShape = large, float drawerElevation = DrawerConstants.DefaultElevation, kotlin.jvm.functions.Function0<kotlin.Unit> drawerContent, kotlin.jvm.functions.Function0<kotlin.Unit> bodyContent);
+    method @androidx.compose.Composable public static void ModalDrawerLayout-s-rmCOo(androidx.ui.material.DrawerState drawerState, kotlin.jvm.functions.Function1<? super androidx.ui.material.DrawerState,kotlin.Unit> onStateChange, boolean gesturesEnabled = true, androidx.ui.graphics.Shape drawerShape = large, float drawerElevation = DrawerConstants.DefaultElevation, kotlin.jvm.functions.Function0<kotlin.Unit> drawerContent, kotlin.jvm.functions.Function0<kotlin.Unit> bodyContent);
   }
 
   public enum DrawerState {
@@ -117,12 +117,12 @@
     enum_constant public static final androidx.ui.material.DrawerState Opened;
   }
 
-  public interface Emphasis {
+  @androidx.compose.Immutable public interface Emphasis {
     method public long applyEmphasis-QEYXlZo(long color);
   }
 
   public final class EmphasisKt {
-    method public static void ProvideEmphasis(androidx.ui.material.Emphasis emphasis, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void ProvideEmphasis(androidx.ui.material.Emphasis emphasis, kotlin.jvm.functions.Function0<kotlin.Unit> content);
     method public static androidx.compose.Ambient<androidx.ui.material.EmphasisLevels> getEmphasisAmbient();
   }
 
@@ -136,18 +136,18 @@
   }
 
   public final class FloatingActionButtonKt {
-    method public static void ExtendedFloatingActionButton-r9QhOOE(kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>? icon = null, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(CornerSize(50)), long backgroundColor = MaterialTheme.colors.secondary, long contentColor = contentColorFor(backgroundColor), float elevation = 6.dp);
-    method public static void FloatingActionButton-rf6Y9PE(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(CornerSize(50)), long backgroundColor = MaterialTheme.colors.secondary, long contentColor = contentColorFor(backgroundColor), float elevation = 6.dp, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
+    method @androidx.compose.Composable public static void ExtendedFloatingActionButton-r9QhOOE(kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>? icon = null, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(CornerSize(50)), long backgroundColor = MaterialTheme.colors.secondary, long contentColor = contentColorFor(backgroundColor), float elevation = 6.dp);
+    method @androidx.compose.Composable public static void FloatingActionButton-rf6Y9PE(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(CornerSize(50)), long backgroundColor = MaterialTheme.colors.secondary, long contentColor = contentColorFor(backgroundColor), float elevation = 6.dp, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
   }
 
   public final class IconButtonKt {
-    method public static void IconButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
-    method public static void IconToggleButton(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
+    method @androidx.compose.Composable public static void IconButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
+    method @androidx.compose.Composable public static void IconToggleButton(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
   }
 
   public final class ListItemKt {
-    method public static void ListItem(String text, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.ImageAsset? icon = null, String? secondaryText = null, boolean singleLineSecondaryText = true, String? overlineText = null, String? metaText = null);
-    method public static void ListItem(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>? icon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? secondaryText = null, boolean singleLineSecondaryText = true, kotlin.jvm.functions.Function0<kotlin.Unit>? overlineText = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailing = null, kotlin.jvm.functions.Function0<kotlin.Unit> text);
+    method @androidx.compose.Composable public static void ListItem(String text, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.ImageAsset? icon = null, String? secondaryText = null, boolean singleLineSecondaryText = true, String? overlineText = null, String? metaText = null);
+    method @androidx.compose.Composable public static void ListItem(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>? icon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? secondaryText = null, boolean singleLineSecondaryText = true, kotlin.jvm.functions.Function0<kotlin.Unit>? overlineText = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailing = null, kotlin.jvm.functions.Function0<kotlin.Unit> text);
   }
 
   public final class MaterialTheme {
@@ -161,12 +161,12 @@
   }
 
   public final class MaterialThemeKt {
-    method public static void MaterialTheme(androidx.ui.material.ColorPalette colors = MaterialTheme.colors, androidx.ui.material.Typography typography = MaterialTheme.typography, androidx.ui.material.Shapes shapes = MaterialTheme.shapes, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void MaterialTheme(androidx.ui.material.ColorPalette colors = MaterialTheme.colors, androidx.ui.material.Typography typography = MaterialTheme.typography, androidx.ui.material.Shapes shapes = MaterialTheme.shapes, kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
   public final class MenuKt {
-    method public static void DropdownMenu-1DTJxuk(kotlin.jvm.functions.Function0<kotlin.Unit> toggle, boolean expanded, kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, androidx.ui.core.Modifier toggleModifier = Modifier, long dropdownOffset = Position(0.dp, 0.dp), androidx.ui.core.Modifier dropdownModifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> dropdownContent);
-    method public static void DropdownMenuItem(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void DropdownMenu-1DTJxuk(kotlin.jvm.functions.Function0<kotlin.Unit> toggle, boolean expanded, kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, androidx.ui.core.Modifier toggleModifier = Modifier, long dropdownOffset = Position(0.dp, 0.dp), androidx.ui.core.Modifier dropdownModifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> dropdownContent);
+    method @androidx.compose.Composable public static void DropdownMenuItem(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
   public final class ProgressIndicatorConstants {
@@ -176,21 +176,21 @@
   }
 
   public final class ProgressIndicatorKt {
-    method public static void CircularProgressIndicator-EMuwvL0(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary, float strokeWidth = ProgressIndicatorConstants.DefaultStrokeWidth);
-    method public static void CircularProgressIndicator-it0oM4E(@FloatRange(from=0.0, to=1.0) float progress, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary, float strokeWidth = ProgressIndicatorConstants.DefaultStrokeWidth);
-    method public static void LinearProgressIndicator-e8O-MNM(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary);
-    method public static void LinearProgressIndicator-kB8eKMs(@FloatRange(from=0.0, to=1.0) float progress, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary);
+    method @androidx.compose.Composable public static void CircularProgressIndicator-EMuwvL0(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary, float strokeWidth = ProgressIndicatorConstants.DefaultStrokeWidth);
+    method @androidx.compose.Composable public static void CircularProgressIndicator-it0oM4E(@FloatRange(from=0.0, to=1.0) float progress, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary, float strokeWidth = ProgressIndicatorConstants.DefaultStrokeWidth);
+    method @androidx.compose.Composable public static void LinearProgressIndicator-e8O-MNM(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary);
+    method @androidx.compose.Composable public static void LinearProgressIndicator-kB8eKMs(@FloatRange(from=0.0, to=1.0) float progress, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary);
   }
 
   public final class RadioButtonKt {
-    method public static void RadioButton-HeBYgfA(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit>? onSelect, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
-    method public static void RadioGroup(kotlin.jvm.functions.Function1<? super androidx.ui.material.RadioGroupScope,kotlin.Unit> content);
-    method public static void RadioGroup-HJ2D5H4(java.util.List<java.lang.String> options, String? selectedOption, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onSelectedChange, androidx.ui.core.Modifier modifier = Modifier, long radioColor = MaterialTheme.colors.secondary, androidx.ui.text.TextStyle? textStyle = null);
+    method @androidx.compose.Composable public static void RadioButton-HeBYgfA(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit>? onSelect, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
+    method @androidx.compose.Composable public static void RadioGroup(kotlin.jvm.functions.Function1<? super androidx.ui.material.RadioGroupScope,kotlin.Unit> content);
+    method @androidx.compose.Composable public static void RadioGroup-HJ2D5H4(java.util.List<java.lang.String> options, String? selectedOption, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onSelectedChange, androidx.ui.core.Modifier modifier = Modifier, long radioColor = MaterialTheme.colors.secondary, androidx.ui.text.TextStyle? textStyle = null);
   }
 
-  public final class RadioGroupScope {
-    method public void RadioGroupItem(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelect, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method public void RadioGroupTextItem-JJAyy3w(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelect, String text, androidx.ui.core.Modifier modifier = Modifier, long radioColor = MaterialTheme.colors.secondary, androidx.ui.text.TextStyle? textStyle = null);
+  @androidx.compose.Stable public final class RadioGroupScope {
+    method @androidx.compose.Composable public void RadioGroupItem(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelect, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public void RadioGroupTextItem-JJAyy3w(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelect, String text, androidx.ui.core.Modifier modifier = Modifier, long radioColor = MaterialTheme.colors.secondary, androidx.ui.text.TextStyle? textStyle = null);
   }
 
   public final class Scaffold {
@@ -205,12 +205,12 @@
   }
 
   public final class ScaffoldKt {
-    method public static void Scaffold(androidx.ui.material.ScaffoldState scaffoldState = remember({ 
+    method @androidx.compose.Composable public static void Scaffold(androidx.ui.material.ScaffoldState scaffoldState = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function0<kotlin.Unit>? topAppBar = null, kotlin.jvm.functions.Function1<? super androidx.ui.material.BottomAppBar.FabConfiguration,kotlin.Unit>? bottomAppBar = null, kotlin.jvm.functions.Function0<kotlin.Unit>? floatingActionButton = null, androidx.ui.material.Scaffold.FabPosition floatingActionButtonPosition = androidx.ui.material.Scaffold.FabPosition.End, kotlin.jvm.functions.Function0<kotlin.Unit>? drawerContent = null, kotlin.jvm.functions.Function1<? super androidx.ui.core.Modifier,kotlin.Unit> bodyContent);
   }
 
-  public final class ScaffoldState {
+  @androidx.compose.Stable public final class ScaffoldState {
     ctor public ScaffoldState(androidx.ui.material.DrawerState drawerState, boolean isDrawerGesturesEnabled);
     ctor public ScaffoldState();
     method public androidx.ui.material.DrawerState getDrawerState();
@@ -237,34 +237,34 @@
   }
 
   public final class SliderKt {
-    method public static void Slider-NGIokMc(float value, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onValueChange, androidx.ui.core.Modifier modifier = Modifier, kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange = 0.0 .. 1.0, @IntRange(from=0) int steps = 0, kotlin.jvm.functions.Function0<kotlin.Unit>  long color = MaterialTheme.colors.primary);
+    method @androidx.compose.Composable public static void Slider-NGIokMc(float value, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onValueChange, androidx.ui.core.Modifier modifier = Modifier, kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange = 0.0 .. 1.0, @IntRange(from=0) int steps = 0, kotlin.jvm.functions.Function0<kotlin.Unit>  long color = MaterialTheme.colors.primary);
   }
 
   public final class SnackbarKt {
-    method public static void Snackbar-bRoLwi0(kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit>? action = null, androidx.ui.core.Modifier modifier = Modifier, boolean actionOnNewLine = false, androidx.ui.graphics.Shape shape = small, float elevation = 6.dp);
+    method @androidx.compose.Composable public static void Snackbar-bRoLwi0(kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit>? action = null, androidx.ui.core.Modifier modifier = Modifier, boolean actionOnNewLine = false, androidx.ui.graphics.Shape shape = small, float elevation = 6.dp);
     method public static long snackbarPrimaryColorFor(androidx.ui.material.ColorPalette colors);
   }
 
   public final class SurfaceKt {
-    method public static void Surface-r7cpYJI(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, long color = MaterialTheme.colors.surface, long contentColor = contentColorFor(color), androidx.ui.foundation.Border? border = null, float elevation = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void Surface-r7cpYJI(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, long color = MaterialTheme.colors.surface, long contentColor = contentColorFor(color), androidx.ui.foundation.Border? border = null, float elevation = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> content);
     method public static long getPrimarySurface(androidx.ui.material.ColorPalette);
   }
 
   public final class SwitchKt {
-    method public static void Switch-Ym7EGpc(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, long color = MaterialTheme.colors.secondaryVariant);
+    method @androidx.compose.Composable public static void Switch-Ym7EGpc(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, long color = MaterialTheme.colors.secondaryVariant);
   }
 
   public final class TabKt {
-    method public static void Tab(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method public static void Tab-5SZ958c(kotlin.jvm.functions.Function0<kotlin.Unit> text = emptyContent(), kotlin.jvm.functions.Function0<kotlin.Unit> icon = emptyContent(), boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, long activeColor = contentColor(), long inactiveColor = EmphasisAmbient.current.medium.applyEmphasis(activeColor));
-    method public static <T> void TabRow-nOWMzd0(java.util.List<? extends T> items, int selectedIndex, androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), boolean scrollable = false, kotlin.jvm.functions.Function1<? super java.util.List<androidx.ui.material.TabRow.TabPosition>,kotlin.Unit> indicatorContainer = { tabPositions -> TabRow.IndicatorContainer(tabPositions, selectedIndex, { 
+    method @androidx.compose.Composable public static void Tab(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void Tab-5SZ958c(kotlin.jvm.functions.Function0<kotlin.Unit> text = emptyContent(), kotlin.jvm.functions.Function0<kotlin.Unit> icon = emptyContent(), boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, long activeColor = contentColor(), long inactiveColor = EmphasisAmbient.current.medium.applyEmphasis(activeColor));
+    method @androidx.compose.Composable public static <T> void TabRow-nOWMzd0(java.util.List<? extends T> items, int selectedIndex, androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), boolean scrollable = false, kotlin.jvm.functions.Function1<? super java.util.List<androidx.ui.material.TabRow.TabPosition>,kotlin.Unit> indicatorContainer = { tabPositions -> TabRow.IndicatorContainer(tabPositions, selectedIndex, { 
     TabRow.Indicator()
 }) }, kotlin.jvm.functions.Function0<kotlin.Unit> divider = { Divider(1.dp, contentColor().copy(DividerOpacity)) }, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super T,kotlin.Unit> tab);
   }
 
   public final class TabRow {
-    method public void Indicator-e8O-MNM(androidx.ui.core.Modifier modifier = Modifier, long color = contentColor());
-    method public void IndicatorContainer(java.util.List<androidx.ui.material.TabRow.TabPosition> tabPositions, int selectedIndex, kotlin.jvm.functions.Function0<kotlin.Unit> indicator);
+    method @androidx.compose.Composable public void Indicator-e8O-MNM(androidx.ui.core.Modifier modifier = Modifier, long color = contentColor());
+    method @androidx.compose.Composable public void IndicatorContainer(java.util.List<androidx.ui.material.TabRow.TabPosition> tabPositions, int selectedIndex, kotlin.jvm.functions.Function0<kotlin.Unit> indicator);
     field public static final androidx.ui.material.TabRow! INSTANCE;
   }
 
@@ -285,11 +285,11 @@
   }
 
   public final class TextFieldKt {
-    method public static void FilledTextField-o4GafH0(String value, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onValueChange, kotlin.jvm.functions.Function0<kotlin.Unit> label, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle textStyle = currentTextStyle(), kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder = null, kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon = null, boolean isErrorValue = false, androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function2<? super androidx.ui.input.ImeAction,? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  _, _ ->  }, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long activeColor = MaterialTheme.colors.primary, long inactiveColor = MaterialTheme.colors.onSurface, long errorColor = MaterialTheme.colors.error, long backgroundColor = MaterialTheme.colors.onSurface, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(ZeroCornerSize, ZeroCornerSize));
-    method public static void FilledTextField-u5y5QhY(androidx.ui.foundation.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.ui.foundation.TextFieldValue,kotlin.Unit> onValueChange, kotlin.jvm.functions.Function0<kotlin.Unit> label, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle textStyle = currentTextStyle(), kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder = null, kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon = null, boolean isErrorValue = false, androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function2<? super androidx.ui.input.ImeAction,? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  _, _ ->  }, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long activeColor = MaterialTheme.colors.primary, long inactiveColor = MaterialTheme.colors.onSurface, long errorColor = MaterialTheme.colors.error, long backgroundColor = MaterialTheme.colors.onSurface, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(ZeroCornerSize, ZeroCornerSize));
+    method @androidx.compose.Composable public static void FilledTextField-o4GafH0(String value, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onValueChange, kotlin.jvm.functions.Function0<kotlin.Unit> label, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle textStyle = currentTextStyle(), kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder = null, kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon = null, boolean isErrorValue = false, androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function2<? super androidx.ui.input.ImeAction,? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  _, _ ->  }, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long activeColor = MaterialTheme.colors.primary, long inactiveColor = MaterialTheme.colors.onSurface, long errorColor = MaterialTheme.colors.error, long backgroundColor = MaterialTheme.colors.onSurface, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(ZeroCornerSize, ZeroCornerSize));
+    method @androidx.compose.Composable public static void FilledTextField-u5y5QhY(androidx.ui.foundation.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.ui.foundation.TextFieldValue,kotlin.Unit> onValueChange, kotlin.jvm.functions.Function0<kotlin.Unit> label, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle textStyle = currentTextStyle(), kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder = null, kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon = null, boolean isErrorValue = false, androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function2<? super androidx.ui.input.ImeAction,? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  _, _ ->  }, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long activeColor = MaterialTheme.colors.primary, long inactiveColor = MaterialTheme.colors.onSurface, long errorColor = MaterialTheme.colors.error, long backgroundColor = MaterialTheme.colors.onSurface, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(ZeroCornerSize, ZeroCornerSize));
   }
 
-  public final class Typography {
+  @androidx.compose.Immutable public final class Typography {
     ctor public Typography(androidx.ui.text.font.FontFamily defaultFontFamily, androidx.ui.text.TextStyle h1, androidx.ui.text.TextStyle h2, androidx.ui.text.TextStyle h3, androidx.ui.text.TextStyle h4, androidx.ui.text.TextStyle h5, androidx.ui.text.TextStyle h6, androidx.ui.text.TextStyle subtitle1, androidx.ui.text.TextStyle subtitle2, androidx.ui.text.TextStyle body1, androidx.ui.text.TextStyle body2, androidx.ui.text.TextStyle button, androidx.ui.text.TextStyle caption, androidx.ui.text.TextStyle overline);
     method public androidx.ui.text.TextStyle component1();
     method public androidx.ui.text.TextStyle component10();
@@ -304,7 +304,7 @@
     method public androidx.ui.text.TextStyle component7();
     method public androidx.ui.text.TextStyle component8();
     method public androidx.ui.text.TextStyle component9();
-    method public androidx.ui.material.Typography copy(androidx.ui.text.TextStyle h1, androidx.ui.text.TextStyle h2, androidx.ui.text.TextStyle h3, androidx.ui.text.TextStyle h4, androidx.ui.text.TextStyle h5, androidx.ui.text.TextStyle h6, androidx.ui.text.TextStyle subtitle1, androidx.ui.text.TextStyle subtitle2, androidx.ui.text.TextStyle body1, androidx.ui.text.TextStyle body2, androidx.ui.text.TextStyle button, androidx.ui.text.TextStyle caption, androidx.ui.text.TextStyle overline);
+    method @androidx.compose.Immutable public androidx.ui.material.Typography copy(androidx.ui.text.TextStyle h1, androidx.ui.text.TextStyle h2, androidx.ui.text.TextStyle h3, androidx.ui.text.TextStyle h4, androidx.ui.text.TextStyle h5, androidx.ui.text.TextStyle h6, androidx.ui.text.TextStyle subtitle1, androidx.ui.text.TextStyle subtitle2, androidx.ui.text.TextStyle body1, androidx.ui.text.TextStyle body2, androidx.ui.text.TextStyle button, androidx.ui.text.TextStyle caption, androidx.ui.text.TextStyle overline);
     method public androidx.ui.text.TextStyle getBody1();
     method public androidx.ui.text.TextStyle getBody2();
     method public androidx.ui.text.TextStyle getButton();
@@ -357,7 +357,7 @@
   }
 
   public final class RippleIndicationKt {
-    method public static androidx.ui.material.ripple.RippleIndication RippleIndication-XC6LiZk(boolean bounded = true, androidx.ui.unit.Dp? radius = null, long color = Color.Unset);
+    method @androidx.compose.Composable public static androidx.ui.material.ripple.RippleIndication RippleIndication-XC6LiZk(boolean bounded = true, androidx.ui.unit.Dp? radius = null, long color = Color.Unset);
   }
 
   public final class RippleKt {
diff --git a/ui/ui-material/api/restricted_0.1.0-dev14.txt b/ui/ui-material/api/restricted_0.1.0-dev14.txt
index c24c0ca..10cc7c3 100644
--- a/ui/ui-material/api/restricted_0.1.0-dev14.txt
+++ b/ui/ui-material/api/restricted_0.1.0-dev14.txt
@@ -7,23 +7,23 @@
   }
 
   public final class AlertDialogKt {
-    method public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit>? title = null, kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> confirmButton, kotlin.jvm.functions.Function0<kotlin.Unit>? dismissButton = null, androidx.ui.material.AlertDialogButtonLayout buttonLayout = androidx.ui.material.AlertDialogButtonLayout.SideBySide, androidx.ui.graphics.Shape shape = medium);
-    method public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit>? title = null, kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> buttons, androidx.ui.graphics.Shape shape = medium);
+    method @androidx.compose.Composable public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit>? title = null, kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> confirmButton, kotlin.jvm.functions.Function0<kotlin.Unit>? dismissButton = null, androidx.ui.material.AlertDialogButtonLayout buttonLayout = androidx.ui.material.AlertDialogButtonLayout.SideBySide, androidx.ui.graphics.Shape shape = medium);
+    method @androidx.compose.Composable public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit>? title = null, kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> buttons, androidx.ui.graphics.Shape shape = medium);
   }
 
   public final class AppBarKt {
-    method public static void BottomAppBar-GqrRtJg(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), androidx.ui.material.BottomAppBar.FabConfiguration? fabConfiguration = null, androidx.ui.graphics.Shape? cutoutShape = null, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
-    method public static void TopAppBar-FikZsjU(kotlin.jvm.functions.Function0<kotlin.Unit> title, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>? navigationIcon = null, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> actions = {}, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.AppBarKt.TopAppBarElevation);
-    method public static void TopAppBar-oP-1cd0(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.AppBarKt.TopAppBarElevation, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
+    method @androidx.compose.Composable public static void BottomAppBar-GqrRtJg(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), androidx.ui.material.BottomAppBar.FabConfiguration? fabConfiguration = null, androidx.ui.graphics.Shape? cutoutShape = null, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
+    method @androidx.compose.Composable public static void TopAppBar-FikZsjU(kotlin.jvm.functions.Function0<kotlin.Unit> title, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>? navigationIcon = null, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> actions = {}, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.AppBarKt.TopAppBarElevation);
+    method @androidx.compose.Composable public static void TopAppBar-oP-1cd0(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.AppBarKt.TopAppBarElevation, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
   }
 
   public final class BottomAppBar {
     field public static final androidx.ui.material.BottomAppBar! INSTANCE;
   }
 
-  public static final class BottomAppBar.FabConfiguration {
+  @androidx.compose.Immutable public static final class BottomAppBar.FabConfiguration {
     ctor public BottomAppBar.FabConfiguration(internal androidx.ui.unit.IntPxSize fabSize, internal androidx.ui.unit.PxPosition fabTopLeftPosition, internal androidx.ui.material.BottomAppBar.FabDockedPosition fabDockedPosition);
-    method public androidx.ui.material.BottomAppBar.FabConfiguration copy(androidx.ui.unit.IntPxSize fabSize, androidx.ui.unit.PxPosition fabTopLeftPosition, androidx.ui.material.BottomAppBar.FabDockedPosition fabDockedPosition);
+    method @androidx.compose.Immutable public androidx.ui.material.BottomAppBar.FabConfiguration copy(androidx.ui.unit.IntPxSize fabSize, androidx.ui.unit.PxPosition fabTopLeftPosition, androidx.ui.material.BottomAppBar.FabDockedPosition fabDockedPosition);
   }
 
   public enum BottomAppBar.FabDockedPosition {
@@ -32,8 +32,8 @@
   }
 
   public final class BottomNavigationKt {
-    method public static void BottomNavigation-oP-1cd0(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.BottomNavigationKt.BottomNavigationElevation, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
-    method public static void BottomNavigationItem-dOPBtLY(kotlin.jvm.functions.Function0<kotlin.Unit> icon, kotlin.jvm.functions.Function0<kotlin.Unit> text = emptyContent(), boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, boolean alwaysShowLabels = true, long activeColor = contentColor(), long inactiveColor = EmphasisAmbient.current.medium.applyEmphasis(activeColor));
+    method @androidx.compose.Composable public static void BottomNavigation-oP-1cd0(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.BottomNavigationKt.BottomNavigationElevation, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
+    method @androidx.compose.Composable public static void BottomNavigationItem-dOPBtLY(kotlin.jvm.functions.Function0<kotlin.Unit> icon, kotlin.jvm.functions.Function0<kotlin.Unit> text = emptyContent(), boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, boolean alwaysShowLabels = true, long activeColor = contentColor(), long inactiveColor = EmphasisAmbient.current.medium.applyEmphasis(activeColor));
   }
 
   public final class Button {
@@ -47,23 +47,23 @@
   }
 
   public final class ButtonKt {
-    method public static void Button-YWYas6U(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 2.dp, float disabledElevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = null, long backgroundColor = MaterialTheme.colors.primary, long disabledBackgroundColor = Button.defaultDisabledBackgroundColor, long contentColor = contentColorFor(backgroundColor), long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = Button.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
-    method public static inline void OutlinedButton-5tjLhF8(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = Border(1.dp, MaterialTheme.colors.onSurface.copy(OutlinedStrokeOpacity)), long backgroundColor = MaterialTheme.colors.surface, long contentColor = contentColorFor(backgroundColor), long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = Button.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
-    method public static inline void TextButton-5tjLhF8(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = null, long backgroundColor = Color.Transparent, long contentColor = MaterialTheme.colors.primary, long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = TextButton.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
+    method @androidx.compose.Composable public static void Button-YWYas6U(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 2.dp, float disabledElevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = null, long backgroundColor = MaterialTheme.colors.primary, long disabledBackgroundColor = Button.defaultDisabledBackgroundColor, long contentColor = contentColorFor(backgroundColor), long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = Button.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
+    method @androidx.compose.Composable public static inline void OutlinedButton-5tjLhF8(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = Border(1.dp, MaterialTheme.colors.onSurface.copy(OutlinedStrokeOpacity)), long backgroundColor = MaterialTheme.colors.surface, long contentColor = contentColorFor(backgroundColor), long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = Button.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
+    method @androidx.compose.Composable public static inline void TextButton-5tjLhF8(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = null, long backgroundColor = Color.Transparent, long contentColor = MaterialTheme.colors.primary, long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = TextButton.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
     field @kotlin.PublishedApi internal static final float OutlinedStrokeOpacity = 0.12f;
   }
 
   public final class CardKt {
-    method public static void Card-r7cpYJI(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = medium, long color = MaterialTheme.colors.surface, long contentColor = contentColorFor(color), androidx.ui.foundation.Border? border = null, float elevation = 1.dp, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void Card-r7cpYJI(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = medium, long color = MaterialTheme.colors.surface, long contentColor = contentColorFor(color), androidx.ui.foundation.Border? border = null, float elevation = 1.dp, kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
   public final class CheckboxKt {
-    method public static void Checkbox-D4zOgQA(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
-    method public static void TriStateCheckbox--Buf9SY(androidx.ui.foundation.selection.ToggleableState state, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
+    method @androidx.compose.Composable public static void Checkbox-D4zOgQA(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
+    method @androidx.compose.Composable public static void TriStateCheckbox--Buf9SY(androidx.ui.foundation.selection.ToggleableState state, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
   }
 
   public final class ColorKt {
-    method public static long contentColorFor-QEYXlZo(long color);
+    method @androidx.compose.Composable public static long contentColorFor-QEYXlZo(long color);
     method public static long contentColorFor-ZITCLTE(androidx.ui.material.ColorPalette, long color);
     method public static androidx.ui.material.ColorPalette darkColorPalette-bz757pg(long primary = Color(4290479868), long primaryVariant = Color(4281794739), long secondary = Color(4278442694), long background = Color(4279374354), long surface = Color(4279374354), long error = Color(4291782265), long  long  long  long  long >
     method public static androidx.ui.material.ColorPalette lightColorPalette-eO6A0Mk(long primary = Color(4284612846), long primaryVariant = Color(4281794739), long secondary = Color(4278442694), long secondaryVariant = Color(4278290310), long background = Color.White, long surface = Color.White, long error = Color(4289724448), long  long  long  long  long >
@@ -99,7 +99,7 @@
   }
 
   public final class DividerKt {
-    method public static void Divider-5sN9_mQ(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.onSurface.copy(DividerAlpha), float thickness = 1.dp, float startIndent = 0.dp);
+    method @androidx.compose.Composable public static void Divider-5sN9_mQ(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.onSurface.copy(DividerAlpha), float thickness = 1.dp, float startIndent = 0.dp);
   }
 
   public final class DrawerConstants {
@@ -109,8 +109,8 @@
   }
 
   public final class DrawerKt {
-    method public static void BottomDrawerLayout-s-rmCOo(androidx.ui.material.DrawerState drawerState, kotlin.jvm.functions.Function1<? super androidx.ui.material.DrawerState,kotlin.Unit> onStateChange, boolean gesturesEnabled = true, androidx.ui.graphics.Shape drawerShape = large, float drawerElevation = DrawerConstants.DefaultElevation, kotlin.jvm.functions.Function0<kotlin.Unit> drawerContent, kotlin.jvm.functions.Function0<kotlin.Unit> bodyContent);
-    method public static void ModalDrawerLayout-s-rmCOo(androidx.ui.material.DrawerState drawerState, kotlin.jvm.functions.Function1<? super androidx.ui.material.DrawerState,kotlin.Unit> onStateChange, boolean gesturesEnabled = true, androidx.ui.graphics.Shape drawerShape = large, float drawerElevation = DrawerConstants.DefaultElevation, kotlin.jvm.functions.Function0<kotlin.Unit> drawerContent, kotlin.jvm.functions.Function0<kotlin.Unit> bodyContent);
+    method @androidx.compose.Composable public static void BottomDrawerLayout-s-rmCOo(androidx.ui.material.DrawerState drawerState, kotlin.jvm.functions.Function1<? super androidx.ui.material.DrawerState,kotlin.Unit> onStateChange, boolean gesturesEnabled = true, androidx.ui.graphics.Shape drawerShape = large, float drawerElevation = DrawerConstants.DefaultElevation, kotlin.jvm.functions.Function0<kotlin.Unit> drawerContent, kotlin.jvm.functions.Function0<kotlin.Unit> bodyContent);
+    method @androidx.compose.Composable public static void ModalDrawerLayout-s-rmCOo(androidx.ui.material.DrawerState drawerState, kotlin.jvm.functions.Function1<? super androidx.ui.material.DrawerState,kotlin.Unit> onStateChange, boolean gesturesEnabled = true, androidx.ui.graphics.Shape drawerShape = large, float drawerElevation = DrawerConstants.DefaultElevation, kotlin.jvm.functions.Function0<kotlin.Unit> drawerContent, kotlin.jvm.functions.Function0<kotlin.Unit> bodyContent);
   }
 
   public enum DrawerState {
@@ -118,12 +118,12 @@
     enum_constant public static final androidx.ui.material.DrawerState Opened;
   }
 
-  public interface Emphasis {
+  @androidx.compose.Immutable public interface Emphasis {
     method public long applyEmphasis-QEYXlZo(long color);
   }
 
   public final class EmphasisKt {
-    method public static void ProvideEmphasis(androidx.ui.material.Emphasis emphasis, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void ProvideEmphasis(androidx.ui.material.Emphasis emphasis, kotlin.jvm.functions.Function0<kotlin.Unit> content);
     method public static androidx.compose.Ambient<androidx.ui.material.EmphasisLevels> getEmphasisAmbient();
   }
 
@@ -137,18 +137,18 @@
   }
 
   public final class FloatingActionButtonKt {
-    method public static void ExtendedFloatingActionButton-r9QhOOE(kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>? icon = null, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(CornerSize(50)), long backgroundColor = MaterialTheme.colors.secondary, long contentColor = contentColorFor(backgroundColor), float elevation = 6.dp);
-    method public static void FloatingActionButton-rf6Y9PE(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(CornerSize(50)), long backgroundColor = MaterialTheme.colors.secondary, long contentColor = contentColorFor(backgroundColor), float elevation = 6.dp, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
+    method @androidx.compose.Composable public static void ExtendedFloatingActionButton-r9QhOOE(kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>? icon = null, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(CornerSize(50)), long backgroundColor = MaterialTheme.colors.secondary, long contentColor = contentColorFor(backgroundColor), float elevation = 6.dp);
+    method @androidx.compose.Composable public static void FloatingActionButton-rf6Y9PE(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(CornerSize(50)), long backgroundColor = MaterialTheme.colors.secondary, long contentColor = contentColorFor(backgroundColor), float elevation = 6.dp, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
   }
 
   public final class IconButtonKt {
-    method public static void IconButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
-    method public static void IconToggleButton(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
+    method @androidx.compose.Composable public static void IconButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
+    method @androidx.compose.Composable public static void IconToggleButton(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
   }
 
   public final class ListItemKt {
-    method public static void ListItem(String text, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.ImageAsset? icon = null, String? secondaryText = null, boolean singleLineSecondaryText = true, String? overlineText = null, String? metaText = null);
-    method public static void ListItem(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>? icon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? secondaryText = null, boolean singleLineSecondaryText = true, kotlin.jvm.functions.Function0<kotlin.Unit>? overlineText = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailing = null, kotlin.jvm.functions.Function0<kotlin.Unit> text);
+    method @androidx.compose.Composable public static void ListItem(String text, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.ImageAsset? icon = null, String? secondaryText = null, boolean singleLineSecondaryText = true, String? overlineText = null, String? metaText = null);
+    method @androidx.compose.Composable public static void ListItem(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>? icon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? secondaryText = null, boolean singleLineSecondaryText = true, kotlin.jvm.functions.Function0<kotlin.Unit>? overlineText = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailing = null, kotlin.jvm.functions.Function0<kotlin.Unit> text);
   }
 
   public final class MaterialTheme {
@@ -162,12 +162,12 @@
   }
 
   public final class MaterialThemeKt {
-    method public static void MaterialTheme(androidx.ui.material.ColorPalette colors = MaterialTheme.colors, androidx.ui.material.Typography typography = MaterialTheme.typography, androidx.ui.material.Shapes shapes = MaterialTheme.shapes, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void MaterialTheme(androidx.ui.material.ColorPalette colors = MaterialTheme.colors, androidx.ui.material.Typography typography = MaterialTheme.typography, androidx.ui.material.Shapes shapes = MaterialTheme.shapes, kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
   public final class MenuKt {
-    method public static void DropdownMenu-1DTJxuk(kotlin.jvm.functions.Function0<kotlin.Unit> toggle, boolean expanded, kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, androidx.ui.core.Modifier toggleModifier = Modifier, long dropdownOffset = Position(0.dp, 0.dp), androidx.ui.core.Modifier dropdownModifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> dropdownContent);
-    method public static void DropdownMenuItem(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void DropdownMenu-1DTJxuk(kotlin.jvm.functions.Function0<kotlin.Unit> toggle, boolean expanded, kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, androidx.ui.core.Modifier toggleModifier = Modifier, long dropdownOffset = Position(0.dp, 0.dp), androidx.ui.core.Modifier dropdownModifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> dropdownContent);
+    method @androidx.compose.Composable public static void DropdownMenuItem(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
   public final class ProgressIndicatorConstants {
@@ -177,21 +177,21 @@
   }
 
   public final class ProgressIndicatorKt {
-    method public static void CircularProgressIndicator-EMuwvL0(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary, float strokeWidth = ProgressIndicatorConstants.DefaultStrokeWidth);
-    method public static void CircularProgressIndicator-it0oM4E(@FloatRange(from=0.0, to=1.0) float progress, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary, float strokeWidth = ProgressIndicatorConstants.DefaultStrokeWidth);
-    method public static void LinearProgressIndicator-e8O-MNM(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary);
-    method public static void LinearProgressIndicator-kB8eKMs(@FloatRange(from=0.0, to=1.0) float progress, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary);
+    method @androidx.compose.Composable public static void CircularProgressIndicator-EMuwvL0(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary, float strokeWidth = ProgressIndicatorConstants.DefaultStrokeWidth);
+    method @androidx.compose.Composable public static void CircularProgressIndicator-it0oM4E(@FloatRange(from=0.0, to=1.0) float progress, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary, float strokeWidth = ProgressIndicatorConstants.DefaultStrokeWidth);
+    method @androidx.compose.Composable public static void LinearProgressIndicator-e8O-MNM(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary);
+    method @androidx.compose.Composable public static void LinearProgressIndicator-kB8eKMs(@FloatRange(from=0.0, to=1.0) float progress, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary);
   }
 
   public final class RadioButtonKt {
-    method public static void RadioButton-HeBYgfA(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit>? onSelect, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
-    method public static void RadioGroup(kotlin.jvm.functions.Function1<? super androidx.ui.material.RadioGroupScope,kotlin.Unit> content);
-    method public static void RadioGroup-HJ2D5H4(java.util.List<java.lang.String> options, String? selectedOption, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onSelectedChange, androidx.ui.core.Modifier modifier = Modifier, long radioColor = MaterialTheme.colors.secondary, androidx.ui.text.TextStyle? textStyle = null);
+    method @androidx.compose.Composable public static void RadioButton-HeBYgfA(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit>? onSelect, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
+    method @androidx.compose.Composable public static void RadioGroup(kotlin.jvm.functions.Function1<? super androidx.ui.material.RadioGroupScope,kotlin.Unit> content);
+    method @androidx.compose.Composable public static void RadioGroup-HJ2D5H4(java.util.List<java.lang.String> options, String? selectedOption, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onSelectedChange, androidx.ui.core.Modifier modifier = Modifier, long radioColor = MaterialTheme.colors.secondary, androidx.ui.text.TextStyle? textStyle = null);
   }
 
-  public final class RadioGroupScope {
-    method public void RadioGroupItem(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelect, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method public void RadioGroupTextItem-JJAyy3w(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelect, String text, androidx.ui.core.Modifier modifier = Modifier, long radioColor = MaterialTheme.colors.secondary, androidx.ui.text.TextStyle? textStyle = null);
+  @androidx.compose.Stable public final class RadioGroupScope {
+    method @androidx.compose.Composable public void RadioGroupItem(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelect, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public void RadioGroupTextItem-JJAyy3w(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelect, String text, androidx.ui.core.Modifier modifier = Modifier, long radioColor = MaterialTheme.colors.secondary, androidx.ui.text.TextStyle? textStyle = null);
   }
 
   public final class Scaffold {
@@ -206,12 +206,12 @@
   }
 
   public final class ScaffoldKt {
-    method public static void Scaffold(androidx.ui.material.ScaffoldState scaffoldState = remember({ 
+    method @androidx.compose.Composable public static void Scaffold(androidx.ui.material.ScaffoldState scaffoldState = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function0<kotlin.Unit>? topAppBar = null, kotlin.jvm.functions.Function1<? super androidx.ui.material.BottomAppBar.FabConfiguration,kotlin.Unit>? bottomAppBar = null, kotlin.jvm.functions.Function0<kotlin.Unit>? floatingActionButton = null, androidx.ui.material.Scaffold.FabPosition floatingActionButtonPosition = androidx.ui.material.Scaffold.FabPosition.End, kotlin.jvm.functions.Function0<kotlin.Unit>? drawerContent = null, kotlin.jvm.functions.Function1<? super androidx.ui.core.Modifier,kotlin.Unit> bodyContent);
   }
 
-  public final class ScaffoldState {
+  @androidx.compose.Stable public final class ScaffoldState {
     ctor public ScaffoldState(androidx.ui.material.DrawerState drawerState, boolean isDrawerGesturesEnabled);
     ctor public ScaffoldState();
     method public androidx.ui.material.DrawerState getDrawerState();
@@ -238,34 +238,34 @@
   }
 
   public final class SliderKt {
-    method public static void Slider-NGIokMc(float value, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onValueChange, androidx.ui.core.Modifier modifier = Modifier, kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange = 0.0 .. 1.0, @IntRange(from=0) int steps = 0, kotlin.jvm.functions.Function0<kotlin.Unit>  long color = MaterialTheme.colors.primary);
+    method @androidx.compose.Composable public static void Slider-NGIokMc(float value, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onValueChange, androidx.ui.core.Modifier modifier = Modifier, kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange = 0.0 .. 1.0, @IntRange(from=0) int steps = 0, kotlin.jvm.functions.Function0<kotlin.Unit>  long color = MaterialTheme.colors.primary);
   }
 
   public final class SnackbarKt {
-    method public static void Snackbar-bRoLwi0(kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit>? action = null, androidx.ui.core.Modifier modifier = Modifier, boolean actionOnNewLine = false, androidx.ui.graphics.Shape shape = small, float elevation = 6.dp);
+    method @androidx.compose.Composable public static void Snackbar-bRoLwi0(kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit>? action = null, androidx.ui.core.Modifier modifier = Modifier, boolean actionOnNewLine = false, androidx.ui.graphics.Shape shape = small, float elevation = 6.dp);
     method public static long snackbarPrimaryColorFor(androidx.ui.material.ColorPalette colors);
   }
 
   public final class SurfaceKt {
-    method public static void Surface-r7cpYJI(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, long color = MaterialTheme.colors.surface, long contentColor = contentColorFor(color), androidx.ui.foundation.Border? border = null, float elevation = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void Surface-r7cpYJI(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, long color = MaterialTheme.colors.surface, long contentColor = contentColorFor(color), androidx.ui.foundation.Border? border = null, float elevation = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> content);
     method public static long getPrimarySurface(androidx.ui.material.ColorPalette);
   }
 
   public final class SwitchKt {
-    method public static void Switch-Ym7EGpc(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, long color = MaterialTheme.colors.secondaryVariant);
+    method @androidx.compose.Composable public static void Switch-Ym7EGpc(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, long color = MaterialTheme.colors.secondaryVariant);
   }
 
   public final class TabKt {
-    method public static void Tab(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method public static void Tab-5SZ958c(kotlin.jvm.functions.Function0<kotlin.Unit> text = emptyContent(), kotlin.jvm.functions.Function0<kotlin.Unit> icon = emptyContent(), boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, long activeColor = contentColor(), long inactiveColor = EmphasisAmbient.current.medium.applyEmphasis(activeColor));
-    method public static <T> void TabRow-nOWMzd0(java.util.List<? extends T> items, int selectedIndex, androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), boolean scrollable = false, kotlin.jvm.functions.Function1<? super java.util.List<androidx.ui.material.TabRow.TabPosition>,kotlin.Unit> indicatorContainer = { tabPositions -> TabRow.IndicatorContainer(tabPositions, selectedIndex, { 
+    method @androidx.compose.Composable public static void Tab(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void Tab-5SZ958c(kotlin.jvm.functions.Function0<kotlin.Unit> text = emptyContent(), kotlin.jvm.functions.Function0<kotlin.Unit> icon = emptyContent(), boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, long activeColor = contentColor(), long inactiveColor = EmphasisAmbient.current.medium.applyEmphasis(activeColor));
+    method @androidx.compose.Composable public static <T> void TabRow-nOWMzd0(java.util.List<? extends T> items, int selectedIndex, androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), boolean scrollable = false, kotlin.jvm.functions.Function1<? super java.util.List<androidx.ui.material.TabRow.TabPosition>,kotlin.Unit> indicatorContainer = { tabPositions -> TabRow.IndicatorContainer(tabPositions, selectedIndex, { 
     TabRow.Indicator()
 }) }, kotlin.jvm.functions.Function0<kotlin.Unit> divider = { Divider(1.dp, contentColor().copy(DividerOpacity)) }, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super T,kotlin.Unit> tab);
   }
 
   public final class TabRow {
-    method public void Indicator-e8O-MNM(androidx.ui.core.Modifier modifier = Modifier, long color = contentColor());
-    method public void IndicatorContainer(java.util.List<androidx.ui.material.TabRow.TabPosition> tabPositions, int selectedIndex, kotlin.jvm.functions.Function0<kotlin.Unit> indicator);
+    method @androidx.compose.Composable public void Indicator-e8O-MNM(androidx.ui.core.Modifier modifier = Modifier, long color = contentColor());
+    method @androidx.compose.Composable public void IndicatorContainer(java.util.List<androidx.ui.material.TabRow.TabPosition> tabPositions, int selectedIndex, kotlin.jvm.functions.Function0<kotlin.Unit> indicator);
     field public static final androidx.ui.material.TabRow! INSTANCE;
   }
 
@@ -286,11 +286,11 @@
   }
 
   public final class TextFieldKt {
-    method public static void FilledTextField-o4GafH0(String value, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onValueChange, kotlin.jvm.functions.Function0<kotlin.Unit> label, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle textStyle = currentTextStyle(), kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder = null, kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon = null, boolean isErrorValue = false, androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function2<? super androidx.ui.input.ImeAction,? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  _, _ ->  }, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long activeColor = MaterialTheme.colors.primary, long inactiveColor = MaterialTheme.colors.onSurface, long errorColor = MaterialTheme.colors.error, long backgroundColor = MaterialTheme.colors.onSurface, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(ZeroCornerSize, ZeroCornerSize));
-    method public static void FilledTextField-u5y5QhY(androidx.ui.foundation.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.ui.foundation.TextFieldValue,kotlin.Unit> onValueChange, kotlin.jvm.functions.Function0<kotlin.Unit> label, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle textStyle = currentTextStyle(), kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder = null, kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon = null, boolean isErrorValue = false, androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function2<? super androidx.ui.input.ImeAction,? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  _, _ ->  }, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long activeColor = MaterialTheme.colors.primary, long inactiveColor = MaterialTheme.colors.onSurface, long errorColor = MaterialTheme.colors.error, long backgroundColor = MaterialTheme.colors.onSurface, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(ZeroCornerSize, ZeroCornerSize));
+    method @androidx.compose.Composable public static void FilledTextField-o4GafH0(String value, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onValueChange, kotlin.jvm.functions.Function0<kotlin.Unit> label, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle textStyle = currentTextStyle(), kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder = null, kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon = null, boolean isErrorValue = false, androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function2<? super androidx.ui.input.ImeAction,? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  _, _ ->  }, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long activeColor = MaterialTheme.colors.primary, long inactiveColor = MaterialTheme.colors.onSurface, long errorColor = MaterialTheme.colors.error, long backgroundColor = MaterialTheme.colors.onSurface, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(ZeroCornerSize, ZeroCornerSize));
+    method @androidx.compose.Composable public static void FilledTextField-u5y5QhY(androidx.ui.foundation.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.ui.foundation.TextFieldValue,kotlin.Unit> onValueChange, kotlin.jvm.functions.Function0<kotlin.Unit> label, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle textStyle = currentTextStyle(), kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder = null, kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon = null, boolean isErrorValue = false, androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function2<? super androidx.ui.input.ImeAction,? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  _, _ ->  }, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long activeColor = MaterialTheme.colors.primary, long inactiveColor = MaterialTheme.colors.onSurface, long errorColor = MaterialTheme.colors.error, long backgroundColor = MaterialTheme.colors.onSurface, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(ZeroCornerSize, ZeroCornerSize));
   }
 
-  public final class Typography {
+  @androidx.compose.Immutable public final class Typography {
     ctor public Typography(androidx.ui.text.font.FontFamily defaultFontFamily, androidx.ui.text.TextStyle h1, androidx.ui.text.TextStyle h2, androidx.ui.text.TextStyle h3, androidx.ui.text.TextStyle h4, androidx.ui.text.TextStyle h5, androidx.ui.text.TextStyle h6, androidx.ui.text.TextStyle subtitle1, androidx.ui.text.TextStyle subtitle2, androidx.ui.text.TextStyle body1, androidx.ui.text.TextStyle body2, androidx.ui.text.TextStyle button, androidx.ui.text.TextStyle caption, androidx.ui.text.TextStyle overline);
     method public androidx.ui.text.TextStyle component1();
     method public androidx.ui.text.TextStyle component10();
@@ -305,7 +305,7 @@
     method public androidx.ui.text.TextStyle component7();
     method public androidx.ui.text.TextStyle component8();
     method public androidx.ui.text.TextStyle component9();
-    method public androidx.ui.material.Typography copy(androidx.ui.text.TextStyle h1, androidx.ui.text.TextStyle h2, androidx.ui.text.TextStyle h3, androidx.ui.text.TextStyle h4, androidx.ui.text.TextStyle h5, androidx.ui.text.TextStyle h6, androidx.ui.text.TextStyle subtitle1, androidx.ui.text.TextStyle subtitle2, androidx.ui.text.TextStyle body1, androidx.ui.text.TextStyle body2, androidx.ui.text.TextStyle button, androidx.ui.text.TextStyle caption, androidx.ui.text.TextStyle overline);
+    method @androidx.compose.Immutable public androidx.ui.material.Typography copy(androidx.ui.text.TextStyle h1, androidx.ui.text.TextStyle h2, androidx.ui.text.TextStyle h3, androidx.ui.text.TextStyle h4, androidx.ui.text.TextStyle h5, androidx.ui.text.TextStyle h6, androidx.ui.text.TextStyle subtitle1, androidx.ui.text.TextStyle subtitle2, androidx.ui.text.TextStyle body1, androidx.ui.text.TextStyle body2, androidx.ui.text.TextStyle button, androidx.ui.text.TextStyle caption, androidx.ui.text.TextStyle overline);
     method public androidx.ui.text.TextStyle getBody1();
     method public androidx.ui.text.TextStyle getBody2();
     method public androidx.ui.text.TextStyle getButton();
@@ -358,7 +358,7 @@
   }
 
   public final class RippleIndicationKt {
-    method public static androidx.ui.material.ripple.RippleIndication RippleIndication-XC6LiZk(boolean bounded = true, androidx.ui.unit.Dp? radius = null, long color = Color.Unset);
+    method @androidx.compose.Composable public static androidx.ui.material.ripple.RippleIndication RippleIndication-XC6LiZk(boolean bounded = true, androidx.ui.unit.Dp? radius = null, long color = Color.Unset);
   }
 
   public final class RippleKt {
diff --git a/ui/ui-material/api/restricted_current.txt b/ui/ui-material/api/restricted_current.txt
index c24c0ca..10cc7c3 100644
--- a/ui/ui-material/api/restricted_current.txt
+++ b/ui/ui-material/api/restricted_current.txt
@@ -7,23 +7,23 @@
   }
 
   public final class AlertDialogKt {
-    method public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit>? title = null, kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> confirmButton, kotlin.jvm.functions.Function0<kotlin.Unit>? dismissButton = null, androidx.ui.material.AlertDialogButtonLayout buttonLayout = androidx.ui.material.AlertDialogButtonLayout.SideBySide, androidx.ui.graphics.Shape shape = medium);
-    method public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit>? title = null, kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> buttons, androidx.ui.graphics.Shape shape = medium);
+    method @androidx.compose.Composable public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit>? title = null, kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> confirmButton, kotlin.jvm.functions.Function0<kotlin.Unit>? dismissButton = null, androidx.ui.material.AlertDialogButtonLayout buttonLayout = androidx.ui.material.AlertDialogButtonLayout.SideBySide, androidx.ui.graphics.Shape shape = medium);
+    method @androidx.compose.Composable public static void AlertDialog(kotlin.jvm.functions.Function0<kotlin.Unit> onCloseRequest, kotlin.jvm.functions.Function0<kotlin.Unit>? title = null, kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> buttons, androidx.ui.graphics.Shape shape = medium);
   }
 
   public final class AppBarKt {
-    method public static void BottomAppBar-GqrRtJg(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), androidx.ui.material.BottomAppBar.FabConfiguration? fabConfiguration = null, androidx.ui.graphics.Shape? cutoutShape = null, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
-    method public static void TopAppBar-FikZsjU(kotlin.jvm.functions.Function0<kotlin.Unit> title, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>? navigationIcon = null, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> actions = {}, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.AppBarKt.TopAppBarElevation);
-    method public static void TopAppBar-oP-1cd0(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.AppBarKt.TopAppBarElevation, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
+    method @androidx.compose.Composable public static void BottomAppBar-GqrRtJg(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), androidx.ui.material.BottomAppBar.FabConfiguration? fabConfiguration = null, androidx.ui.graphics.Shape? cutoutShape = null, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
+    method @androidx.compose.Composable public static void TopAppBar-FikZsjU(kotlin.jvm.functions.Function0<kotlin.Unit> title, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>? navigationIcon = null, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> actions = {}, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.AppBarKt.TopAppBarElevation);
+    method @androidx.compose.Composable public static void TopAppBar-oP-1cd0(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.AppBarKt.TopAppBarElevation, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
   }
 
   public final class BottomAppBar {
     field public static final androidx.ui.material.BottomAppBar! INSTANCE;
   }
 
-  public static final class BottomAppBar.FabConfiguration {
+  @androidx.compose.Immutable public static final class BottomAppBar.FabConfiguration {
     ctor public BottomAppBar.FabConfiguration(internal androidx.ui.unit.IntPxSize fabSize, internal androidx.ui.unit.PxPosition fabTopLeftPosition, internal androidx.ui.material.BottomAppBar.FabDockedPosition fabDockedPosition);
-    method public androidx.ui.material.BottomAppBar.FabConfiguration copy(androidx.ui.unit.IntPxSize fabSize, androidx.ui.unit.PxPosition fabTopLeftPosition, androidx.ui.material.BottomAppBar.FabDockedPosition fabDockedPosition);
+    method @androidx.compose.Immutable public androidx.ui.material.BottomAppBar.FabConfiguration copy(androidx.ui.unit.IntPxSize fabSize, androidx.ui.unit.PxPosition fabTopLeftPosition, androidx.ui.material.BottomAppBar.FabDockedPosition fabDockedPosition);
   }
 
   public enum BottomAppBar.FabDockedPosition {
@@ -32,8 +32,8 @@
   }
 
   public final class BottomNavigationKt {
-    method public static void BottomNavigation-oP-1cd0(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.BottomNavigationKt.BottomNavigationElevation, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
-    method public static void BottomNavigationItem-dOPBtLY(kotlin.jvm.functions.Function0<kotlin.Unit> icon, kotlin.jvm.functions.Function0<kotlin.Unit> text = emptyContent(), boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, boolean alwaysShowLabels = true, long activeColor = contentColor(), long inactiveColor = EmphasisAmbient.current.medium.applyEmphasis(activeColor));
+    method @androidx.compose.Composable public static void BottomNavigation-oP-1cd0(androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), float elevation = androidx.ui.material.BottomNavigationKt.BottomNavigationElevation, kotlin.jvm.functions.Function1<? super androidx.ui.layout.RowScope,kotlin.Unit> content);
+    method @androidx.compose.Composable public static void BottomNavigationItem-dOPBtLY(kotlin.jvm.functions.Function0<kotlin.Unit> icon, kotlin.jvm.functions.Function0<kotlin.Unit> text = emptyContent(), boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, boolean alwaysShowLabels = true, long activeColor = contentColor(), long inactiveColor = EmphasisAmbient.current.medium.applyEmphasis(activeColor));
   }
 
   public final class Button {
@@ -47,23 +47,23 @@
   }
 
   public final class ButtonKt {
-    method public static void Button-YWYas6U(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 2.dp, float disabledElevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = null, long backgroundColor = MaterialTheme.colors.primary, long disabledBackgroundColor = Button.defaultDisabledBackgroundColor, long contentColor = contentColorFor(backgroundColor), long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = Button.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
-    method public static inline void OutlinedButton-5tjLhF8(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = Border(1.dp, MaterialTheme.colors.onSurface.copy(OutlinedStrokeOpacity)), long backgroundColor = MaterialTheme.colors.surface, long contentColor = contentColorFor(backgroundColor), long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = Button.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
-    method public static inline void TextButton-5tjLhF8(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = null, long backgroundColor = Color.Transparent, long contentColor = MaterialTheme.colors.primary, long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = TextButton.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
+    method @androidx.compose.Composable public static void Button-YWYas6U(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 2.dp, float disabledElevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = null, long backgroundColor = MaterialTheme.colors.primary, long disabledBackgroundColor = Button.defaultDisabledBackgroundColor, long contentColor = contentColorFor(backgroundColor), long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = Button.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
+    method @androidx.compose.Composable public static inline void OutlinedButton-5tjLhF8(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = Border(1.dp, MaterialTheme.colors.onSurface.copy(OutlinedStrokeOpacity)), long backgroundColor = MaterialTheme.colors.surface, long contentColor = contentColorFor(backgroundColor), long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = Button.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
+    method @androidx.compose.Composable public static inline void TextButton-5tjLhF8(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, float elevation = 0.dp, androidx.ui.graphics.Shape shape = small, androidx.ui.foundation.Border? border = null, long backgroundColor = Color.Transparent, long contentColor = MaterialTheme.colors.primary, long disabledContentColor = Button.defaultDisabledContentColor, androidx.ui.layout.InnerPadding padding = TextButton.DefaultInnerPadding, kotlin.jvm.functions.Function0<kotlin.Unit> text);
     field @kotlin.PublishedApi internal static final float OutlinedStrokeOpacity = 0.12f;
   }
 
   public final class CardKt {
-    method public static void Card-r7cpYJI(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = medium, long color = MaterialTheme.colors.surface, long contentColor = contentColorFor(color), androidx.ui.foundation.Border? border = null, float elevation = 1.dp, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void Card-r7cpYJI(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = medium, long color = MaterialTheme.colors.surface, long contentColor = contentColorFor(color), androidx.ui.foundation.Border? border = null, float elevation = 1.dp, kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
   public final class CheckboxKt {
-    method public static void Checkbox-D4zOgQA(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
-    method public static void TriStateCheckbox--Buf9SY(androidx.ui.foundation.selection.ToggleableState state, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
+    method @androidx.compose.Composable public static void Checkbox-D4zOgQA(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
+    method @androidx.compose.Composable public static void TriStateCheckbox--Buf9SY(androidx.ui.foundation.selection.ToggleableState state, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
   }
 
   public final class ColorKt {
-    method public static long contentColorFor-QEYXlZo(long color);
+    method @androidx.compose.Composable public static long contentColorFor-QEYXlZo(long color);
     method public static long contentColorFor-ZITCLTE(androidx.ui.material.ColorPalette, long color);
     method public static androidx.ui.material.ColorPalette darkColorPalette-bz757pg(long primary = Color(4290479868), long primaryVariant = Color(4281794739), long secondary = Color(4278442694), long background = Color(4279374354), long surface = Color(4279374354), long error = Color(4291782265), long  long  long  long  long >
     method public static androidx.ui.material.ColorPalette lightColorPalette-eO6A0Mk(long primary = Color(4284612846), long primaryVariant = Color(4281794739), long secondary = Color(4278442694), long secondaryVariant = Color(4278290310), long background = Color.White, long surface = Color.White, long error = Color(4289724448), long  long  long  long  long >
@@ -99,7 +99,7 @@
   }
 
   public final class DividerKt {
-    method public static void Divider-5sN9_mQ(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.onSurface.copy(DividerAlpha), float thickness = 1.dp, float startIndent = 0.dp);
+    method @androidx.compose.Composable public static void Divider-5sN9_mQ(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.onSurface.copy(DividerAlpha), float thickness = 1.dp, float startIndent = 0.dp);
   }
 
   public final class DrawerConstants {
@@ -109,8 +109,8 @@
   }
 
   public final class DrawerKt {
-    method public static void BottomDrawerLayout-s-rmCOo(androidx.ui.material.DrawerState drawerState, kotlin.jvm.functions.Function1<? super androidx.ui.material.DrawerState,kotlin.Unit> onStateChange, boolean gesturesEnabled = true, androidx.ui.graphics.Shape drawerShape = large, float drawerElevation = DrawerConstants.DefaultElevation, kotlin.jvm.functions.Function0<kotlin.Unit> drawerContent, kotlin.jvm.functions.Function0<kotlin.Unit> bodyContent);
-    method public static void ModalDrawerLayout-s-rmCOo(androidx.ui.material.DrawerState drawerState, kotlin.jvm.functions.Function1<? super androidx.ui.material.DrawerState,kotlin.Unit> onStateChange, boolean gesturesEnabled = true, androidx.ui.graphics.Shape drawerShape = large, float drawerElevation = DrawerConstants.DefaultElevation, kotlin.jvm.functions.Function0<kotlin.Unit> drawerContent, kotlin.jvm.functions.Function0<kotlin.Unit> bodyContent);
+    method @androidx.compose.Composable public static void BottomDrawerLayout-s-rmCOo(androidx.ui.material.DrawerState drawerState, kotlin.jvm.functions.Function1<? super androidx.ui.material.DrawerState,kotlin.Unit> onStateChange, boolean gesturesEnabled = true, androidx.ui.graphics.Shape drawerShape = large, float drawerElevation = DrawerConstants.DefaultElevation, kotlin.jvm.functions.Function0<kotlin.Unit> drawerContent, kotlin.jvm.functions.Function0<kotlin.Unit> bodyContent);
+    method @androidx.compose.Composable public static void ModalDrawerLayout-s-rmCOo(androidx.ui.material.DrawerState drawerState, kotlin.jvm.functions.Function1<? super androidx.ui.material.DrawerState,kotlin.Unit> onStateChange, boolean gesturesEnabled = true, androidx.ui.graphics.Shape drawerShape = large, float drawerElevation = DrawerConstants.DefaultElevation, kotlin.jvm.functions.Function0<kotlin.Unit> drawerContent, kotlin.jvm.functions.Function0<kotlin.Unit> bodyContent);
   }
 
   public enum DrawerState {
@@ -118,12 +118,12 @@
     enum_constant public static final androidx.ui.material.DrawerState Opened;
   }
 
-  public interface Emphasis {
+  @androidx.compose.Immutable public interface Emphasis {
     method public long applyEmphasis-QEYXlZo(long color);
   }
 
   public final class EmphasisKt {
-    method public static void ProvideEmphasis(androidx.ui.material.Emphasis emphasis, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void ProvideEmphasis(androidx.ui.material.Emphasis emphasis, kotlin.jvm.functions.Function0<kotlin.Unit> content);
     method public static androidx.compose.Ambient<androidx.ui.material.EmphasisLevels> getEmphasisAmbient();
   }
 
@@ -137,18 +137,18 @@
   }
 
   public final class FloatingActionButtonKt {
-    method public static void ExtendedFloatingActionButton-r9QhOOE(kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>? icon = null, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(CornerSize(50)), long backgroundColor = MaterialTheme.colors.secondary, long contentColor = contentColorFor(backgroundColor), float elevation = 6.dp);
-    method public static void FloatingActionButton-rf6Y9PE(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(CornerSize(50)), long backgroundColor = MaterialTheme.colors.secondary, long contentColor = contentColorFor(backgroundColor), float elevation = 6.dp, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
+    method @androidx.compose.Composable public static void ExtendedFloatingActionButton-r9QhOOE(kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>? icon = null, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(CornerSize(50)), long backgroundColor = MaterialTheme.colors.secondary, long contentColor = contentColorFor(backgroundColor), float elevation = 6.dp);
+    method @androidx.compose.Composable public static void FloatingActionButton-rf6Y9PE(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(CornerSize(50)), long backgroundColor = MaterialTheme.colors.secondary, long contentColor = contentColorFor(backgroundColor), float elevation = 6.dp, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
   }
 
   public final class IconButtonKt {
-    method public static void IconButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
-    method public static void IconToggleButton(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
+    method @androidx.compose.Composable public static void IconButton(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
+    method @androidx.compose.Composable public static void IconToggleButton(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, boolean enabled = true, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> icon);
   }
 
   public final class ListItemKt {
-    method public static void ListItem(String text, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.ImageAsset? icon = null, String? secondaryText = null, boolean singleLineSecondaryText = true, String? overlineText = null, String? metaText = null);
-    method public static void ListItem(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>? icon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? secondaryText = null, boolean singleLineSecondaryText = true, kotlin.jvm.functions.Function0<kotlin.Unit>? overlineText = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailing = null, kotlin.jvm.functions.Function0<kotlin.Unit> text);
+    method @androidx.compose.Composable public static void ListItem(String text, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.ImageAsset? icon = null, String? secondaryText = null, boolean singleLineSecondaryText = true, String? overlineText = null, String? metaText = null);
+    method @androidx.compose.Composable public static void ListItem(androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>? icon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? secondaryText = null, boolean singleLineSecondaryText = true, kotlin.jvm.functions.Function0<kotlin.Unit>? overlineText = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailing = null, kotlin.jvm.functions.Function0<kotlin.Unit> text);
   }
 
   public final class MaterialTheme {
@@ -162,12 +162,12 @@
   }
 
   public final class MaterialThemeKt {
-    method public static void MaterialTheme(androidx.ui.material.ColorPalette colors = MaterialTheme.colors, androidx.ui.material.Typography typography = MaterialTheme.typography, androidx.ui.material.Shapes shapes = MaterialTheme.shapes, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void MaterialTheme(androidx.ui.material.ColorPalette colors = MaterialTheme.colors, androidx.ui.material.Typography typography = MaterialTheme.typography, androidx.ui.material.Shapes shapes = MaterialTheme.shapes, kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
   public final class MenuKt {
-    method public static void DropdownMenu-1DTJxuk(kotlin.jvm.functions.Function0<kotlin.Unit> toggle, boolean expanded, kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, androidx.ui.core.Modifier toggleModifier = Modifier, long dropdownOffset = Position(0.dp, 0.dp), androidx.ui.core.Modifier dropdownModifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> dropdownContent);
-    method public static void DropdownMenuItem(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void DropdownMenu-1DTJxuk(kotlin.jvm.functions.Function0<kotlin.Unit> toggle, boolean expanded, kotlin.jvm.functions.Function0<kotlin.Unit> onDismissRequest, androidx.ui.core.Modifier toggleModifier = Modifier, long dropdownOffset = Position(0.dp, 0.dp), androidx.ui.core.Modifier dropdownModifier = Modifier, kotlin.jvm.functions.Function1<? super androidx.ui.layout.ColumnScope,kotlin.Unit> dropdownContent);
+    method @androidx.compose.Composable public static void DropdownMenuItem(kotlin.jvm.functions.Function0<kotlin.Unit> onClick, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
   public final class ProgressIndicatorConstants {
@@ -177,21 +177,21 @@
   }
 
   public final class ProgressIndicatorKt {
-    method public static void CircularProgressIndicator-EMuwvL0(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary, float strokeWidth = ProgressIndicatorConstants.DefaultStrokeWidth);
-    method public static void CircularProgressIndicator-it0oM4E(@FloatRange(from=0.0, to=1.0) float progress, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary, float strokeWidth = ProgressIndicatorConstants.DefaultStrokeWidth);
-    method public static void LinearProgressIndicator-e8O-MNM(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary);
-    method public static void LinearProgressIndicator-kB8eKMs(@FloatRange(from=0.0, to=1.0) float progress, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary);
+    method @androidx.compose.Composable public static void CircularProgressIndicator-EMuwvL0(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary, float strokeWidth = ProgressIndicatorConstants.DefaultStrokeWidth);
+    method @androidx.compose.Composable public static void CircularProgressIndicator-it0oM4E(@FloatRange(from=0.0, to=1.0) float progress, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary, float strokeWidth = ProgressIndicatorConstants.DefaultStrokeWidth);
+    method @androidx.compose.Composable public static void LinearProgressIndicator-e8O-MNM(androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary);
+    method @androidx.compose.Composable public static void LinearProgressIndicator-kB8eKMs(@FloatRange(from=0.0, to=1.0) float progress, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.primary);
   }
 
   public final class RadioButtonKt {
-    method public static void RadioButton-HeBYgfA(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit>? onSelect, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
-    method public static void RadioGroup(kotlin.jvm.functions.Function1<? super androidx.ui.material.RadioGroupScope,kotlin.Unit> content);
-    method public static void RadioGroup-HJ2D5H4(java.util.List<java.lang.String> options, String? selectedOption, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onSelectedChange, androidx.ui.core.Modifier modifier = Modifier, long radioColor = MaterialTheme.colors.secondary, androidx.ui.text.TextStyle? textStyle = null);
+    method @androidx.compose.Composable public static void RadioButton-HeBYgfA(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit>? onSelect, androidx.ui.core.Modifier modifier = Modifier, long color = MaterialTheme.colors.secondary);
+    method @androidx.compose.Composable public static void RadioGroup(kotlin.jvm.functions.Function1<? super androidx.ui.material.RadioGroupScope,kotlin.Unit> content);
+    method @androidx.compose.Composable public static void RadioGroup-HJ2D5H4(java.util.List<java.lang.String> options, String? selectedOption, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onSelectedChange, androidx.ui.core.Modifier modifier = Modifier, long radioColor = MaterialTheme.colors.secondary, androidx.ui.text.TextStyle? textStyle = null);
   }
 
-  public final class RadioGroupScope {
-    method public void RadioGroupItem(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelect, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method public void RadioGroupTextItem-JJAyy3w(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelect, String text, androidx.ui.core.Modifier modifier = Modifier, long radioColor = MaterialTheme.colors.secondary, androidx.ui.text.TextStyle? textStyle = null);
+  @androidx.compose.Stable public final class RadioGroupScope {
+    method @androidx.compose.Composable public void RadioGroupItem(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelect, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public void RadioGroupTextItem-JJAyy3w(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelect, String text, androidx.ui.core.Modifier modifier = Modifier, long radioColor = MaterialTheme.colors.secondary, androidx.ui.text.TextStyle? textStyle = null);
   }
 
   public final class Scaffold {
@@ -206,12 +206,12 @@
   }
 
   public final class ScaffoldKt {
-    method public static void Scaffold(androidx.ui.material.ScaffoldState scaffoldState = remember({ 
+    method @androidx.compose.Composable public static void Scaffold(androidx.ui.material.ScaffoldState scaffoldState = remember({ 
     return <init>()
 }), kotlin.jvm.functions.Function0<kotlin.Unit>? topAppBar = null, kotlin.jvm.functions.Function1<? super androidx.ui.material.BottomAppBar.FabConfiguration,kotlin.Unit>? bottomAppBar = null, kotlin.jvm.functions.Function0<kotlin.Unit>? floatingActionButton = null, androidx.ui.material.Scaffold.FabPosition floatingActionButtonPosition = androidx.ui.material.Scaffold.FabPosition.End, kotlin.jvm.functions.Function0<kotlin.Unit>? drawerContent = null, kotlin.jvm.functions.Function1<? super androidx.ui.core.Modifier,kotlin.Unit> bodyContent);
   }
 
-  public final class ScaffoldState {
+  @androidx.compose.Stable public final class ScaffoldState {
     ctor public ScaffoldState(androidx.ui.material.DrawerState drawerState, boolean isDrawerGesturesEnabled);
     ctor public ScaffoldState();
     method public androidx.ui.material.DrawerState getDrawerState();
@@ -238,34 +238,34 @@
   }
 
   public final class SliderKt {
-    method public static void Slider-NGIokMc(float value, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onValueChange, androidx.ui.core.Modifier modifier = Modifier, kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange = 0.0 .. 1.0, @IntRange(from=0) int steps = 0, kotlin.jvm.functions.Function0<kotlin.Unit>  long color = MaterialTheme.colors.primary);
+    method @androidx.compose.Composable public static void Slider-NGIokMc(float value, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onValueChange, androidx.ui.core.Modifier modifier = Modifier, kotlin.ranges.ClosedFloatingPointRange<java.lang.Float> valueRange = 0.0 .. 1.0, @IntRange(from=0) int steps = 0, kotlin.jvm.functions.Function0<kotlin.Unit>  long color = MaterialTheme.colors.primary);
   }
 
   public final class SnackbarKt {
-    method public static void Snackbar-bRoLwi0(kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit>? action = null, androidx.ui.core.Modifier modifier = Modifier, boolean actionOnNewLine = false, androidx.ui.graphics.Shape shape = small, float elevation = 6.dp);
+    method @androidx.compose.Composable public static void Snackbar-bRoLwi0(kotlin.jvm.functions.Function0<kotlin.Unit> text, kotlin.jvm.functions.Function0<kotlin.Unit>? action = null, androidx.ui.core.Modifier modifier = Modifier, boolean actionOnNewLine = false, androidx.ui.graphics.Shape shape = small, float elevation = 6.dp);
     method public static long snackbarPrimaryColorFor(androidx.ui.material.ColorPalette colors);
   }
 
   public final class SurfaceKt {
-    method public static void Surface-r7cpYJI(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, long color = MaterialTheme.colors.surface, long contentColor = contentColorFor(color), androidx.ui.foundation.Border? border = null, float elevation = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void Surface-r7cpYJI(androidx.ui.core.Modifier modifier = Modifier, androidx.ui.graphics.Shape shape = androidx.ui.graphics.RectangleShapeKt.RectangleShape, long color = MaterialTheme.colors.surface, long contentColor = contentColorFor(color), androidx.ui.foundation.Border? border = null, float elevation = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> content);
     method public static long getPrimarySurface(androidx.ui.material.ColorPalette);
   }
 
   public final class SwitchKt {
-    method public static void Switch-Ym7EGpc(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, long color = MaterialTheme.colors.secondaryVariant);
+    method @androidx.compose.Composable public static void Switch-Ym7EGpc(boolean checked, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit> onCheckedChange, androidx.ui.core.Modifier modifier = Modifier, boolean enabled = true, long color = MaterialTheme.colors.secondaryVariant);
   }
 
   public final class TabKt {
-    method public static void Tab(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> content);
-    method public static void Tab-5SZ958c(kotlin.jvm.functions.Function0<kotlin.Unit> text = emptyContent(), kotlin.jvm.functions.Function0<kotlin.Unit> icon = emptyContent(), boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, long activeColor = contentColor(), long inactiveColor = EmphasisAmbient.current.medium.applyEmphasis(activeColor));
-    method public static <T> void TabRow-nOWMzd0(java.util.List<? extends T> items, int selectedIndex, androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), boolean scrollable = false, kotlin.jvm.functions.Function1<? super java.util.List<androidx.ui.material.TabRow.TabPosition>,kotlin.Unit> indicatorContainer = { tabPositions -> TabRow.IndicatorContainer(tabPositions, selectedIndex, { 
+    method @androidx.compose.Composable public static void Tab(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+    method @androidx.compose.Composable public static void Tab-5SZ958c(kotlin.jvm.functions.Function0<kotlin.Unit> text = emptyContent(), kotlin.jvm.functions.Function0<kotlin.Unit> icon = emptyContent(), boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onSelected, androidx.ui.core.Modifier modifier = Modifier, long activeColor = contentColor(), long inactiveColor = EmphasisAmbient.current.medium.applyEmphasis(activeColor));
+    method @androidx.compose.Composable public static <T> void TabRow-nOWMzd0(java.util.List<? extends T> items, int selectedIndex, androidx.ui.core.Modifier modifier = Modifier, long backgroundColor = MaterialTheme.colors.primarySurface, long contentColor = contentColorFor(backgroundColor), boolean scrollable = false, kotlin.jvm.functions.Function1<? super java.util.List<androidx.ui.material.TabRow.TabPosition>,kotlin.Unit> indicatorContainer = { tabPositions -> TabRow.IndicatorContainer(tabPositions, selectedIndex, { 
     TabRow.Indicator()
 }) }, kotlin.jvm.functions.Function0<kotlin.Unit> divider = { Divider(1.dp, contentColor().copy(DividerOpacity)) }, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super T,kotlin.Unit> tab);
   }
 
   public final class TabRow {
-    method public void Indicator-e8O-MNM(androidx.ui.core.Modifier modifier = Modifier, long color = contentColor());
-    method public void IndicatorContainer(java.util.List<androidx.ui.material.TabRow.TabPosition> tabPositions, int selectedIndex, kotlin.jvm.functions.Function0<kotlin.Unit> indicator);
+    method @androidx.compose.Composable public void Indicator-e8O-MNM(androidx.ui.core.Modifier modifier = Modifier, long color = contentColor());
+    method @androidx.compose.Composable public void IndicatorContainer(java.util.List<androidx.ui.material.TabRow.TabPosition> tabPositions, int selectedIndex, kotlin.jvm.functions.Function0<kotlin.Unit> indicator);
     field public static final androidx.ui.material.TabRow! INSTANCE;
   }
 
@@ -286,11 +286,11 @@
   }
 
   public final class TextFieldKt {
-    method public static void FilledTextField-o4GafH0(String value, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onValueChange, kotlin.jvm.functions.Function0<kotlin.Unit> label, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle textStyle = currentTextStyle(), kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder = null, kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon = null, boolean isErrorValue = false, androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function2<? super androidx.ui.input.ImeAction,? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  _, _ ->  }, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long activeColor = MaterialTheme.colors.primary, long inactiveColor = MaterialTheme.colors.onSurface, long errorColor = MaterialTheme.colors.error, long backgroundColor = MaterialTheme.colors.onSurface, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(ZeroCornerSize, ZeroCornerSize));
-    method public static void FilledTextField-u5y5QhY(androidx.ui.foundation.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.ui.foundation.TextFieldValue,kotlin.Unit> onValueChange, kotlin.jvm.functions.Function0<kotlin.Unit> label, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle textStyle = currentTextStyle(), kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder = null, kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon = null, boolean isErrorValue = false, androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function2<? super androidx.ui.input.ImeAction,? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  _, _ ->  }, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long activeColor = MaterialTheme.colors.primary, long inactiveColor = MaterialTheme.colors.onSurface, long errorColor = MaterialTheme.colors.error, long backgroundColor = MaterialTheme.colors.onSurface, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(ZeroCornerSize, ZeroCornerSize));
+    method @androidx.compose.Composable public static void FilledTextField-o4GafH0(String value, kotlin.jvm.functions.Function1<? super java.lang.String,kotlin.Unit> onValueChange, kotlin.jvm.functions.Function0<kotlin.Unit> label, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle textStyle = currentTextStyle(), kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder = null, kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon = null, boolean isErrorValue = false, androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function2<? super androidx.ui.input.ImeAction,? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  _, _ ->  }, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long activeColor = MaterialTheme.colors.primary, long inactiveColor = MaterialTheme.colors.onSurface, long errorColor = MaterialTheme.colors.error, long backgroundColor = MaterialTheme.colors.onSurface, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(ZeroCornerSize, ZeroCornerSize));
+    method @androidx.compose.Composable public static void FilledTextField-u5y5QhY(androidx.ui.foundation.TextFieldValue value, kotlin.jvm.functions.Function1<? super androidx.ui.foundation.TextFieldValue,kotlin.Unit> onValueChange, kotlin.jvm.functions.Function0<kotlin.Unit> label, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle textStyle = currentTextStyle(), kotlin.jvm.functions.Function0<kotlin.Unit>? placeholder = null, kotlin.jvm.functions.Function0<kotlin.Unit>? leadingIcon = null, kotlin.jvm.functions.Function0<kotlin.Unit>? trailingIcon = null, boolean isErrorValue = false, androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function2<? super androidx.ui.input.ImeAction,? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  _, _ ->  }, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit>  long activeColor = MaterialTheme.colors.primary, long inactiveColor = MaterialTheme.colors.onSurface, long errorColor = MaterialTheme.colors.error, long backgroundColor = MaterialTheme.colors.onSurface, androidx.ui.graphics.Shape shape = MaterialTheme.shapes.small.copy(ZeroCornerSize, ZeroCornerSize));
   }
 
-  public final class Typography {
+  @androidx.compose.Immutable public final class Typography {
     ctor public Typography(androidx.ui.text.font.FontFamily defaultFontFamily, androidx.ui.text.TextStyle h1, androidx.ui.text.TextStyle h2, androidx.ui.text.TextStyle h3, androidx.ui.text.TextStyle h4, androidx.ui.text.TextStyle h5, androidx.ui.text.TextStyle h6, androidx.ui.text.TextStyle subtitle1, androidx.ui.text.TextStyle subtitle2, androidx.ui.text.TextStyle body1, androidx.ui.text.TextStyle body2, androidx.ui.text.TextStyle button, androidx.ui.text.TextStyle caption, androidx.ui.text.TextStyle overline);
     method public androidx.ui.text.TextStyle component1();
     method public androidx.ui.text.TextStyle component10();
@@ -305,7 +305,7 @@
     method public androidx.ui.text.TextStyle component7();
     method public androidx.ui.text.TextStyle component8();
     method public androidx.ui.text.TextStyle component9();
-    method public androidx.ui.material.Typography copy(androidx.ui.text.TextStyle h1, androidx.ui.text.TextStyle h2, androidx.ui.text.TextStyle h3, androidx.ui.text.TextStyle h4, androidx.ui.text.TextStyle h5, androidx.ui.text.TextStyle h6, androidx.ui.text.TextStyle subtitle1, androidx.ui.text.TextStyle subtitle2, androidx.ui.text.TextStyle body1, androidx.ui.text.TextStyle body2, androidx.ui.text.TextStyle button, androidx.ui.text.TextStyle caption, androidx.ui.text.TextStyle overline);
+    method @androidx.compose.Immutable public androidx.ui.material.Typography copy(androidx.ui.text.TextStyle h1, androidx.ui.text.TextStyle h2, androidx.ui.text.TextStyle h3, androidx.ui.text.TextStyle h4, androidx.ui.text.TextStyle h5, androidx.ui.text.TextStyle h6, androidx.ui.text.TextStyle subtitle1, androidx.ui.text.TextStyle subtitle2, androidx.ui.text.TextStyle body1, androidx.ui.text.TextStyle body2, androidx.ui.text.TextStyle button, androidx.ui.text.TextStyle caption, androidx.ui.text.TextStyle overline);
     method public androidx.ui.text.TextStyle getBody1();
     method public androidx.ui.text.TextStyle getBody2();
     method public androidx.ui.text.TextStyle getButton();
@@ -358,7 +358,7 @@
   }
 
   public final class RippleIndicationKt {
-    method public static androidx.ui.material.ripple.RippleIndication RippleIndication-XC6LiZk(boolean bounded = true, androidx.ui.unit.Dp? radius = null, long color = Color.Unset);
+    method @androidx.compose.Composable public static androidx.ui.material.ripple.RippleIndication RippleIndication-XC6LiZk(boolean bounded = true, androidx.ui.unit.Dp? radius = null, long color = Color.Unset);
   }
 
   public final class RippleKt {
diff --git a/ui/ui-rxjava2/api/0.1.0-dev14.txt b/ui/ui-rxjava2/api/0.1.0-dev14.txt
index b9a6cea..a24f6bb 100644
--- a/ui/ui-rxjava2/api/0.1.0-dev14.txt
+++ b/ui/ui-rxjava2/api/0.1.0-dev14.txt
@@ -2,15 +2,15 @@
 package androidx.ui.rxjava2 {
 
   public final class RxJava2AdapterKt {
-    method public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Observable<T>);
-    method public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Observable<T>, R? initial);
-    method public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Flowable<T>);
-    method public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Flowable<T>, R? initial);
-    method public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Single<T>);
-    method public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Single<T>, R? initial);
-    method public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Maybe<T>);
-    method public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Maybe<T>, R? initial);
-    method public static androidx.compose.State<java.lang.Boolean> subscribeAsState(io.reactivex.Completable);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Observable<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Observable<T>, R? initial);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Flowable<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Flowable<T>, R? initial);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Single<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Single<T>, R? initial);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Maybe<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Maybe<T>, R? initial);
+    method @androidx.compose.Composable public static androidx.compose.State<java.lang.Boolean> subscribeAsState(io.reactivex.Completable);
   }
 
 }
diff --git a/ui/ui-rxjava2/api/current.txt b/ui/ui-rxjava2/api/current.txt
index b9a6cea..a24f6bb 100644
--- a/ui/ui-rxjava2/api/current.txt
+++ b/ui/ui-rxjava2/api/current.txt
@@ -2,15 +2,15 @@
 package androidx.ui.rxjava2 {
 
   public final class RxJava2AdapterKt {
-    method public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Observable<T>);
-    method public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Observable<T>, R? initial);
-    method public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Flowable<T>);
-    method public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Flowable<T>, R? initial);
-    method public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Single<T>);
-    method public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Single<T>, R? initial);
-    method public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Maybe<T>);
-    method public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Maybe<T>, R? initial);
-    method public static androidx.compose.State<java.lang.Boolean> subscribeAsState(io.reactivex.Completable);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Observable<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Observable<T>, R? initial);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Flowable<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Flowable<T>, R? initial);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Single<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Single<T>, R? initial);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Maybe<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Maybe<T>, R? initial);
+    method @androidx.compose.Composable public static androidx.compose.State<java.lang.Boolean> subscribeAsState(io.reactivex.Completable);
   }
 
 }
diff --git a/ui/ui-rxjava2/api/public_plus_experimental_0.1.0-dev14.txt b/ui/ui-rxjava2/api/public_plus_experimental_0.1.0-dev14.txt
index b9a6cea..a24f6bb 100644
--- a/ui/ui-rxjava2/api/public_plus_experimental_0.1.0-dev14.txt
+++ b/ui/ui-rxjava2/api/public_plus_experimental_0.1.0-dev14.txt
@@ -2,15 +2,15 @@
 package androidx.ui.rxjava2 {
 
   public final class RxJava2AdapterKt {
-    method public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Observable<T>);
-    method public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Observable<T>, R? initial);
-    method public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Flowable<T>);
-    method public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Flowable<T>, R? initial);
-    method public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Single<T>);
-    method public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Single<T>, R? initial);
-    method public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Maybe<T>);
-    method public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Maybe<T>, R? initial);
-    method public static androidx.compose.State<java.lang.Boolean> subscribeAsState(io.reactivex.Completable);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Observable<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Observable<T>, R? initial);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Flowable<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Flowable<T>, R? initial);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Single<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Single<T>, R? initial);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Maybe<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Maybe<T>, R? initial);
+    method @androidx.compose.Composable public static androidx.compose.State<java.lang.Boolean> subscribeAsState(io.reactivex.Completable);
   }
 
 }
diff --git a/ui/ui-rxjava2/api/public_plus_experimental_current.txt b/ui/ui-rxjava2/api/public_plus_experimental_current.txt
index b9a6cea..a24f6bb 100644
--- a/ui/ui-rxjava2/api/public_plus_experimental_current.txt
+++ b/ui/ui-rxjava2/api/public_plus_experimental_current.txt
@@ -2,15 +2,15 @@
 package androidx.ui.rxjava2 {
 
   public final class RxJava2AdapterKt {
-    method public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Observable<T>);
-    method public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Observable<T>, R? initial);
-    method public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Flowable<T>);
-    method public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Flowable<T>, R? initial);
-    method public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Single<T>);
-    method public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Single<T>, R? initial);
-    method public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Maybe<T>);
-    method public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Maybe<T>, R? initial);
-    method public static androidx.compose.State<java.lang.Boolean> subscribeAsState(io.reactivex.Completable);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Observable<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Observable<T>, R? initial);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Flowable<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Flowable<T>, R? initial);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Single<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Single<T>, R? initial);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Maybe<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Maybe<T>, R? initial);
+    method @androidx.compose.Composable public static androidx.compose.State<java.lang.Boolean> subscribeAsState(io.reactivex.Completable);
   }
 
 }
diff --git a/ui/ui-rxjava2/api/restricted_0.1.0-dev14.txt b/ui/ui-rxjava2/api/restricted_0.1.0-dev14.txt
index b9a6cea..a24f6bb 100644
--- a/ui/ui-rxjava2/api/restricted_0.1.0-dev14.txt
+++ b/ui/ui-rxjava2/api/restricted_0.1.0-dev14.txt
@@ -2,15 +2,15 @@
 package androidx.ui.rxjava2 {
 
   public final class RxJava2AdapterKt {
-    method public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Observable<T>);
-    method public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Observable<T>, R? initial);
-    method public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Flowable<T>);
-    method public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Flowable<T>, R? initial);
-    method public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Single<T>);
-    method public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Single<T>, R? initial);
-    method public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Maybe<T>);
-    method public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Maybe<T>, R? initial);
-    method public static androidx.compose.State<java.lang.Boolean> subscribeAsState(io.reactivex.Completable);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Observable<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Observable<T>, R? initial);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Flowable<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Flowable<T>, R? initial);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Single<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Single<T>, R? initial);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Maybe<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Maybe<T>, R? initial);
+    method @androidx.compose.Composable public static androidx.compose.State<java.lang.Boolean> subscribeAsState(io.reactivex.Completable);
   }
 
 }
diff --git a/ui/ui-rxjava2/api/restricted_current.txt b/ui/ui-rxjava2/api/restricted_current.txt
index b9a6cea..a24f6bb 100644
--- a/ui/ui-rxjava2/api/restricted_current.txt
+++ b/ui/ui-rxjava2/api/restricted_current.txt
@@ -2,15 +2,15 @@
 package androidx.ui.rxjava2 {
 
   public final class RxJava2AdapterKt {
-    method public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Observable<T>);
-    method public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Observable<T>, R? initial);
-    method public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Flowable<T>);
-    method public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Flowable<T>, R? initial);
-    method public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Single<T>);
-    method public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Single<T>, R? initial);
-    method public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Maybe<T>);
-    method public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Maybe<T>, R? initial);
-    method public static androidx.compose.State<java.lang.Boolean> subscribeAsState(io.reactivex.Completable);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Observable<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Observable<T>, R? initial);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Flowable<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Flowable<T>, R? initial);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Single<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Single<T>, R? initial);
+    method @androidx.compose.Composable public static inline <T> androidx.compose.State<T> subscribeAsState(io.reactivex.Maybe<T>);
+    method @androidx.compose.Composable public static <R, T extends R> androidx.compose.State<R> subscribeAsState(io.reactivex.Maybe<T>, R? initial);
+    method @androidx.compose.Composable public static androidx.compose.State<java.lang.Boolean> subscribeAsState(io.reactivex.Completable);
   }
 
 }
diff --git a/ui/ui-saved-instance-state/api/0.1.0-dev14.txt b/ui/ui-saved-instance-state/api/0.1.0-dev14.txt
index 5b9b9a9..e3e4a91 100644
--- a/ui/ui-saved-instance-state/api/0.1.0-dev14.txt
+++ b/ui/ui-saved-instance-state/api/0.1.0-dev14.txt
@@ -10,11 +10,11 @@
   }
 
   public final class RememberSavedInstanceStateKt {
-    method public static <T> T rememberSavedInstanceState(Object![]? inputs, androidx.ui.savedinstancestate.Saver<T,?> saver = autoSaver(), String? key = null, kotlin.jvm.functions.Function0<? extends T> init);
+    method @androidx.compose.Composable public static <T> T rememberSavedInstanceState(Object![]? inputs, androidx.ui.savedinstancestate.Saver<T,?> saver = autoSaver(), String? key = null, kotlin.jvm.functions.Function0<? extends T> init);
   }
 
   public final class SavedInstanceStateKt {
-    method public static <T> androidx.compose.MutableState<T> savedInstanceState(Object![]? inputs, androidx.ui.savedinstancestate.Saver<T,?> saver = autoSaver(), String? key = null, kotlin.jvm.functions.Function2<? super T,? super T,java.lang.Boolean> areEquivalent = androidx.compose.MutableStateKt.ReferentiallyEqual, kotlin.jvm.functions.Function0<? extends T> init);
+    method @androidx.compose.Composable public static <T> androidx.compose.MutableState<T> savedInstanceState(Object![]? inputs, androidx.ui.savedinstancestate.Saver<T,?> saver = autoSaver(), String? key = null, kotlin.jvm.functions.Function2<? super T,? super T,java.lang.Boolean> areEquivalent = androidx.compose.MutableStateKt.ReferentiallyEqual, kotlin.jvm.functions.Function0<? extends T> init);
   }
 
   public interface Saver<Original, Saveable> {
diff --git a/ui/ui-saved-instance-state/api/current.txt b/ui/ui-saved-instance-state/api/current.txt
index 5b9b9a9..e3e4a91 100644
--- a/ui/ui-saved-instance-state/api/current.txt
+++ b/ui/ui-saved-instance-state/api/current.txt
@@ -10,11 +10,11 @@
   }
 
   public final class RememberSavedInstanceStateKt {
-    method public static <T> T rememberSavedInstanceState(Object![]? inputs, androidx.ui.savedinstancestate.Saver<T,?> saver = autoSaver(), String? key = null, kotlin.jvm.functions.Function0<? extends T> init);
+    method @androidx.compose.Composable public static <T> T rememberSavedInstanceState(Object![]? inputs, androidx.ui.savedinstancestate.Saver<T,?> saver = autoSaver(), String? key = null, kotlin.jvm.functions.Function0<? extends T> init);
   }
 
   public final class SavedInstanceStateKt {
-    method public static <T> androidx.compose.MutableState<T> savedInstanceState(Object![]? inputs, androidx.ui.savedinstancestate.Saver<T,?> saver = autoSaver(), String? key = null, kotlin.jvm.functions.Function2<? super T,? super T,java.lang.Boolean> areEquivalent = androidx.compose.MutableStateKt.ReferentiallyEqual, kotlin.jvm.functions.Function0<? extends T> init);
+    method @androidx.compose.Composable public static <T> androidx.compose.MutableState<T> savedInstanceState(Object![]? inputs, androidx.ui.savedinstancestate.Saver<T,?> saver = autoSaver(), String? key = null, kotlin.jvm.functions.Function2<? super T,? super T,java.lang.Boolean> areEquivalent = androidx.compose.MutableStateKt.ReferentiallyEqual, kotlin.jvm.functions.Function0<? extends T> init);
   }
 
   public interface Saver<Original, Saveable> {
diff --git a/ui/ui-saved-instance-state/api/public_plus_experimental_0.1.0-dev14.txt b/ui/ui-saved-instance-state/api/public_plus_experimental_0.1.0-dev14.txt
index 5b9b9a9..e3e4a91 100644
--- a/ui/ui-saved-instance-state/api/public_plus_experimental_0.1.0-dev14.txt
+++ b/ui/ui-saved-instance-state/api/public_plus_experimental_0.1.0-dev14.txt
@@ -10,11 +10,11 @@
   }
 
   public final class RememberSavedInstanceStateKt {
-    method public static <T> T rememberSavedInstanceState(Object![]? inputs, androidx.ui.savedinstancestate.Saver<T,?> saver = autoSaver(), String? key = null, kotlin.jvm.functions.Function0<? extends T> init);
+    method @androidx.compose.Composable public static <T> T rememberSavedInstanceState(Object![]? inputs, androidx.ui.savedinstancestate.Saver<T,?> saver = autoSaver(), String? key = null, kotlin.jvm.functions.Function0<? extends T> init);
   }
 
   public final class SavedInstanceStateKt {
-    method public static <T> androidx.compose.MutableState<T> savedInstanceState(Object![]? inputs, androidx.ui.savedinstancestate.Saver<T,?> saver = autoSaver(), String? key = null, kotlin.jvm.functions.Function2<? super T,? super T,java.lang.Boolean> areEquivalent = androidx.compose.MutableStateKt.ReferentiallyEqual, kotlin.jvm.functions.Function0<? extends T> init);
+    method @androidx.compose.Composable public static <T> androidx.compose.MutableState<T> savedInstanceState(Object![]? inputs, androidx.ui.savedinstancestate.Saver<T,?> saver = autoSaver(), String? key = null, kotlin.jvm.functions.Function2<? super T,? super T,java.lang.Boolean> areEquivalent = androidx.compose.MutableStateKt.ReferentiallyEqual, kotlin.jvm.functions.Function0<? extends T> init);
   }
 
   public interface Saver<Original, Saveable> {
diff --git a/ui/ui-saved-instance-state/api/public_plus_experimental_current.txt b/ui/ui-saved-instance-state/api/public_plus_experimental_current.txt
index 5b9b9a9..e3e4a91 100644
--- a/ui/ui-saved-instance-state/api/public_plus_experimental_current.txt
+++ b/ui/ui-saved-instance-state/api/public_plus_experimental_current.txt
@@ -10,11 +10,11 @@
   }
 
   public final class RememberSavedInstanceStateKt {
-    method public static <T> T rememberSavedInstanceState(Object![]? inputs, androidx.ui.savedinstancestate.Saver<T,?> saver = autoSaver(), String? key = null, kotlin.jvm.functions.Function0<? extends T> init);
+    method @androidx.compose.Composable public static <T> T rememberSavedInstanceState(Object![]? inputs, androidx.ui.savedinstancestate.Saver<T,?> saver = autoSaver(), String? key = null, kotlin.jvm.functions.Function0<? extends T> init);
   }
 
   public final class SavedInstanceStateKt {
-    method public static <T> androidx.compose.MutableState<T> savedInstanceState(Object![]? inputs, androidx.ui.savedinstancestate.Saver<T,?> saver = autoSaver(), String? key = null, kotlin.jvm.functions.Function2<? super T,? super T,java.lang.Boolean> areEquivalent = androidx.compose.MutableStateKt.ReferentiallyEqual, kotlin.jvm.functions.Function0<? extends T> init);
+    method @androidx.compose.Composable public static <T> androidx.compose.MutableState<T> savedInstanceState(Object![]? inputs, androidx.ui.savedinstancestate.Saver<T,?> saver = autoSaver(), String? key = null, kotlin.jvm.functions.Function2<? super T,? super T,java.lang.Boolean> areEquivalent = androidx.compose.MutableStateKt.ReferentiallyEqual, kotlin.jvm.functions.Function0<? extends T> init);
   }
 
   public interface Saver<Original, Saveable> {
diff --git a/ui/ui-saved-instance-state/api/restricted_0.1.0-dev14.txt b/ui/ui-saved-instance-state/api/restricted_0.1.0-dev14.txt
index 5b9b9a9..e3e4a91 100644
--- a/ui/ui-saved-instance-state/api/restricted_0.1.0-dev14.txt
+++ b/ui/ui-saved-instance-state/api/restricted_0.1.0-dev14.txt
@@ -10,11 +10,11 @@
   }
 
   public final class RememberSavedInstanceStateKt {
-    method public static <T> T rememberSavedInstanceState(Object![]? inputs, androidx.ui.savedinstancestate.Saver<T,?> saver = autoSaver(), String? key = null, kotlin.jvm.functions.Function0<? extends T> init);
+    method @androidx.compose.Composable public static <T> T rememberSavedInstanceState(Object![]? inputs, androidx.ui.savedinstancestate.Saver<T,?> saver = autoSaver(), String? key = null, kotlin.jvm.functions.Function0<? extends T> init);
   }
 
   public final class SavedInstanceStateKt {
-    method public static <T> androidx.compose.MutableState<T> savedInstanceState(Object![]? inputs, androidx.ui.savedinstancestate.Saver<T,?> saver = autoSaver(), String? key = null, kotlin.jvm.functions.Function2<? super T,? super T,java.lang.Boolean> areEquivalent = androidx.compose.MutableStateKt.ReferentiallyEqual, kotlin.jvm.functions.Function0<? extends T> init);
+    method @androidx.compose.Composable public static <T> androidx.compose.MutableState<T> savedInstanceState(Object![]? inputs, androidx.ui.savedinstancestate.Saver<T,?> saver = autoSaver(), String? key = null, kotlin.jvm.functions.Function2<? super T,? super T,java.lang.Boolean> areEquivalent = androidx.compose.MutableStateKt.ReferentiallyEqual, kotlin.jvm.functions.Function0<? extends T> init);
   }
 
   public interface Saver<Original, Saveable> {
diff --git a/ui/ui-saved-instance-state/api/restricted_current.txt b/ui/ui-saved-instance-state/api/restricted_current.txt
index 5b9b9a9..e3e4a91 100644
--- a/ui/ui-saved-instance-state/api/restricted_current.txt
+++ b/ui/ui-saved-instance-state/api/restricted_current.txt
@@ -10,11 +10,11 @@
   }
 
   public final class RememberSavedInstanceStateKt {
-    method public static <T> T rememberSavedInstanceState(Object![]? inputs, androidx.ui.savedinstancestate.Saver<T,?> saver = autoSaver(), String? key = null, kotlin.jvm.functions.Function0<? extends T> init);
+    method @androidx.compose.Composable public static <T> T rememberSavedInstanceState(Object![]? inputs, androidx.ui.savedinstancestate.Saver<T,?> saver = autoSaver(), String? key = null, kotlin.jvm.functions.Function0<? extends T> init);
   }
 
   public final class SavedInstanceStateKt {
-    method public static <T> androidx.compose.MutableState<T> savedInstanceState(Object![]? inputs, androidx.ui.savedinstancestate.Saver<T,?> saver = autoSaver(), String? key = null, kotlin.jvm.functions.Function2<? super T,? super T,java.lang.Boolean> areEquivalent = androidx.compose.MutableStateKt.ReferentiallyEqual, kotlin.jvm.functions.Function0<? extends T> init);
+    method @androidx.compose.Composable public static <T> androidx.compose.MutableState<T> savedInstanceState(Object![]? inputs, androidx.ui.savedinstancestate.Saver<T,?> saver = autoSaver(), String? key = null, kotlin.jvm.functions.Function2<? super T,? super T,java.lang.Boolean> areEquivalent = androidx.compose.MutableStateKt.ReferentiallyEqual, kotlin.jvm.functions.Function0<? extends T> init);
   }
 
   public interface Saver<Original, Saveable> {
diff --git a/ui/ui-test/api/0.1.0-dev14.txt b/ui/ui-test/api/0.1.0-dev14.txt
index 44d2cae..5a16901 100644
--- a/ui/ui-test/api/0.1.0-dev14.txt
+++ b/ui/ui-test/api/0.1.0-dev14.txt
@@ -115,7 +115,7 @@
   }
 
   public interface ComposeTestCase {
-    method public void emitContent();
+    method @androidx.compose.Composable public void emitContent();
   }
 
   public interface ComposeTestCaseSetup {
@@ -363,7 +363,7 @@
   }
 
   public final class AndroidComposeTestRuleKt {
-    method public static inline <reified T> androidx.ui.test.android.AndroidComposeTestRule<T>! AndroidComposeTestRule(androidx.compose.Recomposer? recomposer = null, boolean disableTransitions = false);
+    method public static inline <reified T extends androidx.activity.ComponentActivity> androidx.ui.test.android.AndroidComposeTestRule<T>! AndroidComposeTestRule(androidx.compose.Recomposer? recomposer = null, boolean disableTransitions = false);
   }
 
   public final class ComposeIdlingResourceKt {
diff --git a/ui/ui-test/api/current.txt b/ui/ui-test/api/current.txt
index 44d2cae..5a16901 100644
--- a/ui/ui-test/api/current.txt
+++ b/ui/ui-test/api/current.txt
@@ -115,7 +115,7 @@
   }
 
   public interface ComposeTestCase {
-    method public void emitContent();
+    method @androidx.compose.Composable public void emitContent();
   }
 
   public interface ComposeTestCaseSetup {
@@ -363,7 +363,7 @@
   }
 
   public final class AndroidComposeTestRuleKt {
-    method public static inline <reified T> androidx.ui.test.android.AndroidComposeTestRule<T>! AndroidComposeTestRule(androidx.compose.Recomposer? recomposer = null, boolean disableTransitions = false);
+    method public static inline <reified T extends androidx.activity.ComponentActivity> androidx.ui.test.android.AndroidComposeTestRule<T>! AndroidComposeTestRule(androidx.compose.Recomposer? recomposer = null, boolean disableTransitions = false);
   }
 
   public final class ComposeIdlingResourceKt {
diff --git a/ui/ui-test/api/public_plus_experimental_0.1.0-dev14.txt b/ui/ui-test/api/public_plus_experimental_0.1.0-dev14.txt
index 44d2cae..5a16901 100644
--- a/ui/ui-test/api/public_plus_experimental_0.1.0-dev14.txt
+++ b/ui/ui-test/api/public_plus_experimental_0.1.0-dev14.txt
@@ -115,7 +115,7 @@
   }
 
   public interface ComposeTestCase {
-    method public void emitContent();
+    method @androidx.compose.Composable public void emitContent();
   }
 
   public interface ComposeTestCaseSetup {
@@ -363,7 +363,7 @@
   }
 
   public final class AndroidComposeTestRuleKt {
-    method public static inline <reified T> androidx.ui.test.android.AndroidComposeTestRule<T>! AndroidComposeTestRule(androidx.compose.Recomposer? recomposer = null, boolean disableTransitions = false);
+    method public static inline <reified T extends androidx.activity.ComponentActivity> androidx.ui.test.android.AndroidComposeTestRule<T>! AndroidComposeTestRule(androidx.compose.Recomposer? recomposer = null, boolean disableTransitions = false);
   }
 
   public final class ComposeIdlingResourceKt {
diff --git a/ui/ui-test/api/public_plus_experimental_current.txt b/ui/ui-test/api/public_plus_experimental_current.txt
index 44d2cae..5a16901 100644
--- a/ui/ui-test/api/public_plus_experimental_current.txt
+++ b/ui/ui-test/api/public_plus_experimental_current.txt
@@ -115,7 +115,7 @@
   }
 
   public interface ComposeTestCase {
-    method public void emitContent();
+    method @androidx.compose.Composable public void emitContent();
   }
 
   public interface ComposeTestCaseSetup {
@@ -363,7 +363,7 @@
   }
 
   public final class AndroidComposeTestRuleKt {
-    method public static inline <reified T> androidx.ui.test.android.AndroidComposeTestRule<T>! AndroidComposeTestRule(androidx.compose.Recomposer? recomposer = null, boolean disableTransitions = false);
+    method public static inline <reified T extends androidx.activity.ComponentActivity> androidx.ui.test.android.AndroidComposeTestRule<T>! AndroidComposeTestRule(androidx.compose.Recomposer? recomposer = null, boolean disableTransitions = false);
   }
 
   public final class ComposeIdlingResourceKt {
diff --git a/ui/ui-test/api/restricted_0.1.0-dev14.txt b/ui/ui-test/api/restricted_0.1.0-dev14.txt
index 44d2cae..5a16901 100644
--- a/ui/ui-test/api/restricted_0.1.0-dev14.txt
+++ b/ui/ui-test/api/restricted_0.1.0-dev14.txt
@@ -115,7 +115,7 @@
   }
 
   public interface ComposeTestCase {
-    method public void emitContent();
+    method @androidx.compose.Composable public void emitContent();
   }
 
   public interface ComposeTestCaseSetup {
@@ -363,7 +363,7 @@
   }
 
   public final class AndroidComposeTestRuleKt {
-    method public static inline <reified T> androidx.ui.test.android.AndroidComposeTestRule<T>! AndroidComposeTestRule(androidx.compose.Recomposer? recomposer = null, boolean disableTransitions = false);
+    method public static inline <reified T extends androidx.activity.ComponentActivity> androidx.ui.test.android.AndroidComposeTestRule<T>! AndroidComposeTestRule(androidx.compose.Recomposer? recomposer = null, boolean disableTransitions = false);
   }
 
   public final class ComposeIdlingResourceKt {
diff --git a/ui/ui-test/api/restricted_current.txt b/ui/ui-test/api/restricted_current.txt
index 44d2cae..5a16901 100644
--- a/ui/ui-test/api/restricted_current.txt
+++ b/ui/ui-test/api/restricted_current.txt
@@ -115,7 +115,7 @@
   }
 
   public interface ComposeTestCase {
-    method public void emitContent();
+    method @androidx.compose.Composable public void emitContent();
   }
 
   public interface ComposeTestCaseSetup {
@@ -363,7 +363,7 @@
   }
 
   public final class AndroidComposeTestRuleKt {
-    method public static inline <reified T> androidx.ui.test.android.AndroidComposeTestRule<T>! AndroidComposeTestRule(androidx.compose.Recomposer? recomposer = null, boolean disableTransitions = false);
+    method public static inline <reified T extends androidx.activity.ComponentActivity> androidx.ui.test.android.AndroidComposeTestRule<T>! AndroidComposeTestRule(androidx.compose.Recomposer? recomposer = null, boolean disableTransitions = false);
   }
 
   public final class ComposeIdlingResourceKt {
diff --git a/ui/ui-text-core/api/0.1.0-dev14.txt b/ui/ui-text-core/api/0.1.0-dev14.txt
index 903302b..1df0204 100644
--- a/ui/ui-text-core/api/0.1.0-dev14.txt
+++ b/ui/ui-text-core/api/0.1.0-dev14.txt
@@ -50,13 +50,13 @@
     field public static final int NOWHERE = -1; // 0xffffffff
   }
 
-  public final class EditorValue {
+  @androidx.compose.Immutable public final class EditorValue {
     ctor public EditorValue(String text, androidx.ui.text.TextRange selection, androidx.ui.text.TextRange? composition);
     ctor public EditorValue();
     method public String component1();
     method public androidx.ui.text.TextRange component2();
     method public androidx.ui.text.TextRange? component3();
-    method public androidx.ui.input.EditorValue copy(String text, androidx.ui.text.TextRange selection, androidx.ui.text.TextRange? composition);
+    method @androidx.compose.Immutable public androidx.ui.input.EditorValue copy(String text, androidx.ui.text.TextRange selection, androidx.ui.text.TextRange? composition);
     method public androidx.ui.text.TextRange? getComposition();
     method public String getSelectedText();
     method public androidx.ui.text.TextRange getSelection();
@@ -186,7 +186,7 @@
     method public androidx.ui.text.AnnotatedString getTransformedText();
   }
 
-  public interface VisualTransformation {
+  @androidx.compose.Immutable public interface VisualTransformation {
     method public androidx.ui.input.TransformedText filter(androidx.ui.text.AnnotatedString text);
     field public static final androidx.ui.input.VisualTransformation.Companion! Companion;
   }
@@ -200,17 +200,17 @@
 
 package androidx.ui.text {
 
-  public final class AnnotatedString {
+  @androidx.compose.Immutable public final class AnnotatedString {
     ctor public AnnotatedString(String text, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> spanStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> paragraphStyles);
     method public String component1();
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> component2();
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> component3();
-    method public androidx.ui.text.AnnotatedString copy(String text, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> spanStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> paragraphStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<java.lang.String>> annotations);
+    method @androidx.compose.Immutable public androidx.ui.text.AnnotatedString copy(String text, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> spanStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> paragraphStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<java.lang.String>> annotations);
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> getParagraphStyles();
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> getSpanStyles();
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<java.lang.String>> getStringAnnotations(String tag, int start, int end);
     method public String getText();
-    method public operator androidx.ui.text.AnnotatedString plus(androidx.ui.text.AnnotatedString other);
+    method @androidx.compose.Stable public operator androidx.ui.text.AnnotatedString plus(androidx.ui.text.AnnotatedString other);
   }
 
   public static final class AnnotatedString.Builder {
@@ -263,7 +263,7 @@
     method public static inline <R> R withStyle(androidx.ui.text.AnnotatedString.Builder, androidx.ui.text.ParagraphStyle style, kotlin.jvm.functions.Function1<? super androidx.ui.text.AnnotatedString.Builder,? extends R> block);
   }
 
-  public final class Locale {
+  @androidx.compose.Immutable public final class Locale {
     ctor public Locale(String languageTag);
     method public String getLanguage();
     method public String getRegion();
@@ -280,14 +280,14 @@
     property public final androidx.ui.text.Locale current;
   }
 
-  public final class LocaleList implements java.util.Collection<androidx.ui.text.Locale> kotlin.jvm.internal.markers.KMappedMarker {
+  @androidx.compose.Immutable public final class LocaleList implements java.util.Collection<androidx.ui.text.Locale> kotlin.jvm.internal.markers.KMappedMarker {
     ctor public LocaleList(java.util.List<androidx.ui.text.Locale> localeList);
     ctor public LocaleList(String languageTags);
     ctor public LocaleList(androidx.ui.text.Locale... locales);
     method public java.util.List<androidx.ui.text.Locale> component1();
     method public operator boolean contains(androidx.ui.text.Locale element);
     method public boolean containsAll(java.util.Collection<?> elements);
-    method public androidx.ui.text.LocaleList copy(java.util.List<androidx.ui.text.Locale> localeList);
+    method @androidx.compose.Immutable public androidx.ui.text.LocaleList copy(java.util.List<androidx.ui.text.Locale> localeList);
     method public operator androidx.ui.text.Locale get(int i);
     method public java.util.List<androidx.ui.text.Locale> getLocaleList();
     method public int getSize();
@@ -427,29 +427,29 @@
     method public static androidx.ui.text.Paragraph Paragraph(androidx.ui.text.ParagraphIntrinsics paragraphIntrinsics, int maxLines = 2147483647, boolean ellipsis = false, androidx.ui.text.ParagraphConstraints constraints);
   }
 
-  public final class ParagraphStyle {
+  @androidx.compose.Immutable public final class ParagraphStyle {
     method public androidx.ui.text.style.TextAlign? component1();
     method public androidx.ui.text.style.TextDirectionAlgorithm? component2();
     method public long component3();
     method public androidx.ui.text.style.TextIndent? component4();
-    method public androidx.ui.text.ParagraphStyle copy-ffQossE(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, long lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    method @androidx.compose.Immutable public androidx.ui.text.ParagraphStyle copy-ffQossE(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, long lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     method public long getLineHeight();
     method public androidx.ui.text.style.TextAlign? getTextAlign();
     method public androidx.ui.text.style.TextDirectionAlgorithm? getTextDirectionAlgorithm();
     method public androidx.ui.text.style.TextIndent? getTextIndent();
-    method public androidx.ui.text.ParagraphStyle merge(androidx.ui.text.ParagraphStyle? other = null);
-    method public operator androidx.ui.text.ParagraphStyle plus(androidx.ui.text.ParagraphStyle other);
+    method @androidx.compose.Stable public androidx.ui.text.ParagraphStyle merge(androidx.ui.text.ParagraphStyle? other = null);
+    method @androidx.compose.Stable public operator androidx.ui.text.ParagraphStyle plus(androidx.ui.text.ParagraphStyle other);
   }
 
   public final class ParagraphStyleKt {
-    method public static androidx.ui.text.ParagraphStyle lerp(androidx.ui.text.ParagraphStyle start, androidx.ui.text.ParagraphStyle stop, float fraction);
+    method @androidx.compose.Stable public static androidx.ui.text.ParagraphStyle lerp(androidx.ui.text.ParagraphStyle start, androidx.ui.text.ParagraphStyle stop, float fraction);
   }
 
-  public final class Placeholder {
+  @androidx.compose.Immutable public final class Placeholder {
     method public long component1();
     method public long component2();
     method public androidx.ui.text.PlaceholderVerticalAlign component3();
-    method public androidx.ui.text.Placeholder copy-eLqjHCw(long width, long height, androidx.ui.text.PlaceholderVerticalAlign placeholderVerticalAlign);
+    method @androidx.compose.Immutable public androidx.ui.text.Placeholder copy-eLqjHCw(long width, long height, androidx.ui.text.PlaceholderVerticalAlign placeholderVerticalAlign);
     method public long getHeight();
     method public androidx.ui.text.PlaceholderVerticalAlign getPlaceholderVerticalAlign();
     method public long getWidth();
@@ -472,7 +472,7 @@
     method public void showSoftwareKeyboard();
   }
 
-  public final class SpanStyle {
+  @androidx.compose.Immutable public final class SpanStyle {
     method public long component1();
     method public androidx.ui.text.style.TextGeometricTransform? component10();
     method public androidx.ui.text.LocaleList? component11();
@@ -487,7 +487,7 @@
     method public String? component7();
     method public long component8();
     method public androidx.ui.text.style.BaselineShift? component9();
-    method public androidx.ui.text.SpanStyle copy-kRoccyE(long color, long fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, long letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, long background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
+    method @androidx.compose.Immutable public androidx.ui.text.SpanStyle copy-kRoccyE(long color, long fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, long letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, long background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
     method public long getBackground();
     method public androidx.ui.text.style.BaselineShift? getBaselineShift();
     method public long getColor();
@@ -502,8 +502,8 @@
     method public androidx.ui.graphics.Shadow? getShadow();
     method public androidx.ui.text.style.TextDecoration? getTextDecoration();
     method public androidx.ui.text.style.TextGeometricTransform? getTextGeometricTransform();
-    method public androidx.ui.text.SpanStyle merge(androidx.ui.text.SpanStyle? other = null);
-    method public operator androidx.ui.text.SpanStyle plus(androidx.ui.text.SpanStyle other);
+    method @androidx.compose.Stable public androidx.ui.text.SpanStyle merge(androidx.ui.text.SpanStyle? other = null);
+    method @androidx.compose.Stable public operator androidx.ui.text.SpanStyle plus(androidx.ui.text.SpanStyle other);
   }
 
   public final class SpanStyleKt {
@@ -587,13 +587,13 @@
     field public static final androidx.ui.text.TextPainter! INSTANCE;
   }
 
-  public final class TextRange {
+  @androidx.compose.Immutable public final class TextRange {
     ctor public TextRange(int start, int end);
     method public int component1();
     method public int component2();
     method public operator boolean contains(androidx.ui.text.TextRange other);
     method public operator boolean contains(int offset);
-    method public androidx.ui.text.TextRange copy(int start, int end);
+    method @androidx.compose.Immutable public androidx.ui.text.TextRange copy(int start, int end);
     method public boolean getCollapsed();
     method public int getEnd();
     method public int getLength();
@@ -611,7 +611,7 @@
     method public static String substring(CharSequence, androidx.ui.text.TextRange range);
   }
 
-  public final class TextStyle {
+  @androidx.compose.Immutable public final class TextStyle {
     method public long component1();
     method public androidx.ui.text.style.TextGeometricTransform? component10();
     method public androidx.ui.text.LocaleList? component11();
@@ -630,7 +630,7 @@
     method public String? component7();
     method public long component8();
     method public androidx.ui.text.style.BaselineShift? component9();
-    method public androidx.ui.text.TextStyle copy-4Bo2vQE(long color, long fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, long letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, long background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, long lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    method @androidx.compose.Immutable public androidx.ui.text.TextStyle copy-4Bo2vQE(long color, long fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, long letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, long background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, long lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     method public long getBackground();
     method public androidx.ui.text.style.BaselineShift? getBaselineShift();
     method public long getColor();
@@ -649,14 +649,14 @@
     method public androidx.ui.text.style.TextDirectionAlgorithm? getTextDirectionAlgorithm();
     method public androidx.ui.text.style.TextGeometricTransform? getTextGeometricTransform();
     method public androidx.ui.text.style.TextIndent? getTextIndent();
-    method public androidx.ui.text.TextStyle merge(androidx.ui.text.TextStyle? other = null);
-    method public androidx.ui.text.TextStyle merge(androidx.ui.text.SpanStyle other);
-    method public androidx.ui.text.TextStyle merge(androidx.ui.text.ParagraphStyle other);
-    method public operator androidx.ui.text.TextStyle plus(androidx.ui.text.TextStyle other);
-    method public operator androidx.ui.text.TextStyle plus(androidx.ui.text.ParagraphStyle other);
-    method public operator androidx.ui.text.TextStyle plus(androidx.ui.text.SpanStyle other);
-    method public androidx.ui.text.ParagraphStyle toParagraphStyle();
-    method public androidx.ui.text.SpanStyle toSpanStyle();
+    method @androidx.compose.Stable public androidx.ui.text.TextStyle merge(androidx.ui.text.TextStyle? other = null);
+    method @androidx.compose.Stable public androidx.ui.text.TextStyle merge(androidx.ui.text.SpanStyle other);
+    method @androidx.compose.Stable public androidx.ui.text.TextStyle merge(androidx.ui.text.ParagraphStyle other);
+    method @androidx.compose.Stable public operator androidx.ui.text.TextStyle plus(androidx.ui.text.TextStyle other);
+    method @androidx.compose.Stable public operator androidx.ui.text.TextStyle plus(androidx.ui.text.ParagraphStyle other);
+    method @androidx.compose.Stable public operator androidx.ui.text.TextStyle plus(androidx.ui.text.SpanStyle other);
+    method @androidx.compose.Stable public androidx.ui.text.ParagraphStyle toParagraphStyle();
+    method @androidx.compose.Stable public androidx.ui.text.SpanStyle toSpanStyle();
     field public static final androidx.ui.text.TextStyle.Companion! Companion;
   }
 
@@ -686,7 +686,7 @@
   public abstract sealed class FileBasedFontFamily extends androidx.ui.text.font.FontFamily {
   }
 
-  public interface Font {
+  @androidx.compose.Immutable public interface Font {
     method public androidx.ui.text.font.FontStyle getStyle();
     method public androidx.ui.text.font.FontWeight getWeight();
     property public abstract androidx.ui.text.font.FontStyle style;
@@ -697,7 +697,7 @@
     method public Object load(androidx.ui.text.font.Font font);
   }
 
-  public abstract sealed class FontFamily {
+  @androidx.compose.Immutable public abstract sealed class FontFamily {
     method public final boolean getCanLoadSynchronously();
     field public static final androidx.ui.text.font.FontFamily.Companion! Companion;
   }
@@ -716,22 +716,22 @@
   }
 
   public final class FontFamilyKt {
-    method public static androidx.ui.text.font.FontListFontFamily fontFamily(java.util.List<? extends androidx.ui.text.font.Font> fonts);
-    method public static androidx.ui.text.font.FontListFontFamily fontFamily(androidx.ui.text.font.Font... fonts);
+    method @androidx.compose.Stable public static androidx.ui.text.font.FontListFontFamily fontFamily(java.util.List<? extends androidx.ui.text.font.Font> fonts);
+    method @androidx.compose.Stable public static androidx.ui.text.font.FontListFontFamily fontFamily(androidx.ui.text.font.Font... fonts);
     method public static androidx.ui.text.font.LoadedFontFamily fontFamily(androidx.ui.text.Typeface typeface);
   }
 
   public final class FontKt {
-    method public static androidx.ui.text.font.FontListFontFamily asFontFamily(androidx.ui.text.font.Font);
-    method public static androidx.ui.text.font.Font font(int resId, androidx.ui.text.font.FontWeight weight = FontWeight.Normal, androidx.ui.text.font.FontStyle style = androidx.ui.text.font.FontStyle.Normal);
+    method @androidx.compose.Stable public static androidx.ui.text.font.FontListFontFamily asFontFamily(androidx.ui.text.font.Font);
+    method @androidx.compose.Stable public static androidx.ui.text.font.Font font(int resId, androidx.ui.text.font.FontWeight weight = FontWeight.Normal, androidx.ui.text.font.FontStyle style = androidx.ui.text.font.FontStyle.Normal);
   }
 
-  public final class FontListFontFamily extends androidx.ui.text.font.FileBasedFontFamily implements kotlin.jvm.internal.markers.KMappedMarker java.util.List<androidx.ui.text.font.Font> {
+  @androidx.compose.Immutable public final class FontListFontFamily extends androidx.ui.text.font.FileBasedFontFamily implements kotlin.jvm.internal.markers.KMappedMarker java.util.List<androidx.ui.text.font.Font> {
     ctor public FontListFontFamily(java.util.List<? extends androidx.ui.text.font.Font> fonts);
     method public java.util.List<androidx.ui.text.font.Font> component1();
     method public boolean contains(androidx.ui.text.font.Font element);
     method public boolean containsAll(java.util.Collection<?> elements);
-    method public androidx.ui.text.font.FontListFontFamily copy(java.util.List<? extends androidx.ui.text.font.Font> fonts);
+    method @androidx.compose.Immutable public androidx.ui.text.font.FontListFontFamily copy(java.util.List<? extends androidx.ui.text.font.Font> fonts);
     method public androidx.ui.text.font.Font get(int index);
     method public java.util.List<androidx.ui.text.font.Font> getFonts();
     method public int getSize();
@@ -756,11 +756,11 @@
     enum_constant public static final androidx.ui.text.font.FontSynthesis Weight;
   }
 
-  public final class FontWeight implements java.lang.Comparable<androidx.ui.text.font.FontWeight> {
+  @androidx.compose.Immutable public final class FontWeight implements java.lang.Comparable<androidx.ui.text.font.FontWeight> {
     ctor public FontWeight(int weight);
     method public int compareTo(androidx.ui.text.font.FontWeight other);
     method public int component1();
-    method public androidx.ui.text.font.FontWeight copy(int weight);
+    method @androidx.compose.Immutable public androidx.ui.text.font.FontWeight copy(int weight);
     method public int getWeight();
     field public static final androidx.ui.text.font.FontWeight.Companion! Companion;
   }
@@ -808,7 +808,7 @@
     method public static androidx.ui.text.font.FontWeight lerp(androidx.ui.text.font.FontWeight start, androidx.ui.text.font.FontWeight stop, float fraction);
   }
 
-  public final class GenericFontFamily extends androidx.ui.text.font.SystemFontFamily {
+  @androidx.compose.Immutable public final class GenericFontFamily extends androidx.ui.text.font.SystemFontFamily {
     method public String getName();
   }
 
@@ -850,14 +850,14 @@
 
 package androidx.ui.text.style {
 
-  public final inline class BaselineShift {
+  @androidx.compose.Immutable public final inline class BaselineShift {
     ctor public BaselineShift();
     method public static float constructor-impl(float multiplier);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getMultiplier();
-    method public static inline int hashCode-impl(float p);
-    method public static inline String! toString-impl(float p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Immutable public static inline String! toString-impl(float p);
     field public static final androidx.ui.text.style.BaselineShift.Companion! Companion;
   }
 
@@ -871,7 +871,7 @@
   }
 
   public final class BaselineShiftKt {
-    method public static float lerp-7csQwvo(float start, float stop, float fraction);
+    method @androidx.compose.Stable public static float lerp-7csQwvo(float start, float stop, float fraction);
   }
 
   public enum TextAlign {
@@ -883,10 +883,10 @@
     enum_constant public static final androidx.ui.text.style.TextAlign Start;
   }
 
-  public final class TextDecoration {
+  @androidx.compose.Immutable public final class TextDecoration {
     method public int component1();
     method public boolean contains(androidx.ui.text.style.TextDecoration other);
-    method public androidx.ui.text.style.TextDecoration copy(int mask);
+    method @androidx.compose.Immutable public androidx.ui.text.style.TextDecoration copy(int mask);
     method public int getMask();
     field public static final androidx.ui.text.style.TextDecoration.Companion! Companion;
   }
@@ -913,12 +913,12 @@
     enum_constant public static final androidx.ui.text.style.TextDirectionAlgorithm ForceRtl;
   }
 
-  public final class TextGeometricTransform {
+  @androidx.compose.Immutable public final class TextGeometricTransform {
     ctor public TextGeometricTransform(float scaleX, float skewX);
     ctor public TextGeometricTransform();
     method public float component1();
     method public float component2();
-    method public androidx.ui.text.style.TextGeometricTransform copy(float scaleX, float skewX);
+    method @androidx.compose.Immutable public androidx.ui.text.style.TextGeometricTransform copy(float scaleX, float skewX);
     method public float getScaleX();
     method public float getSkewX();
     field public static final androidx.ui.text.style.TextGeometricTransform.Companion! Companion;
@@ -931,10 +931,10 @@
     method public static androidx.ui.text.style.TextGeometricTransform lerp(androidx.ui.text.style.TextGeometricTransform start, androidx.ui.text.style.TextGeometricTransform stop, float fraction);
   }
 
-  public final class TextIndent {
+  @androidx.compose.Immutable public final class TextIndent {
     method public long component1();
     method public long component2();
-    method public androidx.ui.text.style.TextIndent copy-gL_aCS0(long firstLine, long restLine);
+    method @androidx.compose.Immutable public androidx.ui.text.style.TextIndent copy-gL_aCS0(long firstLine, long restLine);
     method public long getFirstLine();
     method public long getRestLine();
     field public static final androidx.ui.text.style.TextIndent.Companion! Companion;
diff --git a/ui/ui-text-core/api/current.txt b/ui/ui-text-core/api/current.txt
index 903302b..1df0204 100644
--- a/ui/ui-text-core/api/current.txt
+++ b/ui/ui-text-core/api/current.txt
@@ -50,13 +50,13 @@
     field public static final int NOWHERE = -1; // 0xffffffff
   }
 
-  public final class EditorValue {
+  @androidx.compose.Immutable public final class EditorValue {
     ctor public EditorValue(String text, androidx.ui.text.TextRange selection, androidx.ui.text.TextRange? composition);
     ctor public EditorValue();
     method public String component1();
     method public androidx.ui.text.TextRange component2();
     method public androidx.ui.text.TextRange? component3();
-    method public androidx.ui.input.EditorValue copy(String text, androidx.ui.text.TextRange selection, androidx.ui.text.TextRange? composition);
+    method @androidx.compose.Immutable public androidx.ui.input.EditorValue copy(String text, androidx.ui.text.TextRange selection, androidx.ui.text.TextRange? composition);
     method public androidx.ui.text.TextRange? getComposition();
     method public String getSelectedText();
     method public androidx.ui.text.TextRange getSelection();
@@ -186,7 +186,7 @@
     method public androidx.ui.text.AnnotatedString getTransformedText();
   }
 
-  public interface VisualTransformation {
+  @androidx.compose.Immutable public interface VisualTransformation {
     method public androidx.ui.input.TransformedText filter(androidx.ui.text.AnnotatedString text);
     field public static final androidx.ui.input.VisualTransformation.Companion! Companion;
   }
@@ -200,17 +200,17 @@
 
 package androidx.ui.text {
 
-  public final class AnnotatedString {
+  @androidx.compose.Immutable public final class AnnotatedString {
     ctor public AnnotatedString(String text, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> spanStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> paragraphStyles);
     method public String component1();
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> component2();
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> component3();
-    method public androidx.ui.text.AnnotatedString copy(String text, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> spanStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> paragraphStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<java.lang.String>> annotations);
+    method @androidx.compose.Immutable public androidx.ui.text.AnnotatedString copy(String text, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> spanStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> paragraphStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<java.lang.String>> annotations);
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> getParagraphStyles();
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> getSpanStyles();
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<java.lang.String>> getStringAnnotations(String tag, int start, int end);
     method public String getText();
-    method public operator androidx.ui.text.AnnotatedString plus(androidx.ui.text.AnnotatedString other);
+    method @androidx.compose.Stable public operator androidx.ui.text.AnnotatedString plus(androidx.ui.text.AnnotatedString other);
   }
 
   public static final class AnnotatedString.Builder {
@@ -263,7 +263,7 @@
     method public static inline <R> R withStyle(androidx.ui.text.AnnotatedString.Builder, androidx.ui.text.ParagraphStyle style, kotlin.jvm.functions.Function1<? super androidx.ui.text.AnnotatedString.Builder,? extends R> block);
   }
 
-  public final class Locale {
+  @androidx.compose.Immutable public final class Locale {
     ctor public Locale(String languageTag);
     method public String getLanguage();
     method public String getRegion();
@@ -280,14 +280,14 @@
     property public final androidx.ui.text.Locale current;
   }
 
-  public final class LocaleList implements java.util.Collection<androidx.ui.text.Locale> kotlin.jvm.internal.markers.KMappedMarker {
+  @androidx.compose.Immutable public final class LocaleList implements java.util.Collection<androidx.ui.text.Locale> kotlin.jvm.internal.markers.KMappedMarker {
     ctor public LocaleList(java.util.List<androidx.ui.text.Locale> localeList);
     ctor public LocaleList(String languageTags);
     ctor public LocaleList(androidx.ui.text.Locale... locales);
     method public java.util.List<androidx.ui.text.Locale> component1();
     method public operator boolean contains(androidx.ui.text.Locale element);
     method public boolean containsAll(java.util.Collection<?> elements);
-    method public androidx.ui.text.LocaleList copy(java.util.List<androidx.ui.text.Locale> localeList);
+    method @androidx.compose.Immutable public androidx.ui.text.LocaleList copy(java.util.List<androidx.ui.text.Locale> localeList);
     method public operator androidx.ui.text.Locale get(int i);
     method public java.util.List<androidx.ui.text.Locale> getLocaleList();
     method public int getSize();
@@ -427,29 +427,29 @@
     method public static androidx.ui.text.Paragraph Paragraph(androidx.ui.text.ParagraphIntrinsics paragraphIntrinsics, int maxLines = 2147483647, boolean ellipsis = false, androidx.ui.text.ParagraphConstraints constraints);
   }
 
-  public final class ParagraphStyle {
+  @androidx.compose.Immutable public final class ParagraphStyle {
     method public androidx.ui.text.style.TextAlign? component1();
     method public androidx.ui.text.style.TextDirectionAlgorithm? component2();
     method public long component3();
     method public androidx.ui.text.style.TextIndent? component4();
-    method public androidx.ui.text.ParagraphStyle copy-ffQossE(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, long lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    method @androidx.compose.Immutable public androidx.ui.text.ParagraphStyle copy-ffQossE(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, long lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     method public long getLineHeight();
     method public androidx.ui.text.style.TextAlign? getTextAlign();
     method public androidx.ui.text.style.TextDirectionAlgorithm? getTextDirectionAlgorithm();
     method public androidx.ui.text.style.TextIndent? getTextIndent();
-    method public androidx.ui.text.ParagraphStyle merge(androidx.ui.text.ParagraphStyle? other = null);
-    method public operator androidx.ui.text.ParagraphStyle plus(androidx.ui.text.ParagraphStyle other);
+    method @androidx.compose.Stable public androidx.ui.text.ParagraphStyle merge(androidx.ui.text.ParagraphStyle? other = null);
+    method @androidx.compose.Stable public operator androidx.ui.text.ParagraphStyle plus(androidx.ui.text.ParagraphStyle other);
   }
 
   public final class ParagraphStyleKt {
-    method public static androidx.ui.text.ParagraphStyle lerp(androidx.ui.text.ParagraphStyle start, androidx.ui.text.ParagraphStyle stop, float fraction);
+    method @androidx.compose.Stable public static androidx.ui.text.ParagraphStyle lerp(androidx.ui.text.ParagraphStyle start, androidx.ui.text.ParagraphStyle stop, float fraction);
   }
 
-  public final class Placeholder {
+  @androidx.compose.Immutable public final class Placeholder {
     method public long component1();
     method public long component2();
     method public androidx.ui.text.PlaceholderVerticalAlign component3();
-    method public androidx.ui.text.Placeholder copy-eLqjHCw(long width, long height, androidx.ui.text.PlaceholderVerticalAlign placeholderVerticalAlign);
+    method @androidx.compose.Immutable public androidx.ui.text.Placeholder copy-eLqjHCw(long width, long height, androidx.ui.text.PlaceholderVerticalAlign placeholderVerticalAlign);
     method public long getHeight();
     method public androidx.ui.text.PlaceholderVerticalAlign getPlaceholderVerticalAlign();
     method public long getWidth();
@@ -472,7 +472,7 @@
     method public void showSoftwareKeyboard();
   }
 
-  public final class SpanStyle {
+  @androidx.compose.Immutable public final class SpanStyle {
     method public long component1();
     method public androidx.ui.text.style.TextGeometricTransform? component10();
     method public androidx.ui.text.LocaleList? component11();
@@ -487,7 +487,7 @@
     method public String? component7();
     method public long component8();
     method public androidx.ui.text.style.BaselineShift? component9();
-    method public androidx.ui.text.SpanStyle copy-kRoccyE(long color, long fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, long letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, long background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
+    method @androidx.compose.Immutable public androidx.ui.text.SpanStyle copy-kRoccyE(long color, long fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, long letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, long background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
     method public long getBackground();
     method public androidx.ui.text.style.BaselineShift? getBaselineShift();
     method public long getColor();
@@ -502,8 +502,8 @@
     method public androidx.ui.graphics.Shadow? getShadow();
     method public androidx.ui.text.style.TextDecoration? getTextDecoration();
     method public androidx.ui.text.style.TextGeometricTransform? getTextGeometricTransform();
-    method public androidx.ui.text.SpanStyle merge(androidx.ui.text.SpanStyle? other = null);
-    method public operator androidx.ui.text.SpanStyle plus(androidx.ui.text.SpanStyle other);
+    method @androidx.compose.Stable public androidx.ui.text.SpanStyle merge(androidx.ui.text.SpanStyle? other = null);
+    method @androidx.compose.Stable public operator androidx.ui.text.SpanStyle plus(androidx.ui.text.SpanStyle other);
   }
 
   public final class SpanStyleKt {
@@ -587,13 +587,13 @@
     field public static final androidx.ui.text.TextPainter! INSTANCE;
   }
 
-  public final class TextRange {
+  @androidx.compose.Immutable public final class TextRange {
     ctor public TextRange(int start, int end);
     method public int component1();
     method public int component2();
     method public operator boolean contains(androidx.ui.text.TextRange other);
     method public operator boolean contains(int offset);
-    method public androidx.ui.text.TextRange copy(int start, int end);
+    method @androidx.compose.Immutable public androidx.ui.text.TextRange copy(int start, int end);
     method public boolean getCollapsed();
     method public int getEnd();
     method public int getLength();
@@ -611,7 +611,7 @@
     method public static String substring(CharSequence, androidx.ui.text.TextRange range);
   }
 
-  public final class TextStyle {
+  @androidx.compose.Immutable public final class TextStyle {
     method public long component1();
     method public androidx.ui.text.style.TextGeometricTransform? component10();
     method public androidx.ui.text.LocaleList? component11();
@@ -630,7 +630,7 @@
     method public String? component7();
     method public long component8();
     method public androidx.ui.text.style.BaselineShift? component9();
-    method public androidx.ui.text.TextStyle copy-4Bo2vQE(long color, long fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, long letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, long background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, long lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    method @androidx.compose.Immutable public androidx.ui.text.TextStyle copy-4Bo2vQE(long color, long fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, long letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, long background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, long lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     method public long getBackground();
     method public androidx.ui.text.style.BaselineShift? getBaselineShift();
     method public long getColor();
@@ -649,14 +649,14 @@
     method public androidx.ui.text.style.TextDirectionAlgorithm? getTextDirectionAlgorithm();
     method public androidx.ui.text.style.TextGeometricTransform? getTextGeometricTransform();
     method public androidx.ui.text.style.TextIndent? getTextIndent();
-    method public androidx.ui.text.TextStyle merge(androidx.ui.text.TextStyle? other = null);
-    method public androidx.ui.text.TextStyle merge(androidx.ui.text.SpanStyle other);
-    method public androidx.ui.text.TextStyle merge(androidx.ui.text.ParagraphStyle other);
-    method public operator androidx.ui.text.TextStyle plus(androidx.ui.text.TextStyle other);
-    method public operator androidx.ui.text.TextStyle plus(androidx.ui.text.ParagraphStyle other);
-    method public operator androidx.ui.text.TextStyle plus(androidx.ui.text.SpanStyle other);
-    method public androidx.ui.text.ParagraphStyle toParagraphStyle();
-    method public androidx.ui.text.SpanStyle toSpanStyle();
+    method @androidx.compose.Stable public androidx.ui.text.TextStyle merge(androidx.ui.text.TextStyle? other = null);
+    method @androidx.compose.Stable public androidx.ui.text.TextStyle merge(androidx.ui.text.SpanStyle other);
+    method @androidx.compose.Stable public androidx.ui.text.TextStyle merge(androidx.ui.text.ParagraphStyle other);
+    method @androidx.compose.Stable public operator androidx.ui.text.TextStyle plus(androidx.ui.text.TextStyle other);
+    method @androidx.compose.Stable public operator androidx.ui.text.TextStyle plus(androidx.ui.text.ParagraphStyle other);
+    method @androidx.compose.Stable public operator androidx.ui.text.TextStyle plus(androidx.ui.text.SpanStyle other);
+    method @androidx.compose.Stable public androidx.ui.text.ParagraphStyle toParagraphStyle();
+    method @androidx.compose.Stable public androidx.ui.text.SpanStyle toSpanStyle();
     field public static final androidx.ui.text.TextStyle.Companion! Companion;
   }
 
@@ -686,7 +686,7 @@
   public abstract sealed class FileBasedFontFamily extends androidx.ui.text.font.FontFamily {
   }
 
-  public interface Font {
+  @androidx.compose.Immutable public interface Font {
     method public androidx.ui.text.font.FontStyle getStyle();
     method public androidx.ui.text.font.FontWeight getWeight();
     property public abstract androidx.ui.text.font.FontStyle style;
@@ -697,7 +697,7 @@
     method public Object load(androidx.ui.text.font.Font font);
   }
 
-  public abstract sealed class FontFamily {
+  @androidx.compose.Immutable public abstract sealed class FontFamily {
     method public final boolean getCanLoadSynchronously();
     field public static final androidx.ui.text.font.FontFamily.Companion! Companion;
   }
@@ -716,22 +716,22 @@
   }
 
   public final class FontFamilyKt {
-    method public static androidx.ui.text.font.FontListFontFamily fontFamily(java.util.List<? extends androidx.ui.text.font.Font> fonts);
-    method public static androidx.ui.text.font.FontListFontFamily fontFamily(androidx.ui.text.font.Font... fonts);
+    method @androidx.compose.Stable public static androidx.ui.text.font.FontListFontFamily fontFamily(java.util.List<? extends androidx.ui.text.font.Font> fonts);
+    method @androidx.compose.Stable public static androidx.ui.text.font.FontListFontFamily fontFamily(androidx.ui.text.font.Font... fonts);
     method public static androidx.ui.text.font.LoadedFontFamily fontFamily(androidx.ui.text.Typeface typeface);
   }
 
   public final class FontKt {
-    method public static androidx.ui.text.font.FontListFontFamily asFontFamily(androidx.ui.text.font.Font);
-    method public static androidx.ui.text.font.Font font(int resId, androidx.ui.text.font.FontWeight weight = FontWeight.Normal, androidx.ui.text.font.FontStyle style = androidx.ui.text.font.FontStyle.Normal);
+    method @androidx.compose.Stable public static androidx.ui.text.font.FontListFontFamily asFontFamily(androidx.ui.text.font.Font);
+    method @androidx.compose.Stable public static androidx.ui.text.font.Font font(int resId, androidx.ui.text.font.FontWeight weight = FontWeight.Normal, androidx.ui.text.font.FontStyle style = androidx.ui.text.font.FontStyle.Normal);
   }
 
-  public final class FontListFontFamily extends androidx.ui.text.font.FileBasedFontFamily implements kotlin.jvm.internal.markers.KMappedMarker java.util.List<androidx.ui.text.font.Font> {
+  @androidx.compose.Immutable public final class FontListFontFamily extends androidx.ui.text.font.FileBasedFontFamily implements kotlin.jvm.internal.markers.KMappedMarker java.util.List<androidx.ui.text.font.Font> {
     ctor public FontListFontFamily(java.util.List<? extends androidx.ui.text.font.Font> fonts);
     method public java.util.List<androidx.ui.text.font.Font> component1();
     method public boolean contains(androidx.ui.text.font.Font element);
     method public boolean containsAll(java.util.Collection<?> elements);
-    method public androidx.ui.text.font.FontListFontFamily copy(java.util.List<? extends androidx.ui.text.font.Font> fonts);
+    method @androidx.compose.Immutable public androidx.ui.text.font.FontListFontFamily copy(java.util.List<? extends androidx.ui.text.font.Font> fonts);
     method public androidx.ui.text.font.Font get(int index);
     method public java.util.List<androidx.ui.text.font.Font> getFonts();
     method public int getSize();
@@ -756,11 +756,11 @@
     enum_constant public static final androidx.ui.text.font.FontSynthesis Weight;
   }
 
-  public final class FontWeight implements java.lang.Comparable<androidx.ui.text.font.FontWeight> {
+  @androidx.compose.Immutable public final class FontWeight implements java.lang.Comparable<androidx.ui.text.font.FontWeight> {
     ctor public FontWeight(int weight);
     method public int compareTo(androidx.ui.text.font.FontWeight other);
     method public int component1();
-    method public androidx.ui.text.font.FontWeight copy(int weight);
+    method @androidx.compose.Immutable public androidx.ui.text.font.FontWeight copy(int weight);
     method public int getWeight();
     field public static final androidx.ui.text.font.FontWeight.Companion! Companion;
   }
@@ -808,7 +808,7 @@
     method public static androidx.ui.text.font.FontWeight lerp(androidx.ui.text.font.FontWeight start, androidx.ui.text.font.FontWeight stop, float fraction);
   }
 
-  public final class GenericFontFamily extends androidx.ui.text.font.SystemFontFamily {
+  @androidx.compose.Immutable public final class GenericFontFamily extends androidx.ui.text.font.SystemFontFamily {
     method public String getName();
   }
 
@@ -850,14 +850,14 @@
 
 package androidx.ui.text.style {
 
-  public final inline class BaselineShift {
+  @androidx.compose.Immutable public final inline class BaselineShift {
     ctor public BaselineShift();
     method public static float constructor-impl(float multiplier);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getMultiplier();
-    method public static inline int hashCode-impl(float p);
-    method public static inline String! toString-impl(float p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Immutable public static inline String! toString-impl(float p);
     field public static final androidx.ui.text.style.BaselineShift.Companion! Companion;
   }
 
@@ -871,7 +871,7 @@
   }
 
   public final class BaselineShiftKt {
-    method public static float lerp-7csQwvo(float start, float stop, float fraction);
+    method @androidx.compose.Stable public static float lerp-7csQwvo(float start, float stop, float fraction);
   }
 
   public enum TextAlign {
@@ -883,10 +883,10 @@
     enum_constant public static final androidx.ui.text.style.TextAlign Start;
   }
 
-  public final class TextDecoration {
+  @androidx.compose.Immutable public final class TextDecoration {
     method public int component1();
     method public boolean contains(androidx.ui.text.style.TextDecoration other);
-    method public androidx.ui.text.style.TextDecoration copy(int mask);
+    method @androidx.compose.Immutable public androidx.ui.text.style.TextDecoration copy(int mask);
     method public int getMask();
     field public static final androidx.ui.text.style.TextDecoration.Companion! Companion;
   }
@@ -913,12 +913,12 @@
     enum_constant public static final androidx.ui.text.style.TextDirectionAlgorithm ForceRtl;
   }
 
-  public final class TextGeometricTransform {
+  @androidx.compose.Immutable public final class TextGeometricTransform {
     ctor public TextGeometricTransform(float scaleX, float skewX);
     ctor public TextGeometricTransform();
     method public float component1();
     method public float component2();
-    method public androidx.ui.text.style.TextGeometricTransform copy(float scaleX, float skewX);
+    method @androidx.compose.Immutable public androidx.ui.text.style.TextGeometricTransform copy(float scaleX, float skewX);
     method public float getScaleX();
     method public float getSkewX();
     field public static final androidx.ui.text.style.TextGeometricTransform.Companion! Companion;
@@ -931,10 +931,10 @@
     method public static androidx.ui.text.style.TextGeometricTransform lerp(androidx.ui.text.style.TextGeometricTransform start, androidx.ui.text.style.TextGeometricTransform stop, float fraction);
   }
 
-  public final class TextIndent {
+  @androidx.compose.Immutable public final class TextIndent {
     method public long component1();
     method public long component2();
-    method public androidx.ui.text.style.TextIndent copy-gL_aCS0(long firstLine, long restLine);
+    method @androidx.compose.Immutable public androidx.ui.text.style.TextIndent copy-gL_aCS0(long firstLine, long restLine);
     method public long getFirstLine();
     method public long getRestLine();
     field public static final androidx.ui.text.style.TextIndent.Companion! Companion;
diff --git a/ui/ui-text-core/api/public_plus_experimental_0.1.0-dev14.txt b/ui/ui-text-core/api/public_plus_experimental_0.1.0-dev14.txt
index 903302b..1df0204 100644
--- a/ui/ui-text-core/api/public_plus_experimental_0.1.0-dev14.txt
+++ b/ui/ui-text-core/api/public_plus_experimental_0.1.0-dev14.txt
@@ -50,13 +50,13 @@
     field public static final int NOWHERE = -1; // 0xffffffff
   }
 
-  public final class EditorValue {
+  @androidx.compose.Immutable public final class EditorValue {
     ctor public EditorValue(String text, androidx.ui.text.TextRange selection, androidx.ui.text.TextRange? composition);
     ctor public EditorValue();
     method public String component1();
     method public androidx.ui.text.TextRange component2();
     method public androidx.ui.text.TextRange? component3();
-    method public androidx.ui.input.EditorValue copy(String text, androidx.ui.text.TextRange selection, androidx.ui.text.TextRange? composition);
+    method @androidx.compose.Immutable public androidx.ui.input.EditorValue copy(String text, androidx.ui.text.TextRange selection, androidx.ui.text.TextRange? composition);
     method public androidx.ui.text.TextRange? getComposition();
     method public String getSelectedText();
     method public androidx.ui.text.TextRange getSelection();
@@ -186,7 +186,7 @@
     method public androidx.ui.text.AnnotatedString getTransformedText();
   }
 
-  public interface VisualTransformation {
+  @androidx.compose.Immutable public interface VisualTransformation {
     method public androidx.ui.input.TransformedText filter(androidx.ui.text.AnnotatedString text);
     field public static final androidx.ui.input.VisualTransformation.Companion! Companion;
   }
@@ -200,17 +200,17 @@
 
 package androidx.ui.text {
 
-  public final class AnnotatedString {
+  @androidx.compose.Immutable public final class AnnotatedString {
     ctor public AnnotatedString(String text, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> spanStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> paragraphStyles);
     method public String component1();
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> component2();
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> component3();
-    method public androidx.ui.text.AnnotatedString copy(String text, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> spanStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> paragraphStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<java.lang.String>> annotations);
+    method @androidx.compose.Immutable public androidx.ui.text.AnnotatedString copy(String text, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> spanStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> paragraphStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<java.lang.String>> annotations);
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> getParagraphStyles();
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> getSpanStyles();
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<java.lang.String>> getStringAnnotations(String tag, int start, int end);
     method public String getText();
-    method public operator androidx.ui.text.AnnotatedString plus(androidx.ui.text.AnnotatedString other);
+    method @androidx.compose.Stable public operator androidx.ui.text.AnnotatedString plus(androidx.ui.text.AnnotatedString other);
   }
 
   public static final class AnnotatedString.Builder {
@@ -263,7 +263,7 @@
     method public static inline <R> R withStyle(androidx.ui.text.AnnotatedString.Builder, androidx.ui.text.ParagraphStyle style, kotlin.jvm.functions.Function1<? super androidx.ui.text.AnnotatedString.Builder,? extends R> block);
   }
 
-  public final class Locale {
+  @androidx.compose.Immutable public final class Locale {
     ctor public Locale(String languageTag);
     method public String getLanguage();
     method public String getRegion();
@@ -280,14 +280,14 @@
     property public final androidx.ui.text.Locale current;
   }
 
-  public final class LocaleList implements java.util.Collection<androidx.ui.text.Locale> kotlin.jvm.internal.markers.KMappedMarker {
+  @androidx.compose.Immutable public final class LocaleList implements java.util.Collection<androidx.ui.text.Locale> kotlin.jvm.internal.markers.KMappedMarker {
     ctor public LocaleList(java.util.List<androidx.ui.text.Locale> localeList);
     ctor public LocaleList(String languageTags);
     ctor public LocaleList(androidx.ui.text.Locale... locales);
     method public java.util.List<androidx.ui.text.Locale> component1();
     method public operator boolean contains(androidx.ui.text.Locale element);
     method public boolean containsAll(java.util.Collection<?> elements);
-    method public androidx.ui.text.LocaleList copy(java.util.List<androidx.ui.text.Locale> localeList);
+    method @androidx.compose.Immutable public androidx.ui.text.LocaleList copy(java.util.List<androidx.ui.text.Locale> localeList);
     method public operator androidx.ui.text.Locale get(int i);
     method public java.util.List<androidx.ui.text.Locale> getLocaleList();
     method public int getSize();
@@ -427,29 +427,29 @@
     method public static androidx.ui.text.Paragraph Paragraph(androidx.ui.text.ParagraphIntrinsics paragraphIntrinsics, int maxLines = 2147483647, boolean ellipsis = false, androidx.ui.text.ParagraphConstraints constraints);
   }
 
-  public final class ParagraphStyle {
+  @androidx.compose.Immutable public final class ParagraphStyle {
     method public androidx.ui.text.style.TextAlign? component1();
     method public androidx.ui.text.style.TextDirectionAlgorithm? component2();
     method public long component3();
     method public androidx.ui.text.style.TextIndent? component4();
-    method public androidx.ui.text.ParagraphStyle copy-ffQossE(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, long lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    method @androidx.compose.Immutable public androidx.ui.text.ParagraphStyle copy-ffQossE(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, long lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     method public long getLineHeight();
     method public androidx.ui.text.style.TextAlign? getTextAlign();
     method public androidx.ui.text.style.TextDirectionAlgorithm? getTextDirectionAlgorithm();
     method public androidx.ui.text.style.TextIndent? getTextIndent();
-    method public androidx.ui.text.ParagraphStyle merge(androidx.ui.text.ParagraphStyle? other = null);
-    method public operator androidx.ui.text.ParagraphStyle plus(androidx.ui.text.ParagraphStyle other);
+    method @androidx.compose.Stable public androidx.ui.text.ParagraphStyle merge(androidx.ui.text.ParagraphStyle? other = null);
+    method @androidx.compose.Stable public operator androidx.ui.text.ParagraphStyle plus(androidx.ui.text.ParagraphStyle other);
   }
 
   public final class ParagraphStyleKt {
-    method public static androidx.ui.text.ParagraphStyle lerp(androidx.ui.text.ParagraphStyle start, androidx.ui.text.ParagraphStyle stop, float fraction);
+    method @androidx.compose.Stable public static androidx.ui.text.ParagraphStyle lerp(androidx.ui.text.ParagraphStyle start, androidx.ui.text.ParagraphStyle stop, float fraction);
   }
 
-  public final class Placeholder {
+  @androidx.compose.Immutable public final class Placeholder {
     method public long component1();
     method public long component2();
     method public androidx.ui.text.PlaceholderVerticalAlign component3();
-    method public androidx.ui.text.Placeholder copy-eLqjHCw(long width, long height, androidx.ui.text.PlaceholderVerticalAlign placeholderVerticalAlign);
+    method @androidx.compose.Immutable public androidx.ui.text.Placeholder copy-eLqjHCw(long width, long height, androidx.ui.text.PlaceholderVerticalAlign placeholderVerticalAlign);
     method public long getHeight();
     method public androidx.ui.text.PlaceholderVerticalAlign getPlaceholderVerticalAlign();
     method public long getWidth();
@@ -472,7 +472,7 @@
     method public void showSoftwareKeyboard();
   }
 
-  public final class SpanStyle {
+  @androidx.compose.Immutable public final class SpanStyle {
     method public long component1();
     method public androidx.ui.text.style.TextGeometricTransform? component10();
     method public androidx.ui.text.LocaleList? component11();
@@ -487,7 +487,7 @@
     method public String? component7();
     method public long component8();
     method public androidx.ui.text.style.BaselineShift? component9();
-    method public androidx.ui.text.SpanStyle copy-kRoccyE(long color, long fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, long letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, long background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
+    method @androidx.compose.Immutable public androidx.ui.text.SpanStyle copy-kRoccyE(long color, long fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, long letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, long background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
     method public long getBackground();
     method public androidx.ui.text.style.BaselineShift? getBaselineShift();
     method public long getColor();
@@ -502,8 +502,8 @@
     method public androidx.ui.graphics.Shadow? getShadow();
     method public androidx.ui.text.style.TextDecoration? getTextDecoration();
     method public androidx.ui.text.style.TextGeometricTransform? getTextGeometricTransform();
-    method public androidx.ui.text.SpanStyle merge(androidx.ui.text.SpanStyle? other = null);
-    method public operator androidx.ui.text.SpanStyle plus(androidx.ui.text.SpanStyle other);
+    method @androidx.compose.Stable public androidx.ui.text.SpanStyle merge(androidx.ui.text.SpanStyle? other = null);
+    method @androidx.compose.Stable public operator androidx.ui.text.SpanStyle plus(androidx.ui.text.SpanStyle other);
   }
 
   public final class SpanStyleKt {
@@ -587,13 +587,13 @@
     field public static final androidx.ui.text.TextPainter! INSTANCE;
   }
 
-  public final class TextRange {
+  @androidx.compose.Immutable public final class TextRange {
     ctor public TextRange(int start, int end);
     method public int component1();
     method public int component2();
     method public operator boolean contains(androidx.ui.text.TextRange other);
     method public operator boolean contains(int offset);
-    method public androidx.ui.text.TextRange copy(int start, int end);
+    method @androidx.compose.Immutable public androidx.ui.text.TextRange copy(int start, int end);
     method public boolean getCollapsed();
     method public int getEnd();
     method public int getLength();
@@ -611,7 +611,7 @@
     method public static String substring(CharSequence, androidx.ui.text.TextRange range);
   }
 
-  public final class TextStyle {
+  @androidx.compose.Immutable public final class TextStyle {
     method public long component1();
     method public androidx.ui.text.style.TextGeometricTransform? component10();
     method public androidx.ui.text.LocaleList? component11();
@@ -630,7 +630,7 @@
     method public String? component7();
     method public long component8();
     method public androidx.ui.text.style.BaselineShift? component9();
-    method public androidx.ui.text.TextStyle copy-4Bo2vQE(long color, long fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, long letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, long background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, long lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    method @androidx.compose.Immutable public androidx.ui.text.TextStyle copy-4Bo2vQE(long color, long fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, long letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, long background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, long lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     method public long getBackground();
     method public androidx.ui.text.style.BaselineShift? getBaselineShift();
     method public long getColor();
@@ -649,14 +649,14 @@
     method public androidx.ui.text.style.TextDirectionAlgorithm? getTextDirectionAlgorithm();
     method public androidx.ui.text.style.TextGeometricTransform? getTextGeometricTransform();
     method public androidx.ui.text.style.TextIndent? getTextIndent();
-    method public androidx.ui.text.TextStyle merge(androidx.ui.text.TextStyle? other = null);
-    method public androidx.ui.text.TextStyle merge(androidx.ui.text.SpanStyle other);
-    method public androidx.ui.text.TextStyle merge(androidx.ui.text.ParagraphStyle other);
-    method public operator androidx.ui.text.TextStyle plus(androidx.ui.text.TextStyle other);
-    method public operator androidx.ui.text.TextStyle plus(androidx.ui.text.ParagraphStyle other);
-    method public operator androidx.ui.text.TextStyle plus(androidx.ui.text.SpanStyle other);
-    method public androidx.ui.text.ParagraphStyle toParagraphStyle();
-    method public androidx.ui.text.SpanStyle toSpanStyle();
+    method @androidx.compose.Stable public androidx.ui.text.TextStyle merge(androidx.ui.text.TextStyle? other = null);
+    method @androidx.compose.Stable public androidx.ui.text.TextStyle merge(androidx.ui.text.SpanStyle other);
+    method @androidx.compose.Stable public androidx.ui.text.TextStyle merge(androidx.ui.text.ParagraphStyle other);
+    method @androidx.compose.Stable public operator androidx.ui.text.TextStyle plus(androidx.ui.text.TextStyle other);
+    method @androidx.compose.Stable public operator androidx.ui.text.TextStyle plus(androidx.ui.text.ParagraphStyle other);
+    method @androidx.compose.Stable public operator androidx.ui.text.TextStyle plus(androidx.ui.text.SpanStyle other);
+    method @androidx.compose.Stable public androidx.ui.text.ParagraphStyle toParagraphStyle();
+    method @androidx.compose.Stable public androidx.ui.text.SpanStyle toSpanStyle();
     field public static final androidx.ui.text.TextStyle.Companion! Companion;
   }
 
@@ -686,7 +686,7 @@
   public abstract sealed class FileBasedFontFamily extends androidx.ui.text.font.FontFamily {
   }
 
-  public interface Font {
+  @androidx.compose.Immutable public interface Font {
     method public androidx.ui.text.font.FontStyle getStyle();
     method public androidx.ui.text.font.FontWeight getWeight();
     property public abstract androidx.ui.text.font.FontStyle style;
@@ -697,7 +697,7 @@
     method public Object load(androidx.ui.text.font.Font font);
   }
 
-  public abstract sealed class FontFamily {
+  @androidx.compose.Immutable public abstract sealed class FontFamily {
     method public final boolean getCanLoadSynchronously();
     field public static final androidx.ui.text.font.FontFamily.Companion! Companion;
   }
@@ -716,22 +716,22 @@
   }
 
   public final class FontFamilyKt {
-    method public static androidx.ui.text.font.FontListFontFamily fontFamily(java.util.List<? extends androidx.ui.text.font.Font> fonts);
-    method public static androidx.ui.text.font.FontListFontFamily fontFamily(androidx.ui.text.font.Font... fonts);
+    method @androidx.compose.Stable public static androidx.ui.text.font.FontListFontFamily fontFamily(java.util.List<? extends androidx.ui.text.font.Font> fonts);
+    method @androidx.compose.Stable public static androidx.ui.text.font.FontListFontFamily fontFamily(androidx.ui.text.font.Font... fonts);
     method public static androidx.ui.text.font.LoadedFontFamily fontFamily(androidx.ui.text.Typeface typeface);
   }
 
   public final class FontKt {
-    method public static androidx.ui.text.font.FontListFontFamily asFontFamily(androidx.ui.text.font.Font);
-    method public static androidx.ui.text.font.Font font(int resId, androidx.ui.text.font.FontWeight weight = FontWeight.Normal, androidx.ui.text.font.FontStyle style = androidx.ui.text.font.FontStyle.Normal);
+    method @androidx.compose.Stable public static androidx.ui.text.font.FontListFontFamily asFontFamily(androidx.ui.text.font.Font);
+    method @androidx.compose.Stable public static androidx.ui.text.font.Font font(int resId, androidx.ui.text.font.FontWeight weight = FontWeight.Normal, androidx.ui.text.font.FontStyle style = androidx.ui.text.font.FontStyle.Normal);
   }
 
-  public final class FontListFontFamily extends androidx.ui.text.font.FileBasedFontFamily implements kotlin.jvm.internal.markers.KMappedMarker java.util.List<androidx.ui.text.font.Font> {
+  @androidx.compose.Immutable public final class FontListFontFamily extends androidx.ui.text.font.FileBasedFontFamily implements kotlin.jvm.internal.markers.KMappedMarker java.util.List<androidx.ui.text.font.Font> {
     ctor public FontListFontFamily(java.util.List<? extends androidx.ui.text.font.Font> fonts);
     method public java.util.List<androidx.ui.text.font.Font> component1();
     method public boolean contains(androidx.ui.text.font.Font element);
     method public boolean containsAll(java.util.Collection<?> elements);
-    method public androidx.ui.text.font.FontListFontFamily copy(java.util.List<? extends androidx.ui.text.font.Font> fonts);
+    method @androidx.compose.Immutable public androidx.ui.text.font.FontListFontFamily copy(java.util.List<? extends androidx.ui.text.font.Font> fonts);
     method public androidx.ui.text.font.Font get(int index);
     method public java.util.List<androidx.ui.text.font.Font> getFonts();
     method public int getSize();
@@ -756,11 +756,11 @@
     enum_constant public static final androidx.ui.text.font.FontSynthesis Weight;
   }
 
-  public final class FontWeight implements java.lang.Comparable<androidx.ui.text.font.FontWeight> {
+  @androidx.compose.Immutable public final class FontWeight implements java.lang.Comparable<androidx.ui.text.font.FontWeight> {
     ctor public FontWeight(int weight);
     method public int compareTo(androidx.ui.text.font.FontWeight other);
     method public int component1();
-    method public androidx.ui.text.font.FontWeight copy(int weight);
+    method @androidx.compose.Immutable public androidx.ui.text.font.FontWeight copy(int weight);
     method public int getWeight();
     field public static final androidx.ui.text.font.FontWeight.Companion! Companion;
   }
@@ -808,7 +808,7 @@
     method public static androidx.ui.text.font.FontWeight lerp(androidx.ui.text.font.FontWeight start, androidx.ui.text.font.FontWeight stop, float fraction);
   }
 
-  public final class GenericFontFamily extends androidx.ui.text.font.SystemFontFamily {
+  @androidx.compose.Immutable public final class GenericFontFamily extends androidx.ui.text.font.SystemFontFamily {
     method public String getName();
   }
 
@@ -850,14 +850,14 @@
 
 package androidx.ui.text.style {
 
-  public final inline class BaselineShift {
+  @androidx.compose.Immutable public final inline class BaselineShift {
     ctor public BaselineShift();
     method public static float constructor-impl(float multiplier);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getMultiplier();
-    method public static inline int hashCode-impl(float p);
-    method public static inline String! toString-impl(float p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Immutable public static inline String! toString-impl(float p);
     field public static final androidx.ui.text.style.BaselineShift.Companion! Companion;
   }
 
@@ -871,7 +871,7 @@
   }
 
   public final class BaselineShiftKt {
-    method public static float lerp-7csQwvo(float start, float stop, float fraction);
+    method @androidx.compose.Stable public static float lerp-7csQwvo(float start, float stop, float fraction);
   }
 
   public enum TextAlign {
@@ -883,10 +883,10 @@
     enum_constant public static final androidx.ui.text.style.TextAlign Start;
   }
 
-  public final class TextDecoration {
+  @androidx.compose.Immutable public final class TextDecoration {
     method public int component1();
     method public boolean contains(androidx.ui.text.style.TextDecoration other);
-    method public androidx.ui.text.style.TextDecoration copy(int mask);
+    method @androidx.compose.Immutable public androidx.ui.text.style.TextDecoration copy(int mask);
     method public int getMask();
     field public static final androidx.ui.text.style.TextDecoration.Companion! Companion;
   }
@@ -913,12 +913,12 @@
     enum_constant public static final androidx.ui.text.style.TextDirectionAlgorithm ForceRtl;
   }
 
-  public final class TextGeometricTransform {
+  @androidx.compose.Immutable public final class TextGeometricTransform {
     ctor public TextGeometricTransform(float scaleX, float skewX);
     ctor public TextGeometricTransform();
     method public float component1();
     method public float component2();
-    method public androidx.ui.text.style.TextGeometricTransform copy(float scaleX, float skewX);
+    method @androidx.compose.Immutable public androidx.ui.text.style.TextGeometricTransform copy(float scaleX, float skewX);
     method public float getScaleX();
     method public float getSkewX();
     field public static final androidx.ui.text.style.TextGeometricTransform.Companion! Companion;
@@ -931,10 +931,10 @@
     method public static androidx.ui.text.style.TextGeometricTransform lerp(androidx.ui.text.style.TextGeometricTransform start, androidx.ui.text.style.TextGeometricTransform stop, float fraction);
   }
 
-  public final class TextIndent {
+  @androidx.compose.Immutable public final class TextIndent {
     method public long component1();
     method public long component2();
-    method public androidx.ui.text.style.TextIndent copy-gL_aCS0(long firstLine, long restLine);
+    method @androidx.compose.Immutable public androidx.ui.text.style.TextIndent copy-gL_aCS0(long firstLine, long restLine);
     method public long getFirstLine();
     method public long getRestLine();
     field public static final androidx.ui.text.style.TextIndent.Companion! Companion;
diff --git a/ui/ui-text-core/api/public_plus_experimental_current.txt b/ui/ui-text-core/api/public_plus_experimental_current.txt
index 903302b..1df0204 100644
--- a/ui/ui-text-core/api/public_plus_experimental_current.txt
+++ b/ui/ui-text-core/api/public_plus_experimental_current.txt
@@ -50,13 +50,13 @@
     field public static final int NOWHERE = -1; // 0xffffffff
   }
 
-  public final class EditorValue {
+  @androidx.compose.Immutable public final class EditorValue {
     ctor public EditorValue(String text, androidx.ui.text.TextRange selection, androidx.ui.text.TextRange? composition);
     ctor public EditorValue();
     method public String component1();
     method public androidx.ui.text.TextRange component2();
     method public androidx.ui.text.TextRange? component3();
-    method public androidx.ui.input.EditorValue copy(String text, androidx.ui.text.TextRange selection, androidx.ui.text.TextRange? composition);
+    method @androidx.compose.Immutable public androidx.ui.input.EditorValue copy(String text, androidx.ui.text.TextRange selection, androidx.ui.text.TextRange? composition);
     method public androidx.ui.text.TextRange? getComposition();
     method public String getSelectedText();
     method public androidx.ui.text.TextRange getSelection();
@@ -186,7 +186,7 @@
     method public androidx.ui.text.AnnotatedString getTransformedText();
   }
 
-  public interface VisualTransformation {
+  @androidx.compose.Immutable public interface VisualTransformation {
     method public androidx.ui.input.TransformedText filter(androidx.ui.text.AnnotatedString text);
     field public static final androidx.ui.input.VisualTransformation.Companion! Companion;
   }
@@ -200,17 +200,17 @@
 
 package androidx.ui.text {
 
-  public final class AnnotatedString {
+  @androidx.compose.Immutable public final class AnnotatedString {
     ctor public AnnotatedString(String text, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> spanStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> paragraphStyles);
     method public String component1();
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> component2();
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> component3();
-    method public androidx.ui.text.AnnotatedString copy(String text, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> spanStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> paragraphStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<java.lang.String>> annotations);
+    method @androidx.compose.Immutable public androidx.ui.text.AnnotatedString copy(String text, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> spanStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> paragraphStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<java.lang.String>> annotations);
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> getParagraphStyles();
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> getSpanStyles();
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<java.lang.String>> getStringAnnotations(String tag, int start, int end);
     method public String getText();
-    method public operator androidx.ui.text.AnnotatedString plus(androidx.ui.text.AnnotatedString other);
+    method @androidx.compose.Stable public operator androidx.ui.text.AnnotatedString plus(androidx.ui.text.AnnotatedString other);
   }
 
   public static final class AnnotatedString.Builder {
@@ -263,7 +263,7 @@
     method public static inline <R> R withStyle(androidx.ui.text.AnnotatedString.Builder, androidx.ui.text.ParagraphStyle style, kotlin.jvm.functions.Function1<? super androidx.ui.text.AnnotatedString.Builder,? extends R> block);
   }
 
-  public final class Locale {
+  @androidx.compose.Immutable public final class Locale {
     ctor public Locale(String languageTag);
     method public String getLanguage();
     method public String getRegion();
@@ -280,14 +280,14 @@
     property public final androidx.ui.text.Locale current;
   }
 
-  public final class LocaleList implements java.util.Collection<androidx.ui.text.Locale> kotlin.jvm.internal.markers.KMappedMarker {
+  @androidx.compose.Immutable public final class LocaleList implements java.util.Collection<androidx.ui.text.Locale> kotlin.jvm.internal.markers.KMappedMarker {
     ctor public LocaleList(java.util.List<androidx.ui.text.Locale> localeList);
     ctor public LocaleList(String languageTags);
     ctor public LocaleList(androidx.ui.text.Locale... locales);
     method public java.util.List<androidx.ui.text.Locale> component1();
     method public operator boolean contains(androidx.ui.text.Locale element);
     method public boolean containsAll(java.util.Collection<?> elements);
-    method public androidx.ui.text.LocaleList copy(java.util.List<androidx.ui.text.Locale> localeList);
+    method @androidx.compose.Immutable public androidx.ui.text.LocaleList copy(java.util.List<androidx.ui.text.Locale> localeList);
     method public operator androidx.ui.text.Locale get(int i);
     method public java.util.List<androidx.ui.text.Locale> getLocaleList();
     method public int getSize();
@@ -427,29 +427,29 @@
     method public static androidx.ui.text.Paragraph Paragraph(androidx.ui.text.ParagraphIntrinsics paragraphIntrinsics, int maxLines = 2147483647, boolean ellipsis = false, androidx.ui.text.ParagraphConstraints constraints);
   }
 
-  public final class ParagraphStyle {
+  @androidx.compose.Immutable public final class ParagraphStyle {
     method public androidx.ui.text.style.TextAlign? component1();
     method public androidx.ui.text.style.TextDirectionAlgorithm? component2();
     method public long component3();
     method public androidx.ui.text.style.TextIndent? component4();
-    method public androidx.ui.text.ParagraphStyle copy-ffQossE(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, long lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    method @androidx.compose.Immutable public androidx.ui.text.ParagraphStyle copy-ffQossE(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, long lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     method public long getLineHeight();
     method public androidx.ui.text.style.TextAlign? getTextAlign();
     method public androidx.ui.text.style.TextDirectionAlgorithm? getTextDirectionAlgorithm();
     method public androidx.ui.text.style.TextIndent? getTextIndent();
-    method public androidx.ui.text.ParagraphStyle merge(androidx.ui.text.ParagraphStyle? other = null);
-    method public operator androidx.ui.text.ParagraphStyle plus(androidx.ui.text.ParagraphStyle other);
+    method @androidx.compose.Stable public androidx.ui.text.ParagraphStyle merge(androidx.ui.text.ParagraphStyle? other = null);
+    method @androidx.compose.Stable public operator androidx.ui.text.ParagraphStyle plus(androidx.ui.text.ParagraphStyle other);
   }
 
   public final class ParagraphStyleKt {
-    method public static androidx.ui.text.ParagraphStyle lerp(androidx.ui.text.ParagraphStyle start, androidx.ui.text.ParagraphStyle stop, float fraction);
+    method @androidx.compose.Stable public static androidx.ui.text.ParagraphStyle lerp(androidx.ui.text.ParagraphStyle start, androidx.ui.text.ParagraphStyle stop, float fraction);
   }
 
-  public final class Placeholder {
+  @androidx.compose.Immutable public final class Placeholder {
     method public long component1();
     method public long component2();
     method public androidx.ui.text.PlaceholderVerticalAlign component3();
-    method public androidx.ui.text.Placeholder copy-eLqjHCw(long width, long height, androidx.ui.text.PlaceholderVerticalAlign placeholderVerticalAlign);
+    method @androidx.compose.Immutable public androidx.ui.text.Placeholder copy-eLqjHCw(long width, long height, androidx.ui.text.PlaceholderVerticalAlign placeholderVerticalAlign);
     method public long getHeight();
     method public androidx.ui.text.PlaceholderVerticalAlign getPlaceholderVerticalAlign();
     method public long getWidth();
@@ -472,7 +472,7 @@
     method public void showSoftwareKeyboard();
   }
 
-  public final class SpanStyle {
+  @androidx.compose.Immutable public final class SpanStyle {
     method public long component1();
     method public androidx.ui.text.style.TextGeometricTransform? component10();
     method public androidx.ui.text.LocaleList? component11();
@@ -487,7 +487,7 @@
     method public String? component7();
     method public long component8();
     method public androidx.ui.text.style.BaselineShift? component9();
-    method public androidx.ui.text.SpanStyle copy-kRoccyE(long color, long fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, long letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, long background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
+    method @androidx.compose.Immutable public androidx.ui.text.SpanStyle copy-kRoccyE(long color, long fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, long letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, long background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
     method public long getBackground();
     method public androidx.ui.text.style.BaselineShift? getBaselineShift();
     method public long getColor();
@@ -502,8 +502,8 @@
     method public androidx.ui.graphics.Shadow? getShadow();
     method public androidx.ui.text.style.TextDecoration? getTextDecoration();
     method public androidx.ui.text.style.TextGeometricTransform? getTextGeometricTransform();
-    method public androidx.ui.text.SpanStyle merge(androidx.ui.text.SpanStyle? other = null);
-    method public operator androidx.ui.text.SpanStyle plus(androidx.ui.text.SpanStyle other);
+    method @androidx.compose.Stable public androidx.ui.text.SpanStyle merge(androidx.ui.text.SpanStyle? other = null);
+    method @androidx.compose.Stable public operator androidx.ui.text.SpanStyle plus(androidx.ui.text.SpanStyle other);
   }
 
   public final class SpanStyleKt {
@@ -587,13 +587,13 @@
     field public static final androidx.ui.text.TextPainter! INSTANCE;
   }
 
-  public final class TextRange {
+  @androidx.compose.Immutable public final class TextRange {
     ctor public TextRange(int start, int end);
     method public int component1();
     method public int component2();
     method public operator boolean contains(androidx.ui.text.TextRange other);
     method public operator boolean contains(int offset);
-    method public androidx.ui.text.TextRange copy(int start, int end);
+    method @androidx.compose.Immutable public androidx.ui.text.TextRange copy(int start, int end);
     method public boolean getCollapsed();
     method public int getEnd();
     method public int getLength();
@@ -611,7 +611,7 @@
     method public static String substring(CharSequence, androidx.ui.text.TextRange range);
   }
 
-  public final class TextStyle {
+  @androidx.compose.Immutable public final class TextStyle {
     method public long component1();
     method public androidx.ui.text.style.TextGeometricTransform? component10();
     method public androidx.ui.text.LocaleList? component11();
@@ -630,7 +630,7 @@
     method public String? component7();
     method public long component8();
     method public androidx.ui.text.style.BaselineShift? component9();
-    method public androidx.ui.text.TextStyle copy-4Bo2vQE(long color, long fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, long letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, long background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, long lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    method @androidx.compose.Immutable public androidx.ui.text.TextStyle copy-4Bo2vQE(long color, long fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, long letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, long background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, long lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     method public long getBackground();
     method public androidx.ui.text.style.BaselineShift? getBaselineShift();
     method public long getColor();
@@ -649,14 +649,14 @@
     method public androidx.ui.text.style.TextDirectionAlgorithm? getTextDirectionAlgorithm();
     method public androidx.ui.text.style.TextGeometricTransform? getTextGeometricTransform();
     method public androidx.ui.text.style.TextIndent? getTextIndent();
-    method public androidx.ui.text.TextStyle merge(androidx.ui.text.TextStyle? other = null);
-    method public androidx.ui.text.TextStyle merge(androidx.ui.text.SpanStyle other);
-    method public androidx.ui.text.TextStyle merge(androidx.ui.text.ParagraphStyle other);
-    method public operator androidx.ui.text.TextStyle plus(androidx.ui.text.TextStyle other);
-    method public operator androidx.ui.text.TextStyle plus(androidx.ui.text.ParagraphStyle other);
-    method public operator androidx.ui.text.TextStyle plus(androidx.ui.text.SpanStyle other);
-    method public androidx.ui.text.ParagraphStyle toParagraphStyle();
-    method public androidx.ui.text.SpanStyle toSpanStyle();
+    method @androidx.compose.Stable public androidx.ui.text.TextStyle merge(androidx.ui.text.TextStyle? other = null);
+    method @androidx.compose.Stable public androidx.ui.text.TextStyle merge(androidx.ui.text.SpanStyle other);
+    method @androidx.compose.Stable public androidx.ui.text.TextStyle merge(androidx.ui.text.ParagraphStyle other);
+    method @androidx.compose.Stable public operator androidx.ui.text.TextStyle plus(androidx.ui.text.TextStyle other);
+    method @androidx.compose.Stable public operator androidx.ui.text.TextStyle plus(androidx.ui.text.ParagraphStyle other);
+    method @androidx.compose.Stable public operator androidx.ui.text.TextStyle plus(androidx.ui.text.SpanStyle other);
+    method @androidx.compose.Stable public androidx.ui.text.ParagraphStyle toParagraphStyle();
+    method @androidx.compose.Stable public androidx.ui.text.SpanStyle toSpanStyle();
     field public static final androidx.ui.text.TextStyle.Companion! Companion;
   }
 
@@ -686,7 +686,7 @@
   public abstract sealed class FileBasedFontFamily extends androidx.ui.text.font.FontFamily {
   }
 
-  public interface Font {
+  @androidx.compose.Immutable public interface Font {
     method public androidx.ui.text.font.FontStyle getStyle();
     method public androidx.ui.text.font.FontWeight getWeight();
     property public abstract androidx.ui.text.font.FontStyle style;
@@ -697,7 +697,7 @@
     method public Object load(androidx.ui.text.font.Font font);
   }
 
-  public abstract sealed class FontFamily {
+  @androidx.compose.Immutable public abstract sealed class FontFamily {
     method public final boolean getCanLoadSynchronously();
     field public static final androidx.ui.text.font.FontFamily.Companion! Companion;
   }
@@ -716,22 +716,22 @@
   }
 
   public final class FontFamilyKt {
-    method public static androidx.ui.text.font.FontListFontFamily fontFamily(java.util.List<? extends androidx.ui.text.font.Font> fonts);
-    method public static androidx.ui.text.font.FontListFontFamily fontFamily(androidx.ui.text.font.Font... fonts);
+    method @androidx.compose.Stable public static androidx.ui.text.font.FontListFontFamily fontFamily(java.util.List<? extends androidx.ui.text.font.Font> fonts);
+    method @androidx.compose.Stable public static androidx.ui.text.font.FontListFontFamily fontFamily(androidx.ui.text.font.Font... fonts);
     method public static androidx.ui.text.font.LoadedFontFamily fontFamily(androidx.ui.text.Typeface typeface);
   }
 
   public final class FontKt {
-    method public static androidx.ui.text.font.FontListFontFamily asFontFamily(androidx.ui.text.font.Font);
-    method public static androidx.ui.text.font.Font font(int resId, androidx.ui.text.font.FontWeight weight = FontWeight.Normal, androidx.ui.text.font.FontStyle style = androidx.ui.text.font.FontStyle.Normal);
+    method @androidx.compose.Stable public static androidx.ui.text.font.FontListFontFamily asFontFamily(androidx.ui.text.font.Font);
+    method @androidx.compose.Stable public static androidx.ui.text.font.Font font(int resId, androidx.ui.text.font.FontWeight weight = FontWeight.Normal, androidx.ui.text.font.FontStyle style = androidx.ui.text.font.FontStyle.Normal);
   }
 
-  public final class FontListFontFamily extends androidx.ui.text.font.FileBasedFontFamily implements kotlin.jvm.internal.markers.KMappedMarker java.util.List<androidx.ui.text.font.Font> {
+  @androidx.compose.Immutable public final class FontListFontFamily extends androidx.ui.text.font.FileBasedFontFamily implements kotlin.jvm.internal.markers.KMappedMarker java.util.List<androidx.ui.text.font.Font> {
     ctor public FontListFontFamily(java.util.List<? extends androidx.ui.text.font.Font> fonts);
     method public java.util.List<androidx.ui.text.font.Font> component1();
     method public boolean contains(androidx.ui.text.font.Font element);
     method public boolean containsAll(java.util.Collection<?> elements);
-    method public androidx.ui.text.font.FontListFontFamily copy(java.util.List<? extends androidx.ui.text.font.Font> fonts);
+    method @androidx.compose.Immutable public androidx.ui.text.font.FontListFontFamily copy(java.util.List<? extends androidx.ui.text.font.Font> fonts);
     method public androidx.ui.text.font.Font get(int index);
     method public java.util.List<androidx.ui.text.font.Font> getFonts();
     method public int getSize();
@@ -756,11 +756,11 @@
     enum_constant public static final androidx.ui.text.font.FontSynthesis Weight;
   }
 
-  public final class FontWeight implements java.lang.Comparable<androidx.ui.text.font.FontWeight> {
+  @androidx.compose.Immutable public final class FontWeight implements java.lang.Comparable<androidx.ui.text.font.FontWeight> {
     ctor public FontWeight(int weight);
     method public int compareTo(androidx.ui.text.font.FontWeight other);
     method public int component1();
-    method public androidx.ui.text.font.FontWeight copy(int weight);
+    method @androidx.compose.Immutable public androidx.ui.text.font.FontWeight copy(int weight);
     method public int getWeight();
     field public static final androidx.ui.text.font.FontWeight.Companion! Companion;
   }
@@ -808,7 +808,7 @@
     method public static androidx.ui.text.font.FontWeight lerp(androidx.ui.text.font.FontWeight start, androidx.ui.text.font.FontWeight stop, float fraction);
   }
 
-  public final class GenericFontFamily extends androidx.ui.text.font.SystemFontFamily {
+  @androidx.compose.Immutable public final class GenericFontFamily extends androidx.ui.text.font.SystemFontFamily {
     method public String getName();
   }
 
@@ -850,14 +850,14 @@
 
 package androidx.ui.text.style {
 
-  public final inline class BaselineShift {
+  @androidx.compose.Immutable public final inline class BaselineShift {
     ctor public BaselineShift();
     method public static float constructor-impl(float multiplier);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getMultiplier();
-    method public static inline int hashCode-impl(float p);
-    method public static inline String! toString-impl(float p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Immutable public static inline String! toString-impl(float p);
     field public static final androidx.ui.text.style.BaselineShift.Companion! Companion;
   }
 
@@ -871,7 +871,7 @@
   }
 
   public final class BaselineShiftKt {
-    method public static float lerp-7csQwvo(float start, float stop, float fraction);
+    method @androidx.compose.Stable public static float lerp-7csQwvo(float start, float stop, float fraction);
   }
 
   public enum TextAlign {
@@ -883,10 +883,10 @@
     enum_constant public static final androidx.ui.text.style.TextAlign Start;
   }
 
-  public final class TextDecoration {
+  @androidx.compose.Immutable public final class TextDecoration {
     method public int component1();
     method public boolean contains(androidx.ui.text.style.TextDecoration other);
-    method public androidx.ui.text.style.TextDecoration copy(int mask);
+    method @androidx.compose.Immutable public androidx.ui.text.style.TextDecoration copy(int mask);
     method public int getMask();
     field public static final androidx.ui.text.style.TextDecoration.Companion! Companion;
   }
@@ -913,12 +913,12 @@
     enum_constant public static final androidx.ui.text.style.TextDirectionAlgorithm ForceRtl;
   }
 
-  public final class TextGeometricTransform {
+  @androidx.compose.Immutable public final class TextGeometricTransform {
     ctor public TextGeometricTransform(float scaleX, float skewX);
     ctor public TextGeometricTransform();
     method public float component1();
     method public float component2();
-    method public androidx.ui.text.style.TextGeometricTransform copy(float scaleX, float skewX);
+    method @androidx.compose.Immutable public androidx.ui.text.style.TextGeometricTransform copy(float scaleX, float skewX);
     method public float getScaleX();
     method public float getSkewX();
     field public static final androidx.ui.text.style.TextGeometricTransform.Companion! Companion;
@@ -931,10 +931,10 @@
     method public static androidx.ui.text.style.TextGeometricTransform lerp(androidx.ui.text.style.TextGeometricTransform start, androidx.ui.text.style.TextGeometricTransform stop, float fraction);
   }
 
-  public final class TextIndent {
+  @androidx.compose.Immutable public final class TextIndent {
     method public long component1();
     method public long component2();
-    method public androidx.ui.text.style.TextIndent copy-gL_aCS0(long firstLine, long restLine);
+    method @androidx.compose.Immutable public androidx.ui.text.style.TextIndent copy-gL_aCS0(long firstLine, long restLine);
     method public long getFirstLine();
     method public long getRestLine();
     field public static final androidx.ui.text.style.TextIndent.Companion! Companion;
diff --git a/ui/ui-text-core/api/restricted_0.1.0-dev14.txt b/ui/ui-text-core/api/restricted_0.1.0-dev14.txt
index 7247652f..db335fb 100644
--- a/ui/ui-text-core/api/restricted_0.1.0-dev14.txt
+++ b/ui/ui-text-core/api/restricted_0.1.0-dev14.txt
@@ -55,13 +55,13 @@
     field public static final int NOWHERE = -1; // 0xffffffff
   }
 
-  public final class EditorValue {
+  @androidx.compose.Immutable public final class EditorValue {
     ctor public EditorValue(String text, androidx.ui.text.TextRange selection, androidx.ui.text.TextRange? composition);
     ctor public EditorValue();
     method public String component1();
     method public androidx.ui.text.TextRange component2();
     method public androidx.ui.text.TextRange? component3();
-    method public androidx.ui.input.EditorValue copy(String text, androidx.ui.text.TextRange selection, androidx.ui.text.TextRange? composition);
+    method @androidx.compose.Immutable public androidx.ui.input.EditorValue copy(String text, androidx.ui.text.TextRange selection, androidx.ui.text.TextRange? composition);
     method public androidx.ui.text.TextRange? getComposition();
     method public String getSelectedText();
     method public androidx.ui.text.TextRange getSelection();
@@ -191,7 +191,7 @@
     method public androidx.ui.text.AnnotatedString getTransformedText();
   }
 
-  public interface VisualTransformation {
+  @androidx.compose.Immutable public interface VisualTransformation {
     method public androidx.ui.input.TransformedText filter(androidx.ui.text.AnnotatedString text);
     field public static final androidx.ui.input.VisualTransformation.Companion! Companion;
   }
@@ -205,17 +205,17 @@
 
 package androidx.ui.text {
 
-  public final class AnnotatedString {
+  @androidx.compose.Immutable public final class AnnotatedString {
     ctor public AnnotatedString(String text, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> spanStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> paragraphStyles);
     method public String component1();
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> component2();
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> component3();
-    method public androidx.ui.text.AnnotatedString copy(String text, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> spanStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> paragraphStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<java.lang.String>> annotations);
+    method @androidx.compose.Immutable public androidx.ui.text.AnnotatedString copy(String text, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> spanStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> paragraphStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<java.lang.String>> annotations);
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> getParagraphStyles();
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> getSpanStyles();
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<java.lang.String>> getStringAnnotations(String tag, int start, int end);
     method public String getText();
-    method public operator androidx.ui.text.AnnotatedString plus(androidx.ui.text.AnnotatedString other);
+    method @androidx.compose.Stable public operator androidx.ui.text.AnnotatedString plus(androidx.ui.text.AnnotatedString other);
   }
 
   public static final class AnnotatedString.Builder {
@@ -268,7 +268,7 @@
     method public static inline <R> R withStyle(androidx.ui.text.AnnotatedString.Builder, androidx.ui.text.ParagraphStyle style, kotlin.jvm.functions.Function1<? super androidx.ui.text.AnnotatedString.Builder,? extends R> block);
   }
 
-  public final class Locale {
+  @androidx.compose.Immutable public final class Locale {
     ctor public Locale(String languageTag);
     method public String getLanguage();
     method public String getRegion();
@@ -285,14 +285,14 @@
     property public final androidx.ui.text.Locale current;
   }
 
-  public final class LocaleList implements java.util.Collection<androidx.ui.text.Locale> kotlin.jvm.internal.markers.KMappedMarker {
+  @androidx.compose.Immutable public final class LocaleList implements java.util.Collection<androidx.ui.text.Locale> kotlin.jvm.internal.markers.KMappedMarker {
     ctor public LocaleList(java.util.List<androidx.ui.text.Locale> localeList);
     ctor public LocaleList(String languageTags);
     ctor public LocaleList(androidx.ui.text.Locale... locales);
     method public java.util.List<androidx.ui.text.Locale> component1();
     method public operator boolean contains(androidx.ui.text.Locale element);
     method public boolean containsAll(java.util.Collection<?> elements);
-    method public androidx.ui.text.LocaleList copy(java.util.List<androidx.ui.text.Locale> localeList);
+    method @androidx.compose.Immutable public androidx.ui.text.LocaleList copy(java.util.List<androidx.ui.text.Locale> localeList);
     method public operator androidx.ui.text.Locale get(int i);
     method public java.util.List<androidx.ui.text.Locale> getLocaleList();
     method public int getSize();
@@ -432,29 +432,29 @@
     method public static androidx.ui.text.Paragraph Paragraph(androidx.ui.text.ParagraphIntrinsics paragraphIntrinsics, int maxLines = 2147483647, boolean ellipsis = false, androidx.ui.text.ParagraphConstraints constraints);
   }
 
-  public final class ParagraphStyle {
+  @androidx.compose.Immutable public final class ParagraphStyle {
     method public androidx.ui.text.style.TextAlign? component1();
     method public androidx.ui.text.style.TextDirectionAlgorithm? component2();
     method public long component3();
     method public androidx.ui.text.style.TextIndent? component4();
-    method public androidx.ui.text.ParagraphStyle copy-ffQossE(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, long lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    method @androidx.compose.Immutable public androidx.ui.text.ParagraphStyle copy-ffQossE(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, long lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     method public long getLineHeight();
     method public androidx.ui.text.style.TextAlign? getTextAlign();
     method public androidx.ui.text.style.TextDirectionAlgorithm? getTextDirectionAlgorithm();
     method public androidx.ui.text.style.TextIndent? getTextIndent();
-    method public androidx.ui.text.ParagraphStyle merge(androidx.ui.text.ParagraphStyle? other = null);
-    method public operator androidx.ui.text.ParagraphStyle plus(androidx.ui.text.ParagraphStyle other);
+    method @androidx.compose.Stable public androidx.ui.text.ParagraphStyle merge(androidx.ui.text.ParagraphStyle? other = null);
+    method @androidx.compose.Stable public operator androidx.ui.text.ParagraphStyle plus(androidx.ui.text.ParagraphStyle other);
   }
 
   public final class ParagraphStyleKt {
-    method public static androidx.ui.text.ParagraphStyle lerp(androidx.ui.text.ParagraphStyle start, androidx.ui.text.ParagraphStyle stop, float fraction);
+    method @androidx.compose.Stable public static androidx.ui.text.ParagraphStyle lerp(androidx.ui.text.ParagraphStyle start, androidx.ui.text.ParagraphStyle stop, float fraction);
   }
 
-  public final class Placeholder {
+  @androidx.compose.Immutable public final class Placeholder {
     method public long component1();
     method public long component2();
     method public androidx.ui.text.PlaceholderVerticalAlign component3();
-    method public androidx.ui.text.Placeholder copy-eLqjHCw(long width, long height, androidx.ui.text.PlaceholderVerticalAlign placeholderVerticalAlign);
+    method @androidx.compose.Immutable public androidx.ui.text.Placeholder copy-eLqjHCw(long width, long height, androidx.ui.text.PlaceholderVerticalAlign placeholderVerticalAlign);
     method public long getHeight();
     method public androidx.ui.text.PlaceholderVerticalAlign getPlaceholderVerticalAlign();
     method public long getWidth();
@@ -477,7 +477,7 @@
     method public void showSoftwareKeyboard();
   }
 
-  public final class SpanStyle {
+  @androidx.compose.Immutable public final class SpanStyle {
     method public long component1();
     method public androidx.ui.text.style.TextGeometricTransform? component10();
     method public androidx.ui.text.LocaleList? component11();
@@ -492,7 +492,7 @@
     method public String? component7();
     method public long component8();
     method public androidx.ui.text.style.BaselineShift? component9();
-    method public androidx.ui.text.SpanStyle copy-kRoccyE(long color, long fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, long letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, long background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
+    method @androidx.compose.Immutable public androidx.ui.text.SpanStyle copy-kRoccyE(long color, long fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, long letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, long background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
     method public long getBackground();
     method public androidx.ui.text.style.BaselineShift? getBaselineShift();
     method public long getColor();
@@ -507,8 +507,8 @@
     method public androidx.ui.graphics.Shadow? getShadow();
     method public androidx.ui.text.style.TextDecoration? getTextDecoration();
     method public androidx.ui.text.style.TextGeometricTransform? getTextGeometricTransform();
-    method public androidx.ui.text.SpanStyle merge(androidx.ui.text.SpanStyle? other = null);
-    method public operator androidx.ui.text.SpanStyle plus(androidx.ui.text.SpanStyle other);
+    method @androidx.compose.Stable public androidx.ui.text.SpanStyle merge(androidx.ui.text.SpanStyle? other = null);
+    method @androidx.compose.Stable public operator androidx.ui.text.SpanStyle plus(androidx.ui.text.SpanStyle other);
   }
 
   public final class SpanStyleKt {
@@ -616,13 +616,13 @@
     field public static final androidx.ui.text.TextPainter! INSTANCE;
   }
 
-  public final class TextRange {
+  @androidx.compose.Immutable public final class TextRange {
     ctor public TextRange(int start, int end);
     method public int component1();
     method public int component2();
     method public operator boolean contains(androidx.ui.text.TextRange other);
     method public operator boolean contains(int offset);
-    method public androidx.ui.text.TextRange copy(int start, int end);
+    method @androidx.compose.Immutable public androidx.ui.text.TextRange copy(int start, int end);
     method public boolean getCollapsed();
     method public int getEnd();
     method public int getLength();
@@ -640,7 +640,7 @@
     method public static String substring(CharSequence, androidx.ui.text.TextRange range);
   }
 
-  public final class TextStyle {
+  @androidx.compose.Immutable public final class TextStyle {
     method public long component1();
     method public androidx.ui.text.style.TextGeometricTransform? component10();
     method public androidx.ui.text.LocaleList? component11();
@@ -659,7 +659,7 @@
     method public String? component7();
     method public long component8();
     method public androidx.ui.text.style.BaselineShift? component9();
-    method public androidx.ui.text.TextStyle copy-4Bo2vQE(long color, long fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, long letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, long background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, long lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    method @androidx.compose.Immutable public androidx.ui.text.TextStyle copy-4Bo2vQE(long color, long fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, long letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, long background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, long lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     method public long getBackground();
     method public androidx.ui.text.style.BaselineShift? getBaselineShift();
     method public long getColor();
@@ -678,14 +678,14 @@
     method public androidx.ui.text.style.TextDirectionAlgorithm? getTextDirectionAlgorithm();
     method public androidx.ui.text.style.TextGeometricTransform? getTextGeometricTransform();
     method public androidx.ui.text.style.TextIndent? getTextIndent();
-    method public androidx.ui.text.TextStyle merge(androidx.ui.text.TextStyle? other = null);
-    method public androidx.ui.text.TextStyle merge(androidx.ui.text.SpanStyle other);
-    method public androidx.ui.text.TextStyle merge(androidx.ui.text.ParagraphStyle other);
-    method public operator androidx.ui.text.TextStyle plus(androidx.ui.text.TextStyle other);
-    method public operator androidx.ui.text.TextStyle plus(androidx.ui.text.ParagraphStyle other);
-    method public operator androidx.ui.text.TextStyle plus(androidx.ui.text.SpanStyle other);
-    method public androidx.ui.text.ParagraphStyle toParagraphStyle();
-    method public androidx.ui.text.SpanStyle toSpanStyle();
+    method @androidx.compose.Stable public androidx.ui.text.TextStyle merge(androidx.ui.text.TextStyle? other = null);
+    method @androidx.compose.Stable public androidx.ui.text.TextStyle merge(androidx.ui.text.SpanStyle other);
+    method @androidx.compose.Stable public androidx.ui.text.TextStyle merge(androidx.ui.text.ParagraphStyle other);
+    method @androidx.compose.Stable public operator androidx.ui.text.TextStyle plus(androidx.ui.text.TextStyle other);
+    method @androidx.compose.Stable public operator androidx.ui.text.TextStyle plus(androidx.ui.text.ParagraphStyle other);
+    method @androidx.compose.Stable public operator androidx.ui.text.TextStyle plus(androidx.ui.text.SpanStyle other);
+    method @androidx.compose.Stable public androidx.ui.text.ParagraphStyle toParagraphStyle();
+    method @androidx.compose.Stable public androidx.ui.text.SpanStyle toSpanStyle();
     field public static final androidx.ui.text.TextStyle.Companion! Companion;
   }
 
@@ -715,7 +715,7 @@
   public abstract sealed class FileBasedFontFamily extends androidx.ui.text.font.FontFamily {
   }
 
-  public interface Font {
+  @androidx.compose.Immutable public interface Font {
     method public androidx.ui.text.font.FontStyle getStyle();
     method public androidx.ui.text.font.FontWeight getWeight();
     property public abstract androidx.ui.text.font.FontStyle style;
@@ -726,7 +726,7 @@
     method public Object load(androidx.ui.text.font.Font font);
   }
 
-  public abstract sealed class FontFamily {
+  @androidx.compose.Immutable public abstract sealed class FontFamily {
     method public final boolean getCanLoadSynchronously();
     field public static final androidx.ui.text.font.FontFamily.Companion! Companion;
   }
@@ -745,22 +745,22 @@
   }
 
   public final class FontFamilyKt {
-    method public static androidx.ui.text.font.FontListFontFamily fontFamily(java.util.List<? extends androidx.ui.text.font.Font> fonts);
-    method public static androidx.ui.text.font.FontListFontFamily fontFamily(androidx.ui.text.font.Font... fonts);
+    method @androidx.compose.Stable public static androidx.ui.text.font.FontListFontFamily fontFamily(java.util.List<? extends androidx.ui.text.font.Font> fonts);
+    method @androidx.compose.Stable public static androidx.ui.text.font.FontListFontFamily fontFamily(androidx.ui.text.font.Font... fonts);
     method public static androidx.ui.text.font.LoadedFontFamily fontFamily(androidx.ui.text.Typeface typeface);
   }
 
   public final class FontKt {
-    method public static androidx.ui.text.font.FontListFontFamily asFontFamily(androidx.ui.text.font.Font);
-    method public static androidx.ui.text.font.Font font(int resId, androidx.ui.text.font.FontWeight weight = FontWeight.Normal, androidx.ui.text.font.FontStyle style = androidx.ui.text.font.FontStyle.Normal);
+    method @androidx.compose.Stable public static androidx.ui.text.font.FontListFontFamily asFontFamily(androidx.ui.text.font.Font);
+    method @androidx.compose.Stable public static androidx.ui.text.font.Font font(int resId, androidx.ui.text.font.FontWeight weight = FontWeight.Normal, androidx.ui.text.font.FontStyle style = androidx.ui.text.font.FontStyle.Normal);
   }
 
-  public final class FontListFontFamily extends androidx.ui.text.font.FileBasedFontFamily implements kotlin.jvm.internal.markers.KMappedMarker java.util.List<androidx.ui.text.font.Font> {
+  @androidx.compose.Immutable public final class FontListFontFamily extends androidx.ui.text.font.FileBasedFontFamily implements kotlin.jvm.internal.markers.KMappedMarker java.util.List<androidx.ui.text.font.Font> {
     ctor public FontListFontFamily(java.util.List<? extends androidx.ui.text.font.Font> fonts);
     method public java.util.List<androidx.ui.text.font.Font> component1();
     method public boolean contains(androidx.ui.text.font.Font element);
     method public boolean containsAll(java.util.Collection<?> elements);
-    method public androidx.ui.text.font.FontListFontFamily copy(java.util.List<? extends androidx.ui.text.font.Font> fonts);
+    method @androidx.compose.Immutable public androidx.ui.text.font.FontListFontFamily copy(java.util.List<? extends androidx.ui.text.font.Font> fonts);
     method public androidx.ui.text.font.Font get(int index);
     method public java.util.List<androidx.ui.text.font.Font> getFonts();
     method public int getSize();
@@ -785,11 +785,11 @@
     enum_constant public static final androidx.ui.text.font.FontSynthesis Weight;
   }
 
-  public final class FontWeight implements java.lang.Comparable<androidx.ui.text.font.FontWeight> {
+  @androidx.compose.Immutable public final class FontWeight implements java.lang.Comparable<androidx.ui.text.font.FontWeight> {
     ctor public FontWeight(int weight);
     method public int compareTo(androidx.ui.text.font.FontWeight other);
     method public int component1();
-    method public androidx.ui.text.font.FontWeight copy(int weight);
+    method @androidx.compose.Immutable public androidx.ui.text.font.FontWeight copy(int weight);
     method public int getWeight();
     field public static final androidx.ui.text.font.FontWeight.Companion! Companion;
   }
@@ -837,7 +837,7 @@
     method public static androidx.ui.text.font.FontWeight lerp(androidx.ui.text.font.FontWeight start, androidx.ui.text.font.FontWeight stop, float fraction);
   }
 
-  public final class GenericFontFamily extends androidx.ui.text.font.SystemFontFamily {
+  @androidx.compose.Immutable public final class GenericFontFamily extends androidx.ui.text.font.SystemFontFamily {
     method public String getName();
   }
 
@@ -879,14 +879,14 @@
 
 package androidx.ui.text.style {
 
-  public final inline class BaselineShift {
+  @androidx.compose.Immutable public final inline class BaselineShift {
     ctor public BaselineShift();
     method public static float constructor-impl(float multiplier);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getMultiplier();
-    method public static inline int hashCode-impl(float p);
-    method public static inline String! toString-impl(float p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Immutable public static inline String! toString-impl(float p);
     field public static final androidx.ui.text.style.BaselineShift.Companion! Companion;
   }
 
@@ -900,7 +900,7 @@
   }
 
   public final class BaselineShiftKt {
-    method public static float lerp-7csQwvo(float start, float stop, float fraction);
+    method @androidx.compose.Stable public static float lerp-7csQwvo(float start, float stop, float fraction);
   }
 
   public enum TextAlign {
@@ -912,10 +912,10 @@
     enum_constant public static final androidx.ui.text.style.TextAlign Start;
   }
 
-  public final class TextDecoration {
+  @androidx.compose.Immutable public final class TextDecoration {
     method public int component1();
     method public boolean contains(androidx.ui.text.style.TextDecoration other);
-    method public androidx.ui.text.style.TextDecoration copy(int mask);
+    method @androidx.compose.Immutable public androidx.ui.text.style.TextDecoration copy(int mask);
     method public int getMask();
     field public static final androidx.ui.text.style.TextDecoration.Companion! Companion;
   }
@@ -942,12 +942,12 @@
     enum_constant public static final androidx.ui.text.style.TextDirectionAlgorithm ForceRtl;
   }
 
-  public final class TextGeometricTransform {
+  @androidx.compose.Immutable public final class TextGeometricTransform {
     ctor public TextGeometricTransform(float scaleX, float skewX);
     ctor public TextGeometricTransform();
     method public float component1();
     method public float component2();
-    method public androidx.ui.text.style.TextGeometricTransform copy(float scaleX, float skewX);
+    method @androidx.compose.Immutable public androidx.ui.text.style.TextGeometricTransform copy(float scaleX, float skewX);
     method public float getScaleX();
     method public float getSkewX();
     field public static final androidx.ui.text.style.TextGeometricTransform.Companion! Companion;
@@ -960,10 +960,10 @@
     method public static androidx.ui.text.style.TextGeometricTransform lerp(androidx.ui.text.style.TextGeometricTransform start, androidx.ui.text.style.TextGeometricTransform stop, float fraction);
   }
 
-  public final class TextIndent {
+  @androidx.compose.Immutable public final class TextIndent {
     method public long component1();
     method public long component2();
-    method public androidx.ui.text.style.TextIndent copy-gL_aCS0(long firstLine, long restLine);
+    method @androidx.compose.Immutable public androidx.ui.text.style.TextIndent copy-gL_aCS0(long firstLine, long restLine);
     method public long getFirstLine();
     method public long getRestLine();
     field public static final androidx.ui.text.style.TextIndent.Companion! Companion;
diff --git a/ui/ui-text-core/api/restricted_current.txt b/ui/ui-text-core/api/restricted_current.txt
index 7247652f..db335fb 100644
--- a/ui/ui-text-core/api/restricted_current.txt
+++ b/ui/ui-text-core/api/restricted_current.txt
@@ -55,13 +55,13 @@
     field public static final int NOWHERE = -1; // 0xffffffff
   }
 
-  public final class EditorValue {
+  @androidx.compose.Immutable public final class EditorValue {
     ctor public EditorValue(String text, androidx.ui.text.TextRange selection, androidx.ui.text.TextRange? composition);
     ctor public EditorValue();
     method public String component1();
     method public androidx.ui.text.TextRange component2();
     method public androidx.ui.text.TextRange? component3();
-    method public androidx.ui.input.EditorValue copy(String text, androidx.ui.text.TextRange selection, androidx.ui.text.TextRange? composition);
+    method @androidx.compose.Immutable public androidx.ui.input.EditorValue copy(String text, androidx.ui.text.TextRange selection, androidx.ui.text.TextRange? composition);
     method public androidx.ui.text.TextRange? getComposition();
     method public String getSelectedText();
     method public androidx.ui.text.TextRange getSelection();
@@ -191,7 +191,7 @@
     method public androidx.ui.text.AnnotatedString getTransformedText();
   }
 
-  public interface VisualTransformation {
+  @androidx.compose.Immutable public interface VisualTransformation {
     method public androidx.ui.input.TransformedText filter(androidx.ui.text.AnnotatedString text);
     field public static final androidx.ui.input.VisualTransformation.Companion! Companion;
   }
@@ -205,17 +205,17 @@
 
 package androidx.ui.text {
 
-  public final class AnnotatedString {
+  @androidx.compose.Immutable public final class AnnotatedString {
     ctor public AnnotatedString(String text, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> spanStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> paragraphStyles);
     method public String component1();
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> component2();
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> component3();
-    method public androidx.ui.text.AnnotatedString copy(String text, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> spanStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> paragraphStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<java.lang.String>> annotations);
+    method @androidx.compose.Immutable public androidx.ui.text.AnnotatedString copy(String text, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> spanStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> paragraphStyles, java.util.List<androidx.ui.text.AnnotatedString.Range<java.lang.String>> annotations);
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.ParagraphStyle>> getParagraphStyles();
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<androidx.ui.text.SpanStyle>> getSpanStyles();
     method public java.util.List<androidx.ui.text.AnnotatedString.Range<java.lang.String>> getStringAnnotations(String tag, int start, int end);
     method public String getText();
-    method public operator androidx.ui.text.AnnotatedString plus(androidx.ui.text.AnnotatedString other);
+    method @androidx.compose.Stable public operator androidx.ui.text.AnnotatedString plus(androidx.ui.text.AnnotatedString other);
   }
 
   public static final class AnnotatedString.Builder {
@@ -268,7 +268,7 @@
     method public static inline <R> R withStyle(androidx.ui.text.AnnotatedString.Builder, androidx.ui.text.ParagraphStyle style, kotlin.jvm.functions.Function1<? super androidx.ui.text.AnnotatedString.Builder,? extends R> block);
   }
 
-  public final class Locale {
+  @androidx.compose.Immutable public final class Locale {
     ctor public Locale(String languageTag);
     method public String getLanguage();
     method public String getRegion();
@@ -285,14 +285,14 @@
     property public final androidx.ui.text.Locale current;
   }
 
-  public final class LocaleList implements java.util.Collection<androidx.ui.text.Locale> kotlin.jvm.internal.markers.KMappedMarker {
+  @androidx.compose.Immutable public final class LocaleList implements java.util.Collection<androidx.ui.text.Locale> kotlin.jvm.internal.markers.KMappedMarker {
     ctor public LocaleList(java.util.List<androidx.ui.text.Locale> localeList);
     ctor public LocaleList(String languageTags);
     ctor public LocaleList(androidx.ui.text.Locale... locales);
     method public java.util.List<androidx.ui.text.Locale> component1();
     method public operator boolean contains(androidx.ui.text.Locale element);
     method public boolean containsAll(java.util.Collection<?> elements);
-    method public androidx.ui.text.LocaleList copy(java.util.List<androidx.ui.text.Locale> localeList);
+    method @androidx.compose.Immutable public androidx.ui.text.LocaleList copy(java.util.List<androidx.ui.text.Locale> localeList);
     method public operator androidx.ui.text.Locale get(int i);
     method public java.util.List<androidx.ui.text.Locale> getLocaleList();
     method public int getSize();
@@ -432,29 +432,29 @@
     method public static androidx.ui.text.Paragraph Paragraph(androidx.ui.text.ParagraphIntrinsics paragraphIntrinsics, int maxLines = 2147483647, boolean ellipsis = false, androidx.ui.text.ParagraphConstraints constraints);
   }
 
-  public final class ParagraphStyle {
+  @androidx.compose.Immutable public final class ParagraphStyle {
     method public androidx.ui.text.style.TextAlign? component1();
     method public androidx.ui.text.style.TextDirectionAlgorithm? component2();
     method public long component3();
     method public androidx.ui.text.style.TextIndent? component4();
-    method public androidx.ui.text.ParagraphStyle copy-ffQossE(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, long lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    method @androidx.compose.Immutable public androidx.ui.text.ParagraphStyle copy-ffQossE(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, long lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     method public long getLineHeight();
     method public androidx.ui.text.style.TextAlign? getTextAlign();
     method public androidx.ui.text.style.TextDirectionAlgorithm? getTextDirectionAlgorithm();
     method public androidx.ui.text.style.TextIndent? getTextIndent();
-    method public androidx.ui.text.ParagraphStyle merge(androidx.ui.text.ParagraphStyle? other = null);
-    method public operator androidx.ui.text.ParagraphStyle plus(androidx.ui.text.ParagraphStyle other);
+    method @androidx.compose.Stable public androidx.ui.text.ParagraphStyle merge(androidx.ui.text.ParagraphStyle? other = null);
+    method @androidx.compose.Stable public operator androidx.ui.text.ParagraphStyle plus(androidx.ui.text.ParagraphStyle other);
   }
 
   public final class ParagraphStyleKt {
-    method public static androidx.ui.text.ParagraphStyle lerp(androidx.ui.text.ParagraphStyle start, androidx.ui.text.ParagraphStyle stop, float fraction);
+    method @androidx.compose.Stable public static androidx.ui.text.ParagraphStyle lerp(androidx.ui.text.ParagraphStyle start, androidx.ui.text.ParagraphStyle stop, float fraction);
   }
 
-  public final class Placeholder {
+  @androidx.compose.Immutable public final class Placeholder {
     method public long component1();
     method public long component2();
     method public androidx.ui.text.PlaceholderVerticalAlign component3();
-    method public androidx.ui.text.Placeholder copy-eLqjHCw(long width, long height, androidx.ui.text.PlaceholderVerticalAlign placeholderVerticalAlign);
+    method @androidx.compose.Immutable public androidx.ui.text.Placeholder copy-eLqjHCw(long width, long height, androidx.ui.text.PlaceholderVerticalAlign placeholderVerticalAlign);
     method public long getHeight();
     method public androidx.ui.text.PlaceholderVerticalAlign getPlaceholderVerticalAlign();
     method public long getWidth();
@@ -477,7 +477,7 @@
     method public void showSoftwareKeyboard();
   }
 
-  public final class SpanStyle {
+  @androidx.compose.Immutable public final class SpanStyle {
     method public long component1();
     method public androidx.ui.text.style.TextGeometricTransform? component10();
     method public androidx.ui.text.LocaleList? component11();
@@ -492,7 +492,7 @@
     method public String? component7();
     method public long component8();
     method public androidx.ui.text.style.BaselineShift? component9();
-    method public androidx.ui.text.SpanStyle copy-kRoccyE(long color, long fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, long letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, long background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
+    method @androidx.compose.Immutable public androidx.ui.text.SpanStyle copy-kRoccyE(long color, long fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, long letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, long background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
     method public long getBackground();
     method public androidx.ui.text.style.BaselineShift? getBaselineShift();
     method public long getColor();
@@ -507,8 +507,8 @@
     method public androidx.ui.graphics.Shadow? getShadow();
     method public androidx.ui.text.style.TextDecoration? getTextDecoration();
     method public androidx.ui.text.style.TextGeometricTransform? getTextGeometricTransform();
-    method public androidx.ui.text.SpanStyle merge(androidx.ui.text.SpanStyle? other = null);
-    method public operator androidx.ui.text.SpanStyle plus(androidx.ui.text.SpanStyle other);
+    method @androidx.compose.Stable public androidx.ui.text.SpanStyle merge(androidx.ui.text.SpanStyle? other = null);
+    method @androidx.compose.Stable public operator androidx.ui.text.SpanStyle plus(androidx.ui.text.SpanStyle other);
   }
 
   public final class SpanStyleKt {
@@ -616,13 +616,13 @@
     field public static final androidx.ui.text.TextPainter! INSTANCE;
   }
 
-  public final class TextRange {
+  @androidx.compose.Immutable public final class TextRange {
     ctor public TextRange(int start, int end);
     method public int component1();
     method public int component2();
     method public operator boolean contains(androidx.ui.text.TextRange other);
     method public operator boolean contains(int offset);
-    method public androidx.ui.text.TextRange copy(int start, int end);
+    method @androidx.compose.Immutable public androidx.ui.text.TextRange copy(int start, int end);
     method public boolean getCollapsed();
     method public int getEnd();
     method public int getLength();
@@ -640,7 +640,7 @@
     method public static String substring(CharSequence, androidx.ui.text.TextRange range);
   }
 
-  public final class TextStyle {
+  @androidx.compose.Immutable public final class TextStyle {
     method public long component1();
     method public androidx.ui.text.style.TextGeometricTransform? component10();
     method public androidx.ui.text.LocaleList? component11();
@@ -659,7 +659,7 @@
     method public String? component7();
     method public long component8();
     method public androidx.ui.text.style.BaselineShift? component9();
-    method public androidx.ui.text.TextStyle copy-4Bo2vQE(long color, long fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, long letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, long background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, long lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    method @androidx.compose.Immutable public androidx.ui.text.TextStyle copy-4Bo2vQE(long color, long fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, long letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, long background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, long lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     method public long getBackground();
     method public androidx.ui.text.style.BaselineShift? getBaselineShift();
     method public long getColor();
@@ -678,14 +678,14 @@
     method public androidx.ui.text.style.TextDirectionAlgorithm? getTextDirectionAlgorithm();
     method public androidx.ui.text.style.TextGeometricTransform? getTextGeometricTransform();
     method public androidx.ui.text.style.TextIndent? getTextIndent();
-    method public androidx.ui.text.TextStyle merge(androidx.ui.text.TextStyle? other = null);
-    method public androidx.ui.text.TextStyle merge(androidx.ui.text.SpanStyle other);
-    method public androidx.ui.text.TextStyle merge(androidx.ui.text.ParagraphStyle other);
-    method public operator androidx.ui.text.TextStyle plus(androidx.ui.text.TextStyle other);
-    method public operator androidx.ui.text.TextStyle plus(androidx.ui.text.ParagraphStyle other);
-    method public operator androidx.ui.text.TextStyle plus(androidx.ui.text.SpanStyle other);
-    method public androidx.ui.text.ParagraphStyle toParagraphStyle();
-    method public androidx.ui.text.SpanStyle toSpanStyle();
+    method @androidx.compose.Stable public androidx.ui.text.TextStyle merge(androidx.ui.text.TextStyle? other = null);
+    method @androidx.compose.Stable public androidx.ui.text.TextStyle merge(androidx.ui.text.SpanStyle other);
+    method @androidx.compose.Stable public androidx.ui.text.TextStyle merge(androidx.ui.text.ParagraphStyle other);
+    method @androidx.compose.Stable public operator androidx.ui.text.TextStyle plus(androidx.ui.text.TextStyle other);
+    method @androidx.compose.Stable public operator androidx.ui.text.TextStyle plus(androidx.ui.text.ParagraphStyle other);
+    method @androidx.compose.Stable public operator androidx.ui.text.TextStyle plus(androidx.ui.text.SpanStyle other);
+    method @androidx.compose.Stable public androidx.ui.text.ParagraphStyle toParagraphStyle();
+    method @androidx.compose.Stable public androidx.ui.text.SpanStyle toSpanStyle();
     field public static final androidx.ui.text.TextStyle.Companion! Companion;
   }
 
@@ -715,7 +715,7 @@
   public abstract sealed class FileBasedFontFamily extends androidx.ui.text.font.FontFamily {
   }
 
-  public interface Font {
+  @androidx.compose.Immutable public interface Font {
     method public androidx.ui.text.font.FontStyle getStyle();
     method public androidx.ui.text.font.FontWeight getWeight();
     property public abstract androidx.ui.text.font.FontStyle style;
@@ -726,7 +726,7 @@
     method public Object load(androidx.ui.text.font.Font font);
   }
 
-  public abstract sealed class FontFamily {
+  @androidx.compose.Immutable public abstract sealed class FontFamily {
     method public final boolean getCanLoadSynchronously();
     field public static final androidx.ui.text.font.FontFamily.Companion! Companion;
   }
@@ -745,22 +745,22 @@
   }
 
   public final class FontFamilyKt {
-    method public static androidx.ui.text.font.FontListFontFamily fontFamily(java.util.List<? extends androidx.ui.text.font.Font> fonts);
-    method public static androidx.ui.text.font.FontListFontFamily fontFamily(androidx.ui.text.font.Font... fonts);
+    method @androidx.compose.Stable public static androidx.ui.text.font.FontListFontFamily fontFamily(java.util.List<? extends androidx.ui.text.font.Font> fonts);
+    method @androidx.compose.Stable public static androidx.ui.text.font.FontListFontFamily fontFamily(androidx.ui.text.font.Font... fonts);
     method public static androidx.ui.text.font.LoadedFontFamily fontFamily(androidx.ui.text.Typeface typeface);
   }
 
   public final class FontKt {
-    method public static androidx.ui.text.font.FontListFontFamily asFontFamily(androidx.ui.text.font.Font);
-    method public static androidx.ui.text.font.Font font(int resId, androidx.ui.text.font.FontWeight weight = FontWeight.Normal, androidx.ui.text.font.FontStyle style = androidx.ui.text.font.FontStyle.Normal);
+    method @androidx.compose.Stable public static androidx.ui.text.font.FontListFontFamily asFontFamily(androidx.ui.text.font.Font);
+    method @androidx.compose.Stable public static androidx.ui.text.font.Font font(int resId, androidx.ui.text.font.FontWeight weight = FontWeight.Normal, androidx.ui.text.font.FontStyle style = androidx.ui.text.font.FontStyle.Normal);
   }
 
-  public final class FontListFontFamily extends androidx.ui.text.font.FileBasedFontFamily implements kotlin.jvm.internal.markers.KMappedMarker java.util.List<androidx.ui.text.font.Font> {
+  @androidx.compose.Immutable public final class FontListFontFamily extends androidx.ui.text.font.FileBasedFontFamily implements kotlin.jvm.internal.markers.KMappedMarker java.util.List<androidx.ui.text.font.Font> {
     ctor public FontListFontFamily(java.util.List<? extends androidx.ui.text.font.Font> fonts);
     method public java.util.List<androidx.ui.text.font.Font> component1();
     method public boolean contains(androidx.ui.text.font.Font element);
     method public boolean containsAll(java.util.Collection<?> elements);
-    method public androidx.ui.text.font.FontListFontFamily copy(java.util.List<? extends androidx.ui.text.font.Font> fonts);
+    method @androidx.compose.Immutable public androidx.ui.text.font.FontListFontFamily copy(java.util.List<? extends androidx.ui.text.font.Font> fonts);
     method public androidx.ui.text.font.Font get(int index);
     method public java.util.List<androidx.ui.text.font.Font> getFonts();
     method public int getSize();
@@ -785,11 +785,11 @@
     enum_constant public static final androidx.ui.text.font.FontSynthesis Weight;
   }
 
-  public final class FontWeight implements java.lang.Comparable<androidx.ui.text.font.FontWeight> {
+  @androidx.compose.Immutable public final class FontWeight implements java.lang.Comparable<androidx.ui.text.font.FontWeight> {
     ctor public FontWeight(int weight);
     method public int compareTo(androidx.ui.text.font.FontWeight other);
     method public int component1();
-    method public androidx.ui.text.font.FontWeight copy(int weight);
+    method @androidx.compose.Immutable public androidx.ui.text.font.FontWeight copy(int weight);
     method public int getWeight();
     field public static final androidx.ui.text.font.FontWeight.Companion! Companion;
   }
@@ -837,7 +837,7 @@
     method public static androidx.ui.text.font.FontWeight lerp(androidx.ui.text.font.FontWeight start, androidx.ui.text.font.FontWeight stop, float fraction);
   }
 
-  public final class GenericFontFamily extends androidx.ui.text.font.SystemFontFamily {
+  @androidx.compose.Immutable public final class GenericFontFamily extends androidx.ui.text.font.SystemFontFamily {
     method public String getName();
   }
 
@@ -879,14 +879,14 @@
 
 package androidx.ui.text.style {
 
-  public final inline class BaselineShift {
+  @androidx.compose.Immutable public final inline class BaselineShift {
     ctor public BaselineShift();
     method public static float constructor-impl(float multiplier);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getMultiplier();
-    method public static inline int hashCode-impl(float p);
-    method public static inline String! toString-impl(float p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Immutable public static inline String! toString-impl(float p);
     field public static final androidx.ui.text.style.BaselineShift.Companion! Companion;
   }
 
@@ -900,7 +900,7 @@
   }
 
   public final class BaselineShiftKt {
-    method public static float lerp-7csQwvo(float start, float stop, float fraction);
+    method @androidx.compose.Stable public static float lerp-7csQwvo(float start, float stop, float fraction);
   }
 
   public enum TextAlign {
@@ -912,10 +912,10 @@
     enum_constant public static final androidx.ui.text.style.TextAlign Start;
   }
 
-  public final class TextDecoration {
+  @androidx.compose.Immutable public final class TextDecoration {
     method public int component1();
     method public boolean contains(androidx.ui.text.style.TextDecoration other);
-    method public androidx.ui.text.style.TextDecoration copy(int mask);
+    method @androidx.compose.Immutable public androidx.ui.text.style.TextDecoration copy(int mask);
     method public int getMask();
     field public static final androidx.ui.text.style.TextDecoration.Companion! Companion;
   }
@@ -942,12 +942,12 @@
     enum_constant public static final androidx.ui.text.style.TextDirectionAlgorithm ForceRtl;
   }
 
-  public final class TextGeometricTransform {
+  @androidx.compose.Immutable public final class TextGeometricTransform {
     ctor public TextGeometricTransform(float scaleX, float skewX);
     ctor public TextGeometricTransform();
     method public float component1();
     method public float component2();
-    method public androidx.ui.text.style.TextGeometricTransform copy(float scaleX, float skewX);
+    method @androidx.compose.Immutable public androidx.ui.text.style.TextGeometricTransform copy(float scaleX, float skewX);
     method public float getScaleX();
     method public float getSkewX();
     field public static final androidx.ui.text.style.TextGeometricTransform.Companion! Companion;
@@ -960,10 +960,10 @@
     method public static androidx.ui.text.style.TextGeometricTransform lerp(androidx.ui.text.style.TextGeometricTransform start, androidx.ui.text.style.TextGeometricTransform stop, float fraction);
   }
 
-  public final class TextIndent {
+  @androidx.compose.Immutable public final class TextIndent {
     method public long component1();
     method public long component2();
-    method public androidx.ui.text.style.TextIndent copy-gL_aCS0(long firstLine, long restLine);
+    method @androidx.compose.Immutable public androidx.ui.text.style.TextIndent copy-gL_aCS0(long firstLine, long restLine);
     method public long getFirstLine();
     method public long getRestLine();
     field public static final androidx.ui.text.style.TextIndent.Companion! Companion;
diff --git a/ui/ui-text/api/0.1.0-dev14.txt b/ui/ui-text/api/0.1.0-dev14.txt
index e5ffb1e..c9a485d 100644
--- a/ui/ui-text/api/0.1.0-dev14.txt
+++ b/ui/ui-text/api/0.1.0-dev14.txt
@@ -2,11 +2,11 @@
 package androidx.ui.text {
 
   public final class CoreTextFieldKt {
-    method public static void CoreTextField(androidx.ui.input.EditorValue value, androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.input.EditorValue,kotlin.Unit> onValueChange, androidx.ui.text.TextStyle textStyle = TextStyle.Default, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit>  androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit> >
+    method @androidx.compose.Composable public static void CoreTextField(androidx.ui.input.EditorValue value, androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.input.EditorValue,kotlin.Unit> onValueChange, androidx.ui.text.TextStyle textStyle = TextStyle.Default, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit>  androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit> >
   }
 
   public final class CoreTextKt {
-    method public static void CoreText(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle style, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, int maxLines, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit> onTextLayout);
+    method @androidx.compose.Composable public static void CoreText(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle style, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, int maxLines, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit> onTextLayout);
     method public static androidx.ui.core.HorizontalAlignmentLine getFirstBaseline();
     method public static androidx.ui.core.HorizontalAlignmentLine getLastBaseline();
   }
diff --git a/ui/ui-text/api/current.txt b/ui/ui-text/api/current.txt
index e5ffb1e..c9a485d 100644
--- a/ui/ui-text/api/current.txt
+++ b/ui/ui-text/api/current.txt
@@ -2,11 +2,11 @@
 package androidx.ui.text {
 
   public final class CoreTextFieldKt {
-    method public static void CoreTextField(androidx.ui.input.EditorValue value, androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.input.EditorValue,kotlin.Unit> onValueChange, androidx.ui.text.TextStyle textStyle = TextStyle.Default, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit>  androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit> >
+    method @androidx.compose.Composable public static void CoreTextField(androidx.ui.input.EditorValue value, androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.input.EditorValue,kotlin.Unit> onValueChange, androidx.ui.text.TextStyle textStyle = TextStyle.Default, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit>  androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit> >
   }
 
   public final class CoreTextKt {
-    method public static void CoreText(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle style, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, int maxLines, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit> onTextLayout);
+    method @androidx.compose.Composable public static void CoreText(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle style, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, int maxLines, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit> onTextLayout);
     method public static androidx.ui.core.HorizontalAlignmentLine getFirstBaseline();
     method public static androidx.ui.core.HorizontalAlignmentLine getLastBaseline();
   }
diff --git a/ui/ui-text/api/public_plus_experimental_0.1.0-dev14.txt b/ui/ui-text/api/public_plus_experimental_0.1.0-dev14.txt
index e5ffb1e..c9a485d 100644
--- a/ui/ui-text/api/public_plus_experimental_0.1.0-dev14.txt
+++ b/ui/ui-text/api/public_plus_experimental_0.1.0-dev14.txt
@@ -2,11 +2,11 @@
 package androidx.ui.text {
 
   public final class CoreTextFieldKt {
-    method public static void CoreTextField(androidx.ui.input.EditorValue value, androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.input.EditorValue,kotlin.Unit> onValueChange, androidx.ui.text.TextStyle textStyle = TextStyle.Default, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit>  androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit> >
+    method @androidx.compose.Composable public static void CoreTextField(androidx.ui.input.EditorValue value, androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.input.EditorValue,kotlin.Unit> onValueChange, androidx.ui.text.TextStyle textStyle = TextStyle.Default, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit>  androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit> >
   }
 
   public final class CoreTextKt {
-    method public static void CoreText(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle style, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, int maxLines, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit> onTextLayout);
+    method @androidx.compose.Composable public static void CoreText(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle style, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, int maxLines, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit> onTextLayout);
     method public static androidx.ui.core.HorizontalAlignmentLine getFirstBaseline();
     method public static androidx.ui.core.HorizontalAlignmentLine getLastBaseline();
   }
diff --git a/ui/ui-text/api/public_plus_experimental_current.txt b/ui/ui-text/api/public_plus_experimental_current.txt
index e5ffb1e..c9a485d 100644
--- a/ui/ui-text/api/public_plus_experimental_current.txt
+++ b/ui/ui-text/api/public_plus_experimental_current.txt
@@ -2,11 +2,11 @@
 package androidx.ui.text {
 
   public final class CoreTextFieldKt {
-    method public static void CoreTextField(androidx.ui.input.EditorValue value, androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.input.EditorValue,kotlin.Unit> onValueChange, androidx.ui.text.TextStyle textStyle = TextStyle.Default, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit>  androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit> >
+    method @androidx.compose.Composable public static void CoreTextField(androidx.ui.input.EditorValue value, androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.input.EditorValue,kotlin.Unit> onValueChange, androidx.ui.text.TextStyle textStyle = TextStyle.Default, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit>  androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit> >
   }
 
   public final class CoreTextKt {
-    method public static void CoreText(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle style, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, int maxLines, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit> onTextLayout);
+    method @androidx.compose.Composable public static void CoreText(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle style, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, int maxLines, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit> onTextLayout);
     method public static androidx.ui.core.HorizontalAlignmentLine getFirstBaseline();
     method public static androidx.ui.core.HorizontalAlignmentLine getLastBaseline();
   }
diff --git a/ui/ui-text/api/restricted_0.1.0-dev14.txt b/ui/ui-text/api/restricted_0.1.0-dev14.txt
index e5ffb1e..c9a485d 100644
--- a/ui/ui-text/api/restricted_0.1.0-dev14.txt
+++ b/ui/ui-text/api/restricted_0.1.0-dev14.txt
@@ -2,11 +2,11 @@
 package androidx.ui.text {
 
   public final class CoreTextFieldKt {
-    method public static void CoreTextField(androidx.ui.input.EditorValue value, androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.input.EditorValue,kotlin.Unit> onValueChange, androidx.ui.text.TextStyle textStyle = TextStyle.Default, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit>  androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit> >
+    method @androidx.compose.Composable public static void CoreTextField(androidx.ui.input.EditorValue value, androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.input.EditorValue,kotlin.Unit> onValueChange, androidx.ui.text.TextStyle textStyle = TextStyle.Default, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit>  androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit> >
   }
 
   public final class CoreTextKt {
-    method public static void CoreText(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle style, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, int maxLines, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit> onTextLayout);
+    method @androidx.compose.Composable public static void CoreText(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle style, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, int maxLines, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit> onTextLayout);
     method public static androidx.ui.core.HorizontalAlignmentLine getFirstBaseline();
     method public static androidx.ui.core.HorizontalAlignmentLine getLastBaseline();
   }
diff --git a/ui/ui-text/api/restricted_current.txt b/ui/ui-text/api/restricted_current.txt
index e5ffb1e..c9a485d 100644
--- a/ui/ui-text/api/restricted_current.txt
+++ b/ui/ui-text/api/restricted_current.txt
@@ -2,11 +2,11 @@
 package androidx.ui.text {
 
   public final class CoreTextFieldKt {
-    method public static void CoreTextField(androidx.ui.input.EditorValue value, androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.input.EditorValue,kotlin.Unit> onValueChange, androidx.ui.text.TextStyle textStyle = TextStyle.Default, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit>  androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit> >
+    method @androidx.compose.Composable public static void CoreTextField(androidx.ui.input.EditorValue value, androidx.ui.core.Modifier modifier, kotlin.jvm.functions.Function1<? super androidx.ui.input.EditorValue,kotlin.Unit> onValueChange, androidx.ui.text.TextStyle textStyle = TextStyle.Default, androidx.ui.input.KeyboardType keyboardType = KeyboardType.Text, androidx.ui.input.ImeAction imeAction = ImeAction.Unspecified, kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit>  androidx.ui.input.VisualTransformation visualTransformation = VisualTransformation.None, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit>  kotlin.jvm.functions.Function1<? super androidx.ui.text.SoftwareKeyboardController,kotlin.Unit> >
   }
 
   public final class CoreTextKt {
-    method public static void CoreText(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle style, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, int maxLines, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit> onTextLayout);
+    method @androidx.compose.Composable public static void CoreText(androidx.ui.text.AnnotatedString text, androidx.ui.core.Modifier modifier = Modifier, androidx.ui.text.TextStyle style, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, int maxLines, java.util.Map<java.lang.String,androidx.ui.text.InlineTextContent> inlineContent, kotlin.jvm.functions.Function1<? super androidx.ui.text.TextLayoutResult,kotlin.Unit> onTextLayout);
     method public static androidx.ui.core.HorizontalAlignmentLine getFirstBaseline();
     method public static androidx.ui.core.HorizontalAlignmentLine getLastBaseline();
   }
diff --git a/ui/ui-tooling/api/0.1.0-dev14.txt b/ui/ui-tooling/api/0.1.0-dev14.txt
index 806efee..bab6234 100644
--- a/ui/ui-tooling/api/0.1.0-dev14.txt
+++ b/ui/ui-tooling/api/0.1.0-dev14.txt
@@ -17,7 +17,7 @@
   }
 
   public final class InspectableKt {
-    method public static void InInspectionModeOnly(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void InInspectionModeOnly(kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class JoinedKey {
diff --git a/ui/ui-tooling/api/current.txt b/ui/ui-tooling/api/current.txt
index 806efee..bab6234 100644
--- a/ui/ui-tooling/api/current.txt
+++ b/ui/ui-tooling/api/current.txt
@@ -17,7 +17,7 @@
   }
 
   public final class InspectableKt {
-    method public static void InInspectionModeOnly(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void InInspectionModeOnly(kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class JoinedKey {
diff --git a/ui/ui-tooling/api/public_plus_experimental_0.1.0-dev14.txt b/ui/ui-tooling/api/public_plus_experimental_0.1.0-dev14.txt
index 806efee..bab6234 100644
--- a/ui/ui-tooling/api/public_plus_experimental_0.1.0-dev14.txt
+++ b/ui/ui-tooling/api/public_plus_experimental_0.1.0-dev14.txt
@@ -17,7 +17,7 @@
   }
 
   public final class InspectableKt {
-    method public static void InInspectionModeOnly(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void InInspectionModeOnly(kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class JoinedKey {
diff --git a/ui/ui-tooling/api/public_plus_experimental_current.txt b/ui/ui-tooling/api/public_plus_experimental_current.txt
index 806efee..bab6234 100644
--- a/ui/ui-tooling/api/public_plus_experimental_current.txt
+++ b/ui/ui-tooling/api/public_plus_experimental_current.txt
@@ -17,7 +17,7 @@
   }
 
   public final class InspectableKt {
-    method public static void InInspectionModeOnly(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void InInspectionModeOnly(kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class JoinedKey {
diff --git a/ui/ui-tooling/api/restricted_0.1.0-dev14.txt b/ui/ui-tooling/api/restricted_0.1.0-dev14.txt
index 806efee..bab6234 100644
--- a/ui/ui-tooling/api/restricted_0.1.0-dev14.txt
+++ b/ui/ui-tooling/api/restricted_0.1.0-dev14.txt
@@ -17,7 +17,7 @@
   }
 
   public final class InspectableKt {
-    method public static void InInspectionModeOnly(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void InInspectionModeOnly(kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class JoinedKey {
diff --git a/ui/ui-tooling/api/restricted_current.txt b/ui/ui-tooling/api/restricted_current.txt
index 806efee..bab6234 100644
--- a/ui/ui-tooling/api/restricted_current.txt
+++ b/ui/ui-tooling/api/restricted_current.txt
@@ -17,7 +17,7 @@
   }
 
   public final class InspectableKt {
-    method public static void InInspectionModeOnly(kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @androidx.compose.Composable public static void InInspectionModeOnly(kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class JoinedKey {
diff --git a/ui/ui-unit/api/0.1.0-dev14.txt b/ui/ui-unit/api/0.1.0-dev14.txt
index 05a1680..68a02a8 100644
--- a/ui/ui-unit/api/0.1.0-dev14.txt
+++ b/ui/ui-unit/api/0.1.0-dev14.txt
@@ -1,12 +1,12 @@
 // Signature format: 3.0
 package androidx.ui.core {
 
-  public final class Constraints {
+  @androidx.compose.Immutable public final class Constraints {
     method public int component1();
     method public int component2();
     method public int component3();
     method public int component4();
-    method public androidx.ui.core.Constraints copy-Q13GOEE(int minWidth, int maxWidth, int minHeight, int maxHeight);
+    method @androidx.compose.Immutable public androidx.ui.core.Constraints copy-Q13GOEE(int minWidth, int maxWidth, int minHeight, int maxHeight);
     method public int getMaxHeight();
     method public int getMaxWidth();
     method public int getMinHeight();
@@ -15,16 +15,16 @@
   }
 
   public static final class Constraints.Companion {
-    method public androidx.ui.core.Constraints fixed-rRMsBxU(int width, int height);
-    method public androidx.ui.core.Constraints fixedHeight-gshw56o(int height);
-    method public androidx.ui.core.Constraints fixedWidth-gshw56o(int width);
+    method @androidx.compose.Stable public androidx.ui.core.Constraints fixed-rRMsBxU(int width, int height);
+    method @androidx.compose.Stable public androidx.ui.core.Constraints fixedHeight-gshw56o(int height);
+    method @androidx.compose.Stable public androidx.ui.core.Constraints fixedWidth-gshw56o(int width);
   }
 
-  public final inline class Constraints2 {
+  @androidx.compose.Immutable public final inline class Constraints2 {
     ctor public Constraints2();
     method public static long constructor-impl(internal long value);
-    method public static long copy-impl(long $this, int minWidth = this.minWidth, int maxWidth = this.maxWidth, int minHeight = this.minHeight, int maxHeight = this.maxHeight);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static long copy-impl(long $this, int minWidth = this.minWidth, int maxWidth = this.maxWidth, int minHeight = this.minHeight, int maxHeight = this.maxHeight);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static boolean getHasBoundedHeight-impl(long $this);
     method public static boolean getHasBoundedWidth-impl(long $this);
@@ -32,39 +32,39 @@
     method public static int getMaxWidth-impl(long $this);
     method public static int getMinHeight-impl(long $this);
     method public static int getMinWidth-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static inline String! toString-impl(long p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Immutable public static inline String! toString-impl(long p);
     field public static final androidx.ui.core.Constraints2.Companion! Companion;
-    field public static final int Infinity = -1073741824; // 0xc0000000
+    field @androidx.compose.Stable public static final int Infinity = -1073741824; // 0xc0000000
   }
 
   public static final class Constraints2.Companion {
-    method public long fixed(int width, int height);
-    method public long fixedHeight(int height);
-    method public long fixedWidth(int width);
+    method @androidx.compose.Stable public long fixed(int width, int height);
+    method @androidx.compose.Stable public long fixedHeight(int height);
+    method @androidx.compose.Stable public long fixedWidth(int width);
   }
 
   public final class Constraints2Kt {
-    method public static long Constraints2(@IntRange(from=0) int minWidth = 0, int maxWidth = -1073741824, @IntRange(from=0) int minHeight = 0, int maxHeight = -1073741824);
-    method public static long constrain-M1ogGms(long, long size);
-    method public static long enforce-uQjoOwo(long, long otherConstraints);
+    method @androidx.compose.Stable public static long Constraints2(@IntRange(from=0) int minWidth = 0, int maxWidth = -1073741824, @IntRange(from=0) int minHeight = 0, int maxHeight = -1073741824);
+    method @androidx.compose.Stable public static long constrain-M1ogGms(long, long size);
+    method @androidx.compose.Stable public static long enforce-uQjoOwo(long, long otherConstraints);
     method public static boolean getHasFixedHeight-ybNdgAI(long);
     method public static boolean getHasFixedWidth-ybNdgAI(long);
     method public static boolean isZero-ybNdgAI(long);
-    method public static long offset-xOKVbDg(long, int horizontal = 0, int vertical = 0);
-    method public static boolean satisfiedBy-M1ogGms(long, long size);
+    method @androidx.compose.Stable public static long offset-xOKVbDg(long, int horizontal = 0, int vertical = 0);
+    method @androidx.compose.Stable public static boolean satisfiedBy-M1ogGms(long, long size);
   }
 
   public final class ConstraintsKt {
-    method public static androidx.ui.unit.IntPxSize constrain(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
-    method public static androidx.ui.core.Constraints enforce(androidx.ui.core.Constraints, androidx.ui.core.Constraints otherConstraints);
+    method @androidx.compose.Stable public static androidx.ui.unit.IntPxSize constrain(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
+    method @androidx.compose.Stable public static androidx.ui.core.Constraints enforce(androidx.ui.core.Constraints, androidx.ui.core.Constraints otherConstraints);
     method public static boolean getHasBoundedHeight(androidx.ui.core.Constraints);
     method public static boolean getHasBoundedWidth(androidx.ui.core.Constraints);
     method public static boolean getHasFixedHeight(androidx.ui.core.Constraints);
     method public static boolean getHasFixedWidth(androidx.ui.core.Constraints);
     method public static boolean isZero(androidx.ui.core.Constraints);
-    method public static androidx.ui.core.Constraints offset-3L2DHGc(androidx.ui.core.Constraints, int horizontal = 0.ipx, int vertical = 0.ipx);
-    method public static boolean satisfiedBy(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
+    method @androidx.compose.Stable public static androidx.ui.core.Constraints offset-3L2DHGc(androidx.ui.core.Constraints, int horizontal = 0.ipx, int vertical = 0.ipx);
+    method @androidx.compose.Stable public static boolean satisfiedBy(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
   }
 
   public enum LayoutDirection {
@@ -80,65 +80,65 @@
     method public static androidx.ui.unit.Density Density(android.content.Context context);
   }
 
-  public final class Bounds {
+  @androidx.compose.Immutable public final class Bounds {
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
-    method public androidx.ui.unit.Bounds copy-rIHlIKc(float left, float top, float right, float bottom);
+    method @androidx.compose.Immutable public androidx.ui.unit.Bounds copy-rIHlIKc(float left, float top, float right, float bottom);
     method public float getBottom();
     method public float getLeft();
     method public float getRight();
     method public float getTop();
   }
 
-  public interface Density {
+  @androidx.compose.Immutable public interface Density {
     method public float getDensity();
     method public float getFontScale();
-    method public default float toDp(float);
-    method public default float toDp(int);
-    method public default float toDp-NgWp0Z8(float);
-    method public default float toDp-gshw56o(int);
-    method public default float toDp-vVlMl6k(long);
-    method public default int toIntPx-ipo6vVg(float);
-    method public default int toIntPx-vVlMl6k(long);
-    method public default float toPx-ipo6vVg(float);
-    method public default float toPx-vVlMl6k(long);
-    method public default androidx.ui.geometry.Rect toRect(androidx.ui.unit.Bounds);
-    method public default long toSp(float);
-    method public default long toSp(int);
-    method public default long toSp-NgWp0Z8(float);
-    method public default long toSp-gshw56o(int);
-    method public default long toSp-ipo6vVg(float);
+    method @androidx.compose.Stable public default float toDp(float);
+    method @androidx.compose.Stable public default float toDp(int);
+    method @androidx.compose.Stable public default float toDp-NgWp0Z8(float);
+    method @androidx.compose.Stable public default float toDp-gshw56o(int);
+    method @androidx.compose.Stable public default float toDp-vVlMl6k(long);
+    method @androidx.compose.Stable public default int toIntPx-ipo6vVg(float);
+    method @androidx.compose.Stable public default int toIntPx-vVlMl6k(long);
+    method @androidx.compose.Stable public default float toPx-ipo6vVg(float);
+    method @androidx.compose.Stable public default float toPx-vVlMl6k(long);
+    method @androidx.compose.Stable public default androidx.ui.geometry.Rect toRect(androidx.ui.unit.Bounds);
+    method @androidx.compose.Stable public default long toSp(float);
+    method @androidx.compose.Stable public default long toSp(int);
+    method @androidx.compose.Stable public default long toSp-NgWp0Z8(float);
+    method @androidx.compose.Stable public default long toSp-gshw56o(int);
+    method @androidx.compose.Stable public default long toSp-ipo6vVg(float);
     property public abstract float density;
     property public abstract float fontScale;
   }
 
   public final class DensityKt {
-    method public static androidx.ui.unit.Density Density(float density, float fontScale = 1f);
+    method @androidx.compose.Stable public static androidx.ui.unit.Density Density(float density, float fontScale = 1f);
   }
 
-  public final inline class Dp implements java.lang.Comparable<androidx.ui.unit.Dp> {
+  @androidx.compose.Immutable public final inline class Dp implements java.lang.Comparable<androidx.ui.unit.Dp> {
     ctor public Dp();
-    method public operator int compareTo-ipo6vVg(float p);
-    method public static operator int compareTo-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-ipo6vVg(float p);
+    method @androidx.compose.Stable public static operator int compareTo-ipo6vVg(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-impl(float $this, int other);
-    method public static inline operator float div-ipo6vVg(float $this, float other);
-    method public static inline operator float div-x8crYZs(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, int other);
+    method @androidx.compose.Stable public static inline operator float div-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-x8crYZs(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-ipo6vVg(float $this, float other);
-    method public static inline operator float plus-ipo6vVg(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, int other);
-    method public static inline operator float times-ipo6vVg(float $this, float other);
-    method public static inline operator float times-x8crYZs(float $this, float other);
-    method public static String toString-impl(float $this);
-    method public static inline operator float unaryMinus-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float plus-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, int other);
+    method @androidx.compose.Stable public static inline operator float times-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
+    method @androidx.compose.Stable public static inline operator float unaryMinus-impl(float $this);
     field public static final androidx.ui.unit.Dp.Companion! Companion;
   }
 
@@ -151,100 +151,100 @@
     property public final float Unspecified;
   }
 
-  public final inline class DpCubed implements java.lang.Comparable<androidx.ui.unit.DpCubed> {
+  @androidx.compose.Immutable public final inline class DpCubed implements java.lang.Comparable<androidx.ui.unit.DpCubed> {
     ctor public DpCubed();
-    method public operator int compareTo-JDqhs2g(float p);
-    method public static operator int compareTo-JDqhs2g(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-JDqhs2g(float p);
+    method @androidx.compose.Stable public static operator int compareTo-JDqhs2g(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-JDqhs2g(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-ipo6vVg(float $this, float other);
-    method public static inline operator float div-x8crYZs(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-JDqhs2g(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-x8crYZs(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-JDqhs2g(float $this, float dimension);
-    method public static inline operator float plus-JDqhs2g(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-JDqhs2g(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float plus-JDqhs2g(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
-  public final inline class DpInverse implements java.lang.Comparable<androidx.ui.unit.DpInverse> {
+  @androidx.compose.Immutable public final inline class DpInverse implements java.lang.Comparable<androidx.ui.unit.DpInverse> {
     ctor public DpInverse();
-    method public operator int compareTo-_K2iRR8(float p);
-    method public static operator int compareTo-_K2iRR8(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-_K2iRR8(float p);
+    method @androidx.compose.Stable public static operator int compareTo-_K2iRR8(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-_K2iRR8(float $this, float dimension);
-    method public static inline operator float plus-_K2iRR8(float $this, float dimension);
-    method public static inline operator float times-JDqhs2g(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-ipo6vVg(float $this, float other);
-    method public static inline operator float times-x8crYZs(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-_K2iRR8(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float plus-_K2iRR8(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float times-JDqhs2g(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
   public final class DpKt {
-    method public static inline long Position-98Cn76g(float x, float y);
-    method public static inline float coerceAtLeast-98Cn76g(float, float minimumValue);
-    method public static inline float coerceAtMost-98Cn76g(float, float maximumValue);
-    method public static inline float coerceIn-x40Cv7w(float, float minimumValue, float maximumValue);
-    method public static inline operator float div-H0Zl2lQ(float, float other);
-    method public static inline operator float div-Y_YOLaE(double, float other);
-    method public static inline operator float div-hZ6b2Ic(int, float other);
-    method public static float getDistance-T8eBu-w(long);
+    method @androidx.compose.Stable public static inline long Position-98Cn76g(float x, float y);
+    method @androidx.compose.Stable public static inline float coerceAtLeast-98Cn76g(float, float minimumValue);
+    method @androidx.compose.Stable public static inline float coerceAtMost-98Cn76g(float, float maximumValue);
+    method @androidx.compose.Stable public static inline float coerceIn-x40Cv7w(float, float minimumValue, float maximumValue);
+    method @androidx.compose.Stable public static inline operator float div-H0Zl2lQ(float, float other);
+    method @androidx.compose.Stable public static inline operator float div-Y_YOLaE(double, float other);
+    method @androidx.compose.Stable public static inline operator float div-hZ6b2Ic(int, float other);
+    method @androidx.compose.Stable public static float getDistance-T8eBu-w(long);
     method public static inline float getDp(int);
     method public static inline float getDp(double);
     method public static inline float getDp(float);
     method public static inline float getHeight(androidx.ui.unit.Bounds);
     method public static inline float getWidth(androidx.ui.unit.Bounds);
-    method public static inline boolean isFinite-ipo6vVg(float);
-    method public static float lerp-3WSoJcA(float start, float stop, float fraction);
-    method public static long lerp-d5NHFfI(long start, long stop, float fraction);
-    method public static inline float max-98Cn76g(float a, float b);
-    method public static inline float min-98Cn76g(float a, float b);
-    method public static inline operator float times-H0Zl2lQ(float, float other);
-    method public static inline operator float times-Y_YOLaE(double, float other);
-    method public static inline operator float times-hZ6b2Ic(int, float other);
+    method @androidx.compose.Stable public static inline boolean isFinite-ipo6vVg(float);
+    method @androidx.compose.Stable public static float lerp-3WSoJcA(float start, float stop, float fraction);
+    method @androidx.compose.Stable public static long lerp-d5NHFfI(long start, long stop, float fraction);
+    method @androidx.compose.Stable public static inline float max-98Cn76g(float a, float b);
+    method @androidx.compose.Stable public static inline float min-98Cn76g(float a, float b);
+    method @androidx.compose.Stable public static inline operator float times-H0Zl2lQ(float, float other);
+    method @androidx.compose.Stable public static inline operator float times-Y_YOLaE(double, float other);
+    method @androidx.compose.Stable public static inline operator float times-hZ6b2Ic(int, float other);
   }
 
-  public final inline class DpSquared implements java.lang.Comparable<androidx.ui.unit.DpSquared> {
+  @androidx.compose.Immutable public final inline class DpSquared implements java.lang.Comparable<androidx.ui.unit.DpSquared> {
     ctor public DpSquared();
-    method public operator int compareTo-x8crYZs(float p);
-    method public static operator int compareTo-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-x8crYZs(float p);
+    method @androidx.compose.Stable public static operator int compareTo-x8crYZs(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-JDqhs2g(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-ipo6vVg(float $this, float other);
-    method public static inline operator float div-x8crYZs(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-JDqhs2g(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-x8crYZs(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-x8crYZs(float $this, float other);
-    method public static inline operator float plus-x8crYZs(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-ipo6vVg(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float plus-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
-  public final class Duration implements java.lang.Comparable<androidx.ui.unit.Duration> {
+  @androidx.compose.Immutable public final class Duration implements java.lang.Comparable<androidx.ui.unit.Duration> {
     ctor public Duration(long nanoseconds);
-    method public int compareTo(androidx.ui.unit.Duration other);
+    method @androidx.compose.Stable public int compareTo(androidx.ui.unit.Duration other);
     method public long component1();
-    method public androidx.ui.unit.Duration copy(long nanoseconds);
-    method public operator androidx.ui.unit.Duration div(int quotient);
-    method public operator androidx.ui.unit.Duration div(double quotient);
+    method @androidx.compose.Immutable public androidx.ui.unit.Duration copy(long nanoseconds);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration div(int quotient);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration div(double quotient);
     method public long getNanoseconds();
-    method public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Duration other);
-    method public operator androidx.ui.unit.Duration plus(androidx.ui.unit.Duration other);
-    method public operator androidx.ui.unit.Duration times(int factor);
-    method public operator androidx.ui.unit.Duration times(double factor);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Duration other);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration plus(androidx.ui.unit.Duration other);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration times(int factor);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration times(double factor);
     field public static final androidx.ui.unit.Duration.Companion! Companion;
   }
 
@@ -288,27 +288,27 @@
     field public static final long SecondsPerMinute = 60L; // 0x3cL
   }
 
-  public final inline class IntPx implements java.lang.Comparable<androidx.ui.unit.IntPx> {
+  @androidx.compose.Immutable public final inline class IntPx implements java.lang.Comparable<androidx.ui.unit.IntPx> {
     ctor public IntPx();
-    method public static inline operator int compareTo-NgWp0Z8(int $this, float other);
-    method public operator int compareTo-gshw56o(int p);
-    method public static operator int compareTo-gshw56o(int $this, int other);
+    method @androidx.compose.Stable public static inline operator int compareTo-NgWp0Z8(int $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-gshw56o(int p);
+    method @androidx.compose.Stable public static operator int compareTo-gshw56o(int $this, int other);
     method public static int constructor-impl(int value);
-    method public static operator int div-impl(int $this, float other);
-    method public static operator int div-impl(int $this, double other);
-    method public static operator int div-impl(int $this, int other);
-    method public static inline boolean equals-impl(int p, Object? p1);
+    method @androidx.compose.Stable public static operator int div-impl(int $this, float other);
+    method @androidx.compose.Stable public static operator int div-impl(int $this, double other);
+    method @androidx.compose.Stable public static operator int div-impl(int $this, int other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(int p, Object? p1);
     method public static boolean equals-impl0(int p1, int p2);
     method public int getValue();
-    method public static inline int hashCode-impl(int p);
-    method public static operator int minus-gshw56o(int $this, int other);
-    method public static operator int plus-gshw56o(int $this, int other);
-    method public static inline operator int rem-impl(int $this, int other);
-    method public static operator int times-impl(int $this, float other);
-    method public static operator int times-impl(int $this, double other);
-    method public static operator int times-impl(int $this, int other);
-    method public static String toString-impl(int $this);
-    method public static operator int unaryMinus-impl(int $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(int p);
+    method @androidx.compose.Stable public static operator int minus-gshw56o(int $this, int other);
+    method @androidx.compose.Stable public static operator int plus-gshw56o(int $this, int other);
+    method @androidx.compose.Stable public static inline operator int rem-impl(int $this, int other);
+    method @androidx.compose.Stable public static operator int times-impl(int $this, float other);
+    method @androidx.compose.Stable public static operator int times-impl(int $this, double other);
+    method @androidx.compose.Stable public static operator int times-impl(int $this, int other);
+    method @androidx.compose.Stable public static String toString-impl(int $this);
+    method @androidx.compose.Stable public static operator int unaryMinus-impl(int $this);
     field public static final androidx.ui.unit.IntPx.Companion! Companion;
   }
 
@@ -319,12 +319,12 @@
     property public final int Zero;
   }
 
-  public final class IntPxBounds {
+  @androidx.compose.Immutable public final class IntPxBounds {
     method public int component1();
     method public int component2();
     method public int component3();
     method public int component4();
-    method public androidx.ui.unit.IntPxBounds copy-Q13GOEE(int left, int top, int right, int bottom);
+    method @androidx.compose.Immutable public androidx.ui.unit.IntPxBounds copy-Q13GOEE(int left, int top, int right, int bottom);
     method public int getBottom();
     method public int getLeft();
     method public int getRight();
@@ -333,41 +333,41 @@
 
   public final class IntPxKt {
     method public static inline androidx.ui.unit.IntPxPosition IntPxPosition-rRMsBxU(int x, int y);
-    method public static inline androidx.ui.unit.IntPxSize IntPxSize-rRMsBxU(int width, int height);
-    method public static inline androidx.ui.unit.PxPosition PxPosition-rRMsBxU(int x, int y);
-    method public static inline androidx.ui.unit.PxSize PxSize-rRMsBxU(int width, int height);
-    method public static inline int ceil-NgWp0Z8(float);
-    method public static androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxSize);
-    method public static inline androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxBounds);
-    method public static inline int coerceAtLeast-rRMsBxU(int, int minimumValue);
-    method public static inline int coerceAtMost-rRMsBxU(int, int maximumValue);
-    method public static inline int coerceIn-qx1LT1w(int, int minimumValue, int maximumValue);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.IntPxSize IntPxSize-rRMsBxU(int width, int height);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition PxPosition-rRMsBxU(int x, int y);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxSize PxSize-rRMsBxU(int width, int height);
+    method @androidx.compose.Stable public static inline int ceil-NgWp0Z8(float);
+    method @androidx.compose.Stable public static androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxSize);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxBounds);
+    method @androidx.compose.Stable public static inline int coerceAtLeast-rRMsBxU(int, int minimumValue);
+    method @androidx.compose.Stable public static inline int coerceAtMost-rRMsBxU(int, int maximumValue);
+    method @androidx.compose.Stable public static inline int coerceIn-qx1LT1w(int, int minimumValue, int maximumValue);
     method public static inline int getHeight(androidx.ui.unit.IntPxBounds);
     method public static inline int getIpx(int);
     method public static inline int getWidth(androidx.ui.unit.IntPxBounds);
-    method public static inline boolean isFinite-gshw56o(int);
-    method public static androidx.ui.unit.IntPxPosition lerp(androidx.ui.unit.IntPxPosition start, androidx.ui.unit.IntPxPosition stop, float fraction);
-    method public static int lerp-9BbVZj8(int start, int stop, float fraction);
-    method public static inline int max-rRMsBxU(int a, int b);
-    method public static inline int min-rRMsBxU(int a, int b);
-    method public static inline int round-NgWp0Z8(float);
-    method public static inline operator androidx.ui.unit.IntPxSize times(int, androidx.ui.unit.IntPxSize size);
-    method public static inline operator int times--Vi_IPY(float, int other);
-    method public static inline operator int times-9kGzznM(int, int other);
-    method public static inline operator int times-tHVXE4c(double, int other);
+    method @androidx.compose.Stable public static inline boolean isFinite-gshw56o(int);
+    method @androidx.compose.Stable public static androidx.ui.unit.IntPxPosition lerp(androidx.ui.unit.IntPxPosition start, androidx.ui.unit.IntPxPosition stop, float fraction);
+    method @androidx.compose.Stable public static int lerp-9BbVZj8(int start, int stop, float fraction);
+    method @androidx.compose.Stable public static inline int max-rRMsBxU(int a, int b);
+    method @androidx.compose.Stable public static inline int min-rRMsBxU(int a, int b);
+    method @androidx.compose.Stable public static inline int round-NgWp0Z8(float);
+    method @androidx.compose.Stable public static inline operator androidx.ui.unit.IntPxSize times(int, androidx.ui.unit.IntPxSize size);
+    method @androidx.compose.Stable public static inline operator int times--Vi_IPY(float, int other);
+    method @androidx.compose.Stable public static inline operator int times-9kGzznM(int, int other);
+    method @androidx.compose.Stable public static inline operator int times-tHVXE4c(double, int other);
     method public static inline float toPx-gshw56o(int);
-    method public static inline androidx.ui.unit.PxPosition toPxPosition(androidx.ui.unit.IntPxPosition);
-    method public static inline androidx.ui.unit.PxSize toPxSize(androidx.ui.unit.IntPxSize);
-    method public static inline androidx.ui.unit.IntPxSize toSize(androidx.ui.unit.IntPxBounds);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition toPxPosition(androidx.ui.unit.IntPxPosition);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxSize toPxSize(androidx.ui.unit.IntPxSize);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.IntPxSize toSize(androidx.ui.unit.IntPxBounds);
   }
 
-  public final class IntPxPosition {
-    method public androidx.ui.unit.IntPxPosition copy(long value);
+  @androidx.compose.Immutable public final class IntPxPosition {
+    method @androidx.compose.Immutable public androidx.ui.unit.IntPxPosition copy(long value);
     method public inline int getX();
     method public inline int getY();
-    method public inline operator androidx.ui.unit.IntPxPosition minus(androidx.ui.unit.IntPxPosition other);
-    method public inline operator androidx.ui.unit.IntPxPosition plus(androidx.ui.unit.IntPxPosition other);
-    method public inline operator androidx.ui.unit.IntPxPosition unaryMinus();
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxPosition minus(androidx.ui.unit.IntPxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxPosition plus(androidx.ui.unit.IntPxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxPosition unaryMinus();
     property public final inline int x;
     property public final inline int y;
     field public static final androidx.ui.unit.IntPxPosition.Companion! Companion;
@@ -378,12 +378,12 @@
     property public final androidx.ui.unit.IntPxPosition Origin;
   }
 
-  public final class IntPxSize {
-    method public androidx.ui.unit.IntPxSize copy(long value);
-    method public inline operator androidx.ui.unit.IntPxSize div(int other);
+  @androidx.compose.Immutable public final class IntPxSize {
+    method @androidx.compose.Immutable public androidx.ui.unit.IntPxSize copy(long value);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxSize div(int other);
     method public inline int getHeight();
     method public inline int getWidth();
-    method public inline operator androidx.ui.unit.IntPxSize times(int other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxSize times(int other);
     property public final inline int height;
     property public final inline int width;
     field public static final androidx.ui.unit.IntPxSize.Companion! Companion;
@@ -394,61 +394,61 @@
     property public final androidx.ui.unit.IntPxSize Zero;
   }
 
-  public final inline class IntSize {
+  @androidx.compose.Immutable public final inline class IntSize {
     ctor public IntSize();
     method public static long constructor-impl(internal long value);
-    method public static operator long div-impl(long $this, int other);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static operator long div-impl(long $this, int other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static int getHeight-impl(long $this);
     method public static int getWidth-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static operator long times-impl(long $this, int other);
-    method public static String toString-impl(long $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Stable public static operator long times-impl(long $this, int other);
+    method @androidx.compose.Stable public static String toString-impl(long $this);
   }
 
   public final class IntSizeKt {
-    method public static long IntSize(int width, int height);
-    method public static operator long times-twsQOwo(int, long size);
+    method @androidx.compose.Stable public static long IntSize(int width, int height);
+    method @androidx.compose.Stable public static operator long times-twsQOwo(int, long size);
   }
 
-  public final inline class Position {
+  @androidx.compose.Immutable public final inline class Position {
     ctor public Position();
     method public static long constructor-impl(internal long value);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static float getX-impl(long $this);
     method public static float getY-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static inline operator long minus-T8eBu-w(long $this, long other);
-    method public static inline operator long plus-T8eBu-w(long $this, long other);
-    method public static String toString-impl(long $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Stable public static inline operator long minus-T8eBu-w(long $this, long other);
+    method @androidx.compose.Stable public static inline operator long plus-T8eBu-w(long $this, long other);
+    method @androidx.compose.Stable public static String toString-impl(long $this);
   }
 
-  public final inline class Px implements java.lang.Comparable<androidx.ui.unit.Px> {
+  @androidx.compose.Immutable public final inline class Px implements java.lang.Comparable<androidx.ui.unit.Px> {
     ctor public Px();
-    method public operator int compareTo-NgWp0Z8(float p);
-    method public static operator int compareTo-NgWp0Z8(float $this, float other);
-    method public static inline operator int compareTo-gshw56o(float $this, int other);
+    method @androidx.compose.Stable public operator int compareTo-NgWp0Z8(float p);
+    method @androidx.compose.Stable public static operator int compareTo-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator int compareTo-gshw56o(float $this, int other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-NgWp0Z8(float $this, float other);
-    method public static inline operator float div-RjPF0Mw(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-impl(float $this, int other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, int other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-NgWp0Z8(float $this, float other);
-    method public static inline operator float minus-gshw56o(float $this, int other);
-    method public static inline operator float plus-NgWp0Z8(float $this, float other);
-    method public static inline operator float plus-gshw56o(float $this, int other);
-    method public static inline operator float times-NgWp0Z8(float $this, float other);
-    method public static inline operator float times-RjPF0Mw(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, int other);
-    method public static String toString-impl(float $this);
-    method public static inline operator float unaryMinus-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float minus-gshw56o(float $this, int other);
+    method @androidx.compose.Stable public static inline operator float plus-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float plus-gshw56o(float $this, int other);
+    method @androidx.compose.Stable public static inline operator float times-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, int other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
+    method @androidx.compose.Stable public static inline operator float unaryMinus-impl(float $this);
     field public static final androidx.ui.unit.Px.Companion! Companion;
   }
 
@@ -459,105 +459,105 @@
     property public final float Zero;
   }
 
-  public final class PxBounds {
+  @androidx.compose.Immutable public final class PxBounds {
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
-    method public androidx.ui.unit.PxBounds copy-wHlpFhg(float left, float top, float right, float bottom);
+    method @androidx.compose.Immutable public androidx.ui.unit.PxBounds copy-wHlpFhg(float left, float top, float right, float bottom);
     method public float getBottom();
     method public float getLeft();
     method public float getRight();
     method public float getTop();
   }
 
-  public final inline class PxCubed implements java.lang.Comparable<androidx.ui.unit.PxCubed> {
+  @androidx.compose.Immutable public final inline class PxCubed implements java.lang.Comparable<androidx.ui.unit.PxCubed> {
     ctor public PxCubed();
-    method public operator int compareTo-bji3ab4(float p);
-    method public static operator int compareTo-bji3ab4(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-bji3ab4(float p);
+    method @androidx.compose.Stable public static operator int compareTo-bji3ab4(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-NgWp0Z8(float $this, float other);
-    method public static inline operator float div-RjPF0Mw(float $this, float other);
-    method public static inline operator float div-bji3ab4(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-bji3ab4(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-bji3ab4(float $this, float dimension);
-    method public static inline operator float plus-bji3ab4(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-bji3ab4(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float plus-bji3ab4(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
-  public final inline class PxInverse implements java.lang.Comparable<androidx.ui.unit.PxInverse> {
+  @androidx.compose.Immutable public final inline class PxInverse implements java.lang.Comparable<androidx.ui.unit.PxInverse> {
     ctor public PxInverse();
-    method public operator int compareTo-KGV0gLo(float p);
-    method public static operator int compareTo-KGV0gLo(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-KGV0gLo(float p);
+    method @androidx.compose.Stable public static operator int compareTo-KGV0gLo(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-KGV0gLo(float $this, float dimension);
-    method public static inline operator float plus-KGV0gLo(float $this, float dimension);
-    method public static inline operator float times-NgWp0Z8(float $this, float other);
-    method public static inline operator float times-RjPF0Mw(float $this, float other);
-    method public static inline operator float times-bji3ab4(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-KGV0gLo(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float plus-KGV0gLo(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float times-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-bji3ab4(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
   public final class PxKt {
-    method public static inline androidx.ui.unit.PxBounds PxBounds(androidx.ui.unit.PxPosition topLeft, androidx.ui.unit.PxSize size);
-    method public static inline androidx.ui.unit.PxPosition PxPosition(float x, float y);
-    method public static inline androidx.ui.unit.PxPosition PxPosition-qHcltEY(float x, float y);
-    method public static inline androidx.ui.unit.PxSize PxSize(float width, float height);
-    method public static inline androidx.ui.unit.PxSize PxSize-qHcltEY(float width, float height);
-    method public static inline float abs-NgWp0Z8(float x);
-    method public static androidx.ui.unit.PxPosition center(androidx.ui.unit.PxSize);
-    method public static inline androidx.ui.unit.PxPosition center(androidx.ui.unit.PxBounds);
-    method public static inline float coerceAtLeast-qHcltEY(float, float minimumValue);
-    method public static inline float coerceAtMost-qHcltEY(float, float maximumValue);
-    method public static inline float coerceIn-HXvnt1Q(float, float minimumValue, float maximumValue);
-    method public static inline operator float div-78fIwVY(double, float other);
-    method public static inline operator float div-Ndu7NvY(int, float other);
-    method public static inline operator float div-kxDXtn8(float, float other);
-    method public static float getDistance(androidx.ui.unit.PxPosition);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxBounds PxBounds(androidx.ui.unit.PxPosition topLeft, androidx.ui.unit.PxSize size);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition PxPosition(float x, float y);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition PxPosition-qHcltEY(float x, float y);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxSize PxSize(float width, float height);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxSize PxSize-qHcltEY(float width, float height);
+    method @androidx.compose.Stable public static inline float abs-NgWp0Z8(float x);
+    method @androidx.compose.Stable public static androidx.ui.unit.PxPosition center(androidx.ui.unit.PxSize);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition center(androidx.ui.unit.PxBounds);
+    method @androidx.compose.Stable public static inline float coerceAtLeast-qHcltEY(float, float minimumValue);
+    method @androidx.compose.Stable public static inline float coerceAtMost-qHcltEY(float, float maximumValue);
+    method @androidx.compose.Stable public static inline float coerceIn-HXvnt1Q(float, float minimumValue, float maximumValue);
+    method @androidx.compose.Stable public static inline operator float div-78fIwVY(double, float other);
+    method @androidx.compose.Stable public static inline operator float div-Ndu7NvY(int, float other);
+    method @androidx.compose.Stable public static inline operator float div-kxDXtn8(float, float other);
+    method @androidx.compose.Stable public static float getDistance(androidx.ui.unit.PxPosition);
     method public static inline float getHeight(androidx.ui.unit.PxBounds);
     method public static float getMinDimension(androidx.ui.unit.PxSize);
     method public static inline float getPx(int);
     method public static inline float getPx(double);
     method public static inline float getPx(float);
     method public static inline float getWidth(androidx.ui.unit.PxBounds);
-    method public static androidx.ui.unit.PxPosition lerp(androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition stop, float fraction);
-    method public static float lerp-g-Fs4Ag(float start, float stop, float fraction);
-    method public static inline float max-qHcltEY(float a, float b);
-    method public static inline float min-qHcltEY(float a, float b);
-    method public static inline androidx.ui.unit.IntPxPosition round(androidx.ui.unit.PxPosition);
-    method public static inline operator androidx.ui.unit.PxSize times(int, androidx.ui.unit.PxSize size);
-    method public static inline operator androidx.ui.unit.PxSize times(float, androidx.ui.unit.PxSize size);
-    method public static inline operator androidx.ui.unit.PxSize times(double, androidx.ui.unit.PxSize size);
-    method public static inline operator float times-78fIwVY(double, float other);
-    method public static inline operator float times-Ndu7NvY(int, float other);
-    method public static inline operator float times-kxDXtn8(float, float other);
-    method public static androidx.ui.unit.PxBounds toBounds(androidx.ui.unit.PxSize);
-    method public static inline long toOffset(androidx.ui.unit.PxPosition);
-    method public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxBounds);
-    method public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxSize);
-    method public static androidx.ui.unit.PxSize toSize(androidx.ui.unit.PxBounds);
+    method @androidx.compose.Stable public static androidx.ui.unit.PxPosition lerp(androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition stop, float fraction);
+    method @androidx.compose.Stable public static float lerp-g-Fs4Ag(float start, float stop, float fraction);
+    method @androidx.compose.Stable public static inline float max-qHcltEY(float a, float b);
+    method @androidx.compose.Stable public static inline float min-qHcltEY(float a, float b);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.IntPxPosition round(androidx.ui.unit.PxPosition);
+    method @androidx.compose.Stable public static inline operator androidx.ui.unit.PxSize times(int, androidx.ui.unit.PxSize size);
+    method @androidx.compose.Stable public static inline operator androidx.ui.unit.PxSize times(float, androidx.ui.unit.PxSize size);
+    method @androidx.compose.Stable public static inline operator androidx.ui.unit.PxSize times(double, androidx.ui.unit.PxSize size);
+    method @androidx.compose.Stable public static inline operator float times-78fIwVY(double, float other);
+    method @androidx.compose.Stable public static inline operator float times-Ndu7NvY(int, float other);
+    method @androidx.compose.Stable public static inline operator float times-kxDXtn8(float, float other);
+    method @androidx.compose.Stable public static androidx.ui.unit.PxBounds toBounds(androidx.ui.unit.PxSize);
+    method @androidx.compose.Stable public static inline long toOffset(androidx.ui.unit.PxPosition);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxBounds);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxSize);
+    method @androidx.compose.Stable public static androidx.ui.unit.PxSize toSize(androidx.ui.unit.PxBounds);
   }
 
-  public final class PxPosition {
-    method public androidx.ui.unit.PxPosition copy(long value);
+  @androidx.compose.Immutable public final class PxPosition {
+    method @androidx.compose.Immutable public androidx.ui.unit.PxPosition copy(long value);
     method public inline float getX();
     method public inline float getY();
-    method public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.PxPosition other);
-    method public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.IntPxPosition other);
-    method public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.PxPosition other);
-    method public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.IntPxPosition other);
-    method public inline operator androidx.ui.unit.PxPosition unaryMinus();
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.PxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.IntPxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.PxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.IntPxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition unaryMinus();
     property public final inline float x;
     property public final inline float y;
     field public static final androidx.ui.unit.PxPosition.Companion! Companion;
@@ -568,16 +568,16 @@
     property public final androidx.ui.unit.PxPosition Origin;
   }
 
-  public final class PxSize {
-    method public androidx.ui.unit.PxSize copy(long value);
-    method public inline operator androidx.ui.unit.PxSize div(int other);
-    method public inline operator androidx.ui.unit.PxSize div(float other);
-    method public inline operator androidx.ui.unit.PxSize div(double other);
+  @androidx.compose.Immutable public final class PxSize {
+    method @androidx.compose.Immutable public androidx.ui.unit.PxSize copy(long value);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize div(int other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize div(float other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize div(double other);
     method public inline float getHeight();
     method public inline float getWidth();
-    method public inline operator androidx.ui.unit.PxSize times(int other);
-    method public inline operator androidx.ui.unit.PxSize times(float other);
-    method public inline operator androidx.ui.unit.PxSize times(double other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize times(int other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize times(float other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize times(double other);
     property public final inline float height;
     property public final inline float width;
     field public static final androidx.ui.unit.PxSize.Companion! Companion;
@@ -590,27 +590,27 @@
     property public final androidx.ui.unit.PxSize Zero;
   }
 
-  public final inline class PxSquared implements java.lang.Comparable<androidx.ui.unit.PxSquared> {
+  @androidx.compose.Immutable public final inline class PxSquared implements java.lang.Comparable<androidx.ui.unit.PxSquared> {
     ctor public PxSquared();
-    method public operator int compareTo-RjPF0Mw(float p);
-    method public static operator int compareTo-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-RjPF0Mw(float p);
+    method @androidx.compose.Stable public static operator int compareTo-RjPF0Mw(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-NgWp0Z8(float $this, float other);
-    method public static inline operator float div-RjPF0Mw(float $this, float other);
-    method public static inline operator float div-bji3ab4(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-bji3ab4(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-RjPF0Mw(float $this, float other);
-    method public static inline operator float plus-RjPF0Mw(float $this, float other);
-    method public static inline operator float times-NgWp0Z8(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float plus-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
-  public final inline class TextUnit {
+  @androidx.compose.Immutable public final inline class TextUnit {
     ctor public TextUnit();
     method public static inline operator int compareTo-vVlMl6k(long $this, long other);
     method public static long constructor-impl(long packedValue);
@@ -618,12 +618,12 @@
     method public static inline operator long div-impl(long $this, double other);
     method public static inline operator long div-impl(long $this, int other);
     method public static inline operator float div-vVlMl6k(long $this, long other);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public long getPackedValue();
     method public static androidx.ui.unit.TextUnitType getType-impl(long $this);
     method public static float getValue-impl(long $this);
-    method public static inline int hashCode-impl(long p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
     method public static boolean isEm-impl(long $this);
     method public static boolean isInherit-impl(long $this);
     method public static boolean isSp-impl(long $this);
@@ -649,21 +649,21 @@
   }
 
   public final class TextUnitKt {
-    method public static inline long coerceAtLeast-gL_aCS0(long, long minimumValue);
-    method public static inline long coerceAtMost-gL_aCS0(long, long maximumValue);
-    method public static inline long coerceIn-Y2exRck(long, long minimumValue, long maximumValue);
+    method @androidx.compose.Stable public static inline long coerceAtLeast-gL_aCS0(long, long minimumValue);
+    method @androidx.compose.Stable public static inline long coerceAtMost-gL_aCS0(long, long maximumValue);
+    method @androidx.compose.Stable public static inline long coerceIn-Y2exRck(long, long minimumValue, long maximumValue);
     method public static long getEm(float);
     method public static long getEm(double);
     method public static long getEm(int);
     method public static long getSp(float);
     method public static long getSp(double);
     method public static long getSp(int);
-    method public static long lerp-SpZbbpo(long a, long b, float t);
-    method public static inline long max-gL_aCS0(long a, long b);
-    method public static inline long min-gL_aCS0(long a, long b);
-    method public static inline operator long times-GncdoDw(double, long other);
-    method public static inline operator long times-MVx5XBU(float, long other);
-    method public static inline operator long times-UlzjdM0(int, long other);
+    method @androidx.compose.Stable public static long lerp-SpZbbpo(long a, long b, float t);
+    method @androidx.compose.Stable public static inline long max-gL_aCS0(long a, long b);
+    method @androidx.compose.Stable public static inline long min-gL_aCS0(long a, long b);
+    method @androidx.compose.Stable public static inline operator long times-GncdoDw(double, long other);
+    method @androidx.compose.Stable public static inline operator long times-MVx5XBU(float, long other);
+    method @androidx.compose.Stable public static inline operator long times-UlzjdM0(int, long other);
   }
 
   public enum TextUnitType {
@@ -672,11 +672,11 @@
     enum_constant public static final androidx.ui.unit.TextUnitType Sp;
   }
 
-  public final class Uptime implements java.lang.Comparable<androidx.ui.unit.Uptime> {
+  @androidx.compose.Immutable public final class Uptime implements java.lang.Comparable<androidx.ui.unit.Uptime> {
     ctor public Uptime(long nanoseconds);
     method public int compareTo(androidx.ui.unit.Uptime other);
     method public long component1();
-    method public androidx.ui.unit.Uptime copy(long nanoseconds);
+    method @androidx.compose.Immutable public androidx.ui.unit.Uptime copy(long nanoseconds);
     method public long getNanoseconds();
     method public operator androidx.ui.unit.Uptime minus(androidx.ui.unit.Duration duration);
     method public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Uptime other);
@@ -693,10 +693,10 @@
     method public static operator androidx.ui.unit.Uptime plus(androidx.ui.unit.Duration, androidx.ui.unit.Uptime uptime);
   }
 
-  public final class Velocity {
+  @androidx.compose.Immutable public final class Velocity {
     ctor public Velocity(androidx.ui.unit.PxPosition pixelsPerSecond);
     method public androidx.ui.unit.PxPosition component1();
-    method public androidx.ui.unit.Velocity copy(androidx.ui.unit.PxPosition pixelsPerSecond);
+    method @androidx.compose.Immutable public androidx.ui.unit.Velocity copy(androidx.ui.unit.PxPosition pixelsPerSecond);
     method public androidx.ui.unit.PxPosition getPixelsPerSecond();
     method public operator androidx.ui.unit.Velocity unaryMinus();
     field public static final androidx.ui.unit.Velocity.Companion! Companion;
diff --git a/ui/ui-unit/api/current.txt b/ui/ui-unit/api/current.txt
index 05a1680..68a02a8 100644
--- a/ui/ui-unit/api/current.txt
+++ b/ui/ui-unit/api/current.txt
@@ -1,12 +1,12 @@
 // Signature format: 3.0
 package androidx.ui.core {
 
-  public final class Constraints {
+  @androidx.compose.Immutable public final class Constraints {
     method public int component1();
     method public int component2();
     method public int component3();
     method public int component4();
-    method public androidx.ui.core.Constraints copy-Q13GOEE(int minWidth, int maxWidth, int minHeight, int maxHeight);
+    method @androidx.compose.Immutable public androidx.ui.core.Constraints copy-Q13GOEE(int minWidth, int maxWidth, int minHeight, int maxHeight);
     method public int getMaxHeight();
     method public int getMaxWidth();
     method public int getMinHeight();
@@ -15,16 +15,16 @@
   }
 
   public static final class Constraints.Companion {
-    method public androidx.ui.core.Constraints fixed-rRMsBxU(int width, int height);
-    method public androidx.ui.core.Constraints fixedHeight-gshw56o(int height);
-    method public androidx.ui.core.Constraints fixedWidth-gshw56o(int width);
+    method @androidx.compose.Stable public androidx.ui.core.Constraints fixed-rRMsBxU(int width, int height);
+    method @androidx.compose.Stable public androidx.ui.core.Constraints fixedHeight-gshw56o(int height);
+    method @androidx.compose.Stable public androidx.ui.core.Constraints fixedWidth-gshw56o(int width);
   }
 
-  public final inline class Constraints2 {
+  @androidx.compose.Immutable public final inline class Constraints2 {
     ctor public Constraints2();
     method public static long constructor-impl(internal long value);
-    method public static long copy-impl(long $this, int minWidth = this.minWidth, int maxWidth = this.maxWidth, int minHeight = this.minHeight, int maxHeight = this.maxHeight);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static long copy-impl(long $this, int minWidth = this.minWidth, int maxWidth = this.maxWidth, int minHeight = this.minHeight, int maxHeight = this.maxHeight);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static boolean getHasBoundedHeight-impl(long $this);
     method public static boolean getHasBoundedWidth-impl(long $this);
@@ -32,39 +32,39 @@
     method public static int getMaxWidth-impl(long $this);
     method public static int getMinHeight-impl(long $this);
     method public static int getMinWidth-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static inline String! toString-impl(long p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Immutable public static inline String! toString-impl(long p);
     field public static final androidx.ui.core.Constraints2.Companion! Companion;
-    field public static final int Infinity = -1073741824; // 0xc0000000
+    field @androidx.compose.Stable public static final int Infinity = -1073741824; // 0xc0000000
   }
 
   public static final class Constraints2.Companion {
-    method public long fixed(int width, int height);
-    method public long fixedHeight(int height);
-    method public long fixedWidth(int width);
+    method @androidx.compose.Stable public long fixed(int width, int height);
+    method @androidx.compose.Stable public long fixedHeight(int height);
+    method @androidx.compose.Stable public long fixedWidth(int width);
   }
 
   public final class Constraints2Kt {
-    method public static long Constraints2(@IntRange(from=0) int minWidth = 0, int maxWidth = -1073741824, @IntRange(from=0) int minHeight = 0, int maxHeight = -1073741824);
-    method public static long constrain-M1ogGms(long, long size);
-    method public static long enforce-uQjoOwo(long, long otherConstraints);
+    method @androidx.compose.Stable public static long Constraints2(@IntRange(from=0) int minWidth = 0, int maxWidth = -1073741824, @IntRange(from=0) int minHeight = 0, int maxHeight = -1073741824);
+    method @androidx.compose.Stable public static long constrain-M1ogGms(long, long size);
+    method @androidx.compose.Stable public static long enforce-uQjoOwo(long, long otherConstraints);
     method public static boolean getHasFixedHeight-ybNdgAI(long);
     method public static boolean getHasFixedWidth-ybNdgAI(long);
     method public static boolean isZero-ybNdgAI(long);
-    method public static long offset-xOKVbDg(long, int horizontal = 0, int vertical = 0);
-    method public static boolean satisfiedBy-M1ogGms(long, long size);
+    method @androidx.compose.Stable public static long offset-xOKVbDg(long, int horizontal = 0, int vertical = 0);
+    method @androidx.compose.Stable public static boolean satisfiedBy-M1ogGms(long, long size);
   }
 
   public final class ConstraintsKt {
-    method public static androidx.ui.unit.IntPxSize constrain(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
-    method public static androidx.ui.core.Constraints enforce(androidx.ui.core.Constraints, androidx.ui.core.Constraints otherConstraints);
+    method @androidx.compose.Stable public static androidx.ui.unit.IntPxSize constrain(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
+    method @androidx.compose.Stable public static androidx.ui.core.Constraints enforce(androidx.ui.core.Constraints, androidx.ui.core.Constraints otherConstraints);
     method public static boolean getHasBoundedHeight(androidx.ui.core.Constraints);
     method public static boolean getHasBoundedWidth(androidx.ui.core.Constraints);
     method public static boolean getHasFixedHeight(androidx.ui.core.Constraints);
     method public static boolean getHasFixedWidth(androidx.ui.core.Constraints);
     method public static boolean isZero(androidx.ui.core.Constraints);
-    method public static androidx.ui.core.Constraints offset-3L2DHGc(androidx.ui.core.Constraints, int horizontal = 0.ipx, int vertical = 0.ipx);
-    method public static boolean satisfiedBy(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
+    method @androidx.compose.Stable public static androidx.ui.core.Constraints offset-3L2DHGc(androidx.ui.core.Constraints, int horizontal = 0.ipx, int vertical = 0.ipx);
+    method @androidx.compose.Stable public static boolean satisfiedBy(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
   }
 
   public enum LayoutDirection {
@@ -80,65 +80,65 @@
     method public static androidx.ui.unit.Density Density(android.content.Context context);
   }
 
-  public final class Bounds {
+  @androidx.compose.Immutable public final class Bounds {
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
-    method public androidx.ui.unit.Bounds copy-rIHlIKc(float left, float top, float right, float bottom);
+    method @androidx.compose.Immutable public androidx.ui.unit.Bounds copy-rIHlIKc(float left, float top, float right, float bottom);
     method public float getBottom();
     method public float getLeft();
     method public float getRight();
     method public float getTop();
   }
 
-  public interface Density {
+  @androidx.compose.Immutable public interface Density {
     method public float getDensity();
     method public float getFontScale();
-    method public default float toDp(float);
-    method public default float toDp(int);
-    method public default float toDp-NgWp0Z8(float);
-    method public default float toDp-gshw56o(int);
-    method public default float toDp-vVlMl6k(long);
-    method public default int toIntPx-ipo6vVg(float);
-    method public default int toIntPx-vVlMl6k(long);
-    method public default float toPx-ipo6vVg(float);
-    method public default float toPx-vVlMl6k(long);
-    method public default androidx.ui.geometry.Rect toRect(androidx.ui.unit.Bounds);
-    method public default long toSp(float);
-    method public default long toSp(int);
-    method public default long toSp-NgWp0Z8(float);
-    method public default long toSp-gshw56o(int);
-    method public default long toSp-ipo6vVg(float);
+    method @androidx.compose.Stable public default float toDp(float);
+    method @androidx.compose.Stable public default float toDp(int);
+    method @androidx.compose.Stable public default float toDp-NgWp0Z8(float);
+    method @androidx.compose.Stable public default float toDp-gshw56o(int);
+    method @androidx.compose.Stable public default float toDp-vVlMl6k(long);
+    method @androidx.compose.Stable public default int toIntPx-ipo6vVg(float);
+    method @androidx.compose.Stable public default int toIntPx-vVlMl6k(long);
+    method @androidx.compose.Stable public default float toPx-ipo6vVg(float);
+    method @androidx.compose.Stable public default float toPx-vVlMl6k(long);
+    method @androidx.compose.Stable public default androidx.ui.geometry.Rect toRect(androidx.ui.unit.Bounds);
+    method @androidx.compose.Stable public default long toSp(float);
+    method @androidx.compose.Stable public default long toSp(int);
+    method @androidx.compose.Stable public default long toSp-NgWp0Z8(float);
+    method @androidx.compose.Stable public default long toSp-gshw56o(int);
+    method @androidx.compose.Stable public default long toSp-ipo6vVg(float);
     property public abstract float density;
     property public abstract float fontScale;
   }
 
   public final class DensityKt {
-    method public static androidx.ui.unit.Density Density(float density, float fontScale = 1f);
+    method @androidx.compose.Stable public static androidx.ui.unit.Density Density(float density, float fontScale = 1f);
   }
 
-  public final inline class Dp implements java.lang.Comparable<androidx.ui.unit.Dp> {
+  @androidx.compose.Immutable public final inline class Dp implements java.lang.Comparable<androidx.ui.unit.Dp> {
     ctor public Dp();
-    method public operator int compareTo-ipo6vVg(float p);
-    method public static operator int compareTo-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-ipo6vVg(float p);
+    method @androidx.compose.Stable public static operator int compareTo-ipo6vVg(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-impl(float $this, int other);
-    method public static inline operator float div-ipo6vVg(float $this, float other);
-    method public static inline operator float div-x8crYZs(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, int other);
+    method @androidx.compose.Stable public static inline operator float div-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-x8crYZs(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-ipo6vVg(float $this, float other);
-    method public static inline operator float plus-ipo6vVg(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, int other);
-    method public static inline operator float times-ipo6vVg(float $this, float other);
-    method public static inline operator float times-x8crYZs(float $this, float other);
-    method public static String toString-impl(float $this);
-    method public static inline operator float unaryMinus-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float plus-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, int other);
+    method @androidx.compose.Stable public static inline operator float times-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
+    method @androidx.compose.Stable public static inline operator float unaryMinus-impl(float $this);
     field public static final androidx.ui.unit.Dp.Companion! Companion;
   }
 
@@ -151,100 +151,100 @@
     property public final float Unspecified;
   }
 
-  public final inline class DpCubed implements java.lang.Comparable<androidx.ui.unit.DpCubed> {
+  @androidx.compose.Immutable public final inline class DpCubed implements java.lang.Comparable<androidx.ui.unit.DpCubed> {
     ctor public DpCubed();
-    method public operator int compareTo-JDqhs2g(float p);
-    method public static operator int compareTo-JDqhs2g(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-JDqhs2g(float p);
+    method @androidx.compose.Stable public static operator int compareTo-JDqhs2g(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-JDqhs2g(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-ipo6vVg(float $this, float other);
-    method public static inline operator float div-x8crYZs(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-JDqhs2g(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-x8crYZs(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-JDqhs2g(float $this, float dimension);
-    method public static inline operator float plus-JDqhs2g(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-JDqhs2g(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float plus-JDqhs2g(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
-  public final inline class DpInverse implements java.lang.Comparable<androidx.ui.unit.DpInverse> {
+  @androidx.compose.Immutable public final inline class DpInverse implements java.lang.Comparable<androidx.ui.unit.DpInverse> {
     ctor public DpInverse();
-    method public operator int compareTo-_K2iRR8(float p);
-    method public static operator int compareTo-_K2iRR8(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-_K2iRR8(float p);
+    method @androidx.compose.Stable public static operator int compareTo-_K2iRR8(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-_K2iRR8(float $this, float dimension);
-    method public static inline operator float plus-_K2iRR8(float $this, float dimension);
-    method public static inline operator float times-JDqhs2g(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-ipo6vVg(float $this, float other);
-    method public static inline operator float times-x8crYZs(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-_K2iRR8(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float plus-_K2iRR8(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float times-JDqhs2g(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
   public final class DpKt {
-    method public static inline long Position-98Cn76g(float x, float y);
-    method public static inline float coerceAtLeast-98Cn76g(float, float minimumValue);
-    method public static inline float coerceAtMost-98Cn76g(float, float maximumValue);
-    method public static inline float coerceIn-x40Cv7w(float, float minimumValue, float maximumValue);
-    method public static inline operator float div-H0Zl2lQ(float, float other);
-    method public static inline operator float div-Y_YOLaE(double, float other);
-    method public static inline operator float div-hZ6b2Ic(int, float other);
-    method public static float getDistance-T8eBu-w(long);
+    method @androidx.compose.Stable public static inline long Position-98Cn76g(float x, float y);
+    method @androidx.compose.Stable public static inline float coerceAtLeast-98Cn76g(float, float minimumValue);
+    method @androidx.compose.Stable public static inline float coerceAtMost-98Cn76g(float, float maximumValue);
+    method @androidx.compose.Stable public static inline float coerceIn-x40Cv7w(float, float minimumValue, float maximumValue);
+    method @androidx.compose.Stable public static inline operator float div-H0Zl2lQ(float, float other);
+    method @androidx.compose.Stable public static inline operator float div-Y_YOLaE(double, float other);
+    method @androidx.compose.Stable public static inline operator float div-hZ6b2Ic(int, float other);
+    method @androidx.compose.Stable public static float getDistance-T8eBu-w(long);
     method public static inline float getDp(int);
     method public static inline float getDp(double);
     method public static inline float getDp(float);
     method public static inline float getHeight(androidx.ui.unit.Bounds);
     method public static inline float getWidth(androidx.ui.unit.Bounds);
-    method public static inline boolean isFinite-ipo6vVg(float);
-    method public static float lerp-3WSoJcA(float start, float stop, float fraction);
-    method public static long lerp-d5NHFfI(long start, long stop, float fraction);
-    method public static inline float max-98Cn76g(float a, float b);
-    method public static inline float min-98Cn76g(float a, float b);
-    method public static inline operator float times-H0Zl2lQ(float, float other);
-    method public static inline operator float times-Y_YOLaE(double, float other);
-    method public static inline operator float times-hZ6b2Ic(int, float other);
+    method @androidx.compose.Stable public static inline boolean isFinite-ipo6vVg(float);
+    method @androidx.compose.Stable public static float lerp-3WSoJcA(float start, float stop, float fraction);
+    method @androidx.compose.Stable public static long lerp-d5NHFfI(long start, long stop, float fraction);
+    method @androidx.compose.Stable public static inline float max-98Cn76g(float a, float b);
+    method @androidx.compose.Stable public static inline float min-98Cn76g(float a, float b);
+    method @androidx.compose.Stable public static inline operator float times-H0Zl2lQ(float, float other);
+    method @androidx.compose.Stable public static inline operator float times-Y_YOLaE(double, float other);
+    method @androidx.compose.Stable public static inline operator float times-hZ6b2Ic(int, float other);
   }
 
-  public final inline class DpSquared implements java.lang.Comparable<androidx.ui.unit.DpSquared> {
+  @androidx.compose.Immutable public final inline class DpSquared implements java.lang.Comparable<androidx.ui.unit.DpSquared> {
     ctor public DpSquared();
-    method public operator int compareTo-x8crYZs(float p);
-    method public static operator int compareTo-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-x8crYZs(float p);
+    method @androidx.compose.Stable public static operator int compareTo-x8crYZs(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-JDqhs2g(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-ipo6vVg(float $this, float other);
-    method public static inline operator float div-x8crYZs(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-JDqhs2g(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-x8crYZs(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-x8crYZs(float $this, float other);
-    method public static inline operator float plus-x8crYZs(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-ipo6vVg(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float plus-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
-  public final class Duration implements java.lang.Comparable<androidx.ui.unit.Duration> {
+  @androidx.compose.Immutable public final class Duration implements java.lang.Comparable<androidx.ui.unit.Duration> {
     ctor public Duration(long nanoseconds);
-    method public int compareTo(androidx.ui.unit.Duration other);
+    method @androidx.compose.Stable public int compareTo(androidx.ui.unit.Duration other);
     method public long component1();
-    method public androidx.ui.unit.Duration copy(long nanoseconds);
-    method public operator androidx.ui.unit.Duration div(int quotient);
-    method public operator androidx.ui.unit.Duration div(double quotient);
+    method @androidx.compose.Immutable public androidx.ui.unit.Duration copy(long nanoseconds);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration div(int quotient);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration div(double quotient);
     method public long getNanoseconds();
-    method public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Duration other);
-    method public operator androidx.ui.unit.Duration plus(androidx.ui.unit.Duration other);
-    method public operator androidx.ui.unit.Duration times(int factor);
-    method public operator androidx.ui.unit.Duration times(double factor);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Duration other);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration plus(androidx.ui.unit.Duration other);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration times(int factor);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration times(double factor);
     field public static final androidx.ui.unit.Duration.Companion! Companion;
   }
 
@@ -288,27 +288,27 @@
     field public static final long SecondsPerMinute = 60L; // 0x3cL
   }
 
-  public final inline class IntPx implements java.lang.Comparable<androidx.ui.unit.IntPx> {
+  @androidx.compose.Immutable public final inline class IntPx implements java.lang.Comparable<androidx.ui.unit.IntPx> {
     ctor public IntPx();
-    method public static inline operator int compareTo-NgWp0Z8(int $this, float other);
-    method public operator int compareTo-gshw56o(int p);
-    method public static operator int compareTo-gshw56o(int $this, int other);
+    method @androidx.compose.Stable public static inline operator int compareTo-NgWp0Z8(int $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-gshw56o(int p);
+    method @androidx.compose.Stable public static operator int compareTo-gshw56o(int $this, int other);
     method public static int constructor-impl(int value);
-    method public static operator int div-impl(int $this, float other);
-    method public static operator int div-impl(int $this, double other);
-    method public static operator int div-impl(int $this, int other);
-    method public static inline boolean equals-impl(int p, Object? p1);
+    method @androidx.compose.Stable public static operator int div-impl(int $this, float other);
+    method @androidx.compose.Stable public static operator int div-impl(int $this, double other);
+    method @androidx.compose.Stable public static operator int div-impl(int $this, int other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(int p, Object? p1);
     method public static boolean equals-impl0(int p1, int p2);
     method public int getValue();
-    method public static inline int hashCode-impl(int p);
-    method public static operator int minus-gshw56o(int $this, int other);
-    method public static operator int plus-gshw56o(int $this, int other);
-    method public static inline operator int rem-impl(int $this, int other);
-    method public static operator int times-impl(int $this, float other);
-    method public static operator int times-impl(int $this, double other);
-    method public static operator int times-impl(int $this, int other);
-    method public static String toString-impl(int $this);
-    method public static operator int unaryMinus-impl(int $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(int p);
+    method @androidx.compose.Stable public static operator int minus-gshw56o(int $this, int other);
+    method @androidx.compose.Stable public static operator int plus-gshw56o(int $this, int other);
+    method @androidx.compose.Stable public static inline operator int rem-impl(int $this, int other);
+    method @androidx.compose.Stable public static operator int times-impl(int $this, float other);
+    method @androidx.compose.Stable public static operator int times-impl(int $this, double other);
+    method @androidx.compose.Stable public static operator int times-impl(int $this, int other);
+    method @androidx.compose.Stable public static String toString-impl(int $this);
+    method @androidx.compose.Stable public static operator int unaryMinus-impl(int $this);
     field public static final androidx.ui.unit.IntPx.Companion! Companion;
   }
 
@@ -319,12 +319,12 @@
     property public final int Zero;
   }
 
-  public final class IntPxBounds {
+  @androidx.compose.Immutable public final class IntPxBounds {
     method public int component1();
     method public int component2();
     method public int component3();
     method public int component4();
-    method public androidx.ui.unit.IntPxBounds copy-Q13GOEE(int left, int top, int right, int bottom);
+    method @androidx.compose.Immutable public androidx.ui.unit.IntPxBounds copy-Q13GOEE(int left, int top, int right, int bottom);
     method public int getBottom();
     method public int getLeft();
     method public int getRight();
@@ -333,41 +333,41 @@
 
   public final class IntPxKt {
     method public static inline androidx.ui.unit.IntPxPosition IntPxPosition-rRMsBxU(int x, int y);
-    method public static inline androidx.ui.unit.IntPxSize IntPxSize-rRMsBxU(int width, int height);
-    method public static inline androidx.ui.unit.PxPosition PxPosition-rRMsBxU(int x, int y);
-    method public static inline androidx.ui.unit.PxSize PxSize-rRMsBxU(int width, int height);
-    method public static inline int ceil-NgWp0Z8(float);
-    method public static androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxSize);
-    method public static inline androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxBounds);
-    method public static inline int coerceAtLeast-rRMsBxU(int, int minimumValue);
-    method public static inline int coerceAtMost-rRMsBxU(int, int maximumValue);
-    method public static inline int coerceIn-qx1LT1w(int, int minimumValue, int maximumValue);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.IntPxSize IntPxSize-rRMsBxU(int width, int height);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition PxPosition-rRMsBxU(int x, int y);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxSize PxSize-rRMsBxU(int width, int height);
+    method @androidx.compose.Stable public static inline int ceil-NgWp0Z8(float);
+    method @androidx.compose.Stable public static androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxSize);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxBounds);
+    method @androidx.compose.Stable public static inline int coerceAtLeast-rRMsBxU(int, int minimumValue);
+    method @androidx.compose.Stable public static inline int coerceAtMost-rRMsBxU(int, int maximumValue);
+    method @androidx.compose.Stable public static inline int coerceIn-qx1LT1w(int, int minimumValue, int maximumValue);
     method public static inline int getHeight(androidx.ui.unit.IntPxBounds);
     method public static inline int getIpx(int);
     method public static inline int getWidth(androidx.ui.unit.IntPxBounds);
-    method public static inline boolean isFinite-gshw56o(int);
-    method public static androidx.ui.unit.IntPxPosition lerp(androidx.ui.unit.IntPxPosition start, androidx.ui.unit.IntPxPosition stop, float fraction);
-    method public static int lerp-9BbVZj8(int start, int stop, float fraction);
-    method public static inline int max-rRMsBxU(int a, int b);
-    method public static inline int min-rRMsBxU(int a, int b);
-    method public static inline int round-NgWp0Z8(float);
-    method public static inline operator androidx.ui.unit.IntPxSize times(int, androidx.ui.unit.IntPxSize size);
-    method public static inline operator int times--Vi_IPY(float, int other);
-    method public static inline operator int times-9kGzznM(int, int other);
-    method public static inline operator int times-tHVXE4c(double, int other);
+    method @androidx.compose.Stable public static inline boolean isFinite-gshw56o(int);
+    method @androidx.compose.Stable public static androidx.ui.unit.IntPxPosition lerp(androidx.ui.unit.IntPxPosition start, androidx.ui.unit.IntPxPosition stop, float fraction);
+    method @androidx.compose.Stable public static int lerp-9BbVZj8(int start, int stop, float fraction);
+    method @androidx.compose.Stable public static inline int max-rRMsBxU(int a, int b);
+    method @androidx.compose.Stable public static inline int min-rRMsBxU(int a, int b);
+    method @androidx.compose.Stable public static inline int round-NgWp0Z8(float);
+    method @androidx.compose.Stable public static inline operator androidx.ui.unit.IntPxSize times(int, androidx.ui.unit.IntPxSize size);
+    method @androidx.compose.Stable public static inline operator int times--Vi_IPY(float, int other);
+    method @androidx.compose.Stable public static inline operator int times-9kGzznM(int, int other);
+    method @androidx.compose.Stable public static inline operator int times-tHVXE4c(double, int other);
     method public static inline float toPx-gshw56o(int);
-    method public static inline androidx.ui.unit.PxPosition toPxPosition(androidx.ui.unit.IntPxPosition);
-    method public static inline androidx.ui.unit.PxSize toPxSize(androidx.ui.unit.IntPxSize);
-    method public static inline androidx.ui.unit.IntPxSize toSize(androidx.ui.unit.IntPxBounds);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition toPxPosition(androidx.ui.unit.IntPxPosition);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxSize toPxSize(androidx.ui.unit.IntPxSize);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.IntPxSize toSize(androidx.ui.unit.IntPxBounds);
   }
 
-  public final class IntPxPosition {
-    method public androidx.ui.unit.IntPxPosition copy(long value);
+  @androidx.compose.Immutable public final class IntPxPosition {
+    method @androidx.compose.Immutable public androidx.ui.unit.IntPxPosition copy(long value);
     method public inline int getX();
     method public inline int getY();
-    method public inline operator androidx.ui.unit.IntPxPosition minus(androidx.ui.unit.IntPxPosition other);
-    method public inline operator androidx.ui.unit.IntPxPosition plus(androidx.ui.unit.IntPxPosition other);
-    method public inline operator androidx.ui.unit.IntPxPosition unaryMinus();
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxPosition minus(androidx.ui.unit.IntPxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxPosition plus(androidx.ui.unit.IntPxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxPosition unaryMinus();
     property public final inline int x;
     property public final inline int y;
     field public static final androidx.ui.unit.IntPxPosition.Companion! Companion;
@@ -378,12 +378,12 @@
     property public final androidx.ui.unit.IntPxPosition Origin;
   }
 
-  public final class IntPxSize {
-    method public androidx.ui.unit.IntPxSize copy(long value);
-    method public inline operator androidx.ui.unit.IntPxSize div(int other);
+  @androidx.compose.Immutable public final class IntPxSize {
+    method @androidx.compose.Immutable public androidx.ui.unit.IntPxSize copy(long value);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxSize div(int other);
     method public inline int getHeight();
     method public inline int getWidth();
-    method public inline operator androidx.ui.unit.IntPxSize times(int other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxSize times(int other);
     property public final inline int height;
     property public final inline int width;
     field public static final androidx.ui.unit.IntPxSize.Companion! Companion;
@@ -394,61 +394,61 @@
     property public final androidx.ui.unit.IntPxSize Zero;
   }
 
-  public final inline class IntSize {
+  @androidx.compose.Immutable public final inline class IntSize {
     ctor public IntSize();
     method public static long constructor-impl(internal long value);
-    method public static operator long div-impl(long $this, int other);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static operator long div-impl(long $this, int other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static int getHeight-impl(long $this);
     method public static int getWidth-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static operator long times-impl(long $this, int other);
-    method public static String toString-impl(long $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Stable public static operator long times-impl(long $this, int other);
+    method @androidx.compose.Stable public static String toString-impl(long $this);
   }
 
   public final class IntSizeKt {
-    method public static long IntSize(int width, int height);
-    method public static operator long times-twsQOwo(int, long size);
+    method @androidx.compose.Stable public static long IntSize(int width, int height);
+    method @androidx.compose.Stable public static operator long times-twsQOwo(int, long size);
   }
 
-  public final inline class Position {
+  @androidx.compose.Immutable public final inline class Position {
     ctor public Position();
     method public static long constructor-impl(internal long value);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static float getX-impl(long $this);
     method public static float getY-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static inline operator long minus-T8eBu-w(long $this, long other);
-    method public static inline operator long plus-T8eBu-w(long $this, long other);
-    method public static String toString-impl(long $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Stable public static inline operator long minus-T8eBu-w(long $this, long other);
+    method @androidx.compose.Stable public static inline operator long plus-T8eBu-w(long $this, long other);
+    method @androidx.compose.Stable public static String toString-impl(long $this);
   }
 
-  public final inline class Px implements java.lang.Comparable<androidx.ui.unit.Px> {
+  @androidx.compose.Immutable public final inline class Px implements java.lang.Comparable<androidx.ui.unit.Px> {
     ctor public Px();
-    method public operator int compareTo-NgWp0Z8(float p);
-    method public static operator int compareTo-NgWp0Z8(float $this, float other);
-    method public static inline operator int compareTo-gshw56o(float $this, int other);
+    method @androidx.compose.Stable public operator int compareTo-NgWp0Z8(float p);
+    method @androidx.compose.Stable public static operator int compareTo-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator int compareTo-gshw56o(float $this, int other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-NgWp0Z8(float $this, float other);
-    method public static inline operator float div-RjPF0Mw(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-impl(float $this, int other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, int other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-NgWp0Z8(float $this, float other);
-    method public static inline operator float minus-gshw56o(float $this, int other);
-    method public static inline operator float plus-NgWp0Z8(float $this, float other);
-    method public static inline operator float plus-gshw56o(float $this, int other);
-    method public static inline operator float times-NgWp0Z8(float $this, float other);
-    method public static inline operator float times-RjPF0Mw(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, int other);
-    method public static String toString-impl(float $this);
-    method public static inline operator float unaryMinus-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float minus-gshw56o(float $this, int other);
+    method @androidx.compose.Stable public static inline operator float plus-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float plus-gshw56o(float $this, int other);
+    method @androidx.compose.Stable public static inline operator float times-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, int other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
+    method @androidx.compose.Stable public static inline operator float unaryMinus-impl(float $this);
     field public static final androidx.ui.unit.Px.Companion! Companion;
   }
 
@@ -459,105 +459,105 @@
     property public final float Zero;
   }
 
-  public final class PxBounds {
+  @androidx.compose.Immutable public final class PxBounds {
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
-    method public androidx.ui.unit.PxBounds copy-wHlpFhg(float left, float top, float right, float bottom);
+    method @androidx.compose.Immutable public androidx.ui.unit.PxBounds copy-wHlpFhg(float left, float top, float right, float bottom);
     method public float getBottom();
     method public float getLeft();
     method public float getRight();
     method public float getTop();
   }
 
-  public final inline class PxCubed implements java.lang.Comparable<androidx.ui.unit.PxCubed> {
+  @androidx.compose.Immutable public final inline class PxCubed implements java.lang.Comparable<androidx.ui.unit.PxCubed> {
     ctor public PxCubed();
-    method public operator int compareTo-bji3ab4(float p);
-    method public static operator int compareTo-bji3ab4(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-bji3ab4(float p);
+    method @androidx.compose.Stable public static operator int compareTo-bji3ab4(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-NgWp0Z8(float $this, float other);
-    method public static inline operator float div-RjPF0Mw(float $this, float other);
-    method public static inline operator float div-bji3ab4(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-bji3ab4(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-bji3ab4(float $this, float dimension);
-    method public static inline operator float plus-bji3ab4(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-bji3ab4(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float plus-bji3ab4(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
-  public final inline class PxInverse implements java.lang.Comparable<androidx.ui.unit.PxInverse> {
+  @androidx.compose.Immutable public final inline class PxInverse implements java.lang.Comparable<androidx.ui.unit.PxInverse> {
     ctor public PxInverse();
-    method public operator int compareTo-KGV0gLo(float p);
-    method public static operator int compareTo-KGV0gLo(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-KGV0gLo(float p);
+    method @androidx.compose.Stable public static operator int compareTo-KGV0gLo(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-KGV0gLo(float $this, float dimension);
-    method public static inline operator float plus-KGV0gLo(float $this, float dimension);
-    method public static inline operator float times-NgWp0Z8(float $this, float other);
-    method public static inline operator float times-RjPF0Mw(float $this, float other);
-    method public static inline operator float times-bji3ab4(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-KGV0gLo(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float plus-KGV0gLo(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float times-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-bji3ab4(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
   public final class PxKt {
-    method public static inline androidx.ui.unit.PxBounds PxBounds(androidx.ui.unit.PxPosition topLeft, androidx.ui.unit.PxSize size);
-    method public static inline androidx.ui.unit.PxPosition PxPosition(float x, float y);
-    method public static inline androidx.ui.unit.PxPosition PxPosition-qHcltEY(float x, float y);
-    method public static inline androidx.ui.unit.PxSize PxSize(float width, float height);
-    method public static inline androidx.ui.unit.PxSize PxSize-qHcltEY(float width, float height);
-    method public static inline float abs-NgWp0Z8(float x);
-    method public static androidx.ui.unit.PxPosition center(androidx.ui.unit.PxSize);
-    method public static inline androidx.ui.unit.PxPosition center(androidx.ui.unit.PxBounds);
-    method public static inline float coerceAtLeast-qHcltEY(float, float minimumValue);
-    method public static inline float coerceAtMost-qHcltEY(float, float maximumValue);
-    method public static inline float coerceIn-HXvnt1Q(float, float minimumValue, float maximumValue);
-    method public static inline operator float div-78fIwVY(double, float other);
-    method public static inline operator float div-Ndu7NvY(int, float other);
-    method public static inline operator float div-kxDXtn8(float, float other);
-    method public static float getDistance(androidx.ui.unit.PxPosition);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxBounds PxBounds(androidx.ui.unit.PxPosition topLeft, androidx.ui.unit.PxSize size);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition PxPosition(float x, float y);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition PxPosition-qHcltEY(float x, float y);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxSize PxSize(float width, float height);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxSize PxSize-qHcltEY(float width, float height);
+    method @androidx.compose.Stable public static inline float abs-NgWp0Z8(float x);
+    method @androidx.compose.Stable public static androidx.ui.unit.PxPosition center(androidx.ui.unit.PxSize);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition center(androidx.ui.unit.PxBounds);
+    method @androidx.compose.Stable public static inline float coerceAtLeast-qHcltEY(float, float minimumValue);
+    method @androidx.compose.Stable public static inline float coerceAtMost-qHcltEY(float, float maximumValue);
+    method @androidx.compose.Stable public static inline float coerceIn-HXvnt1Q(float, float minimumValue, float maximumValue);
+    method @androidx.compose.Stable public static inline operator float div-78fIwVY(double, float other);
+    method @androidx.compose.Stable public static inline operator float div-Ndu7NvY(int, float other);
+    method @androidx.compose.Stable public static inline operator float div-kxDXtn8(float, float other);
+    method @androidx.compose.Stable public static float getDistance(androidx.ui.unit.PxPosition);
     method public static inline float getHeight(androidx.ui.unit.PxBounds);
     method public static float getMinDimension(androidx.ui.unit.PxSize);
     method public static inline float getPx(int);
     method public static inline float getPx(double);
     method public static inline float getPx(float);
     method public static inline float getWidth(androidx.ui.unit.PxBounds);
-    method public static androidx.ui.unit.PxPosition lerp(androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition stop, float fraction);
-    method public static float lerp-g-Fs4Ag(float start, float stop, float fraction);
-    method public static inline float max-qHcltEY(float a, float b);
-    method public static inline float min-qHcltEY(float a, float b);
-    method public static inline androidx.ui.unit.IntPxPosition round(androidx.ui.unit.PxPosition);
-    method public static inline operator androidx.ui.unit.PxSize times(int, androidx.ui.unit.PxSize size);
-    method public static inline operator androidx.ui.unit.PxSize times(float, androidx.ui.unit.PxSize size);
-    method public static inline operator androidx.ui.unit.PxSize times(double, androidx.ui.unit.PxSize size);
-    method public static inline operator float times-78fIwVY(double, float other);
-    method public static inline operator float times-Ndu7NvY(int, float other);
-    method public static inline operator float times-kxDXtn8(float, float other);
-    method public static androidx.ui.unit.PxBounds toBounds(androidx.ui.unit.PxSize);
-    method public static inline long toOffset(androidx.ui.unit.PxPosition);
-    method public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxBounds);
-    method public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxSize);
-    method public static androidx.ui.unit.PxSize toSize(androidx.ui.unit.PxBounds);
+    method @androidx.compose.Stable public static androidx.ui.unit.PxPosition lerp(androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition stop, float fraction);
+    method @androidx.compose.Stable public static float lerp-g-Fs4Ag(float start, float stop, float fraction);
+    method @androidx.compose.Stable public static inline float max-qHcltEY(float a, float b);
+    method @androidx.compose.Stable public static inline float min-qHcltEY(float a, float b);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.IntPxPosition round(androidx.ui.unit.PxPosition);
+    method @androidx.compose.Stable public static inline operator androidx.ui.unit.PxSize times(int, androidx.ui.unit.PxSize size);
+    method @androidx.compose.Stable public static inline operator androidx.ui.unit.PxSize times(float, androidx.ui.unit.PxSize size);
+    method @androidx.compose.Stable public static inline operator androidx.ui.unit.PxSize times(double, androidx.ui.unit.PxSize size);
+    method @androidx.compose.Stable public static inline operator float times-78fIwVY(double, float other);
+    method @androidx.compose.Stable public static inline operator float times-Ndu7NvY(int, float other);
+    method @androidx.compose.Stable public static inline operator float times-kxDXtn8(float, float other);
+    method @androidx.compose.Stable public static androidx.ui.unit.PxBounds toBounds(androidx.ui.unit.PxSize);
+    method @androidx.compose.Stable public static inline long toOffset(androidx.ui.unit.PxPosition);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxBounds);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxSize);
+    method @androidx.compose.Stable public static androidx.ui.unit.PxSize toSize(androidx.ui.unit.PxBounds);
   }
 
-  public final class PxPosition {
-    method public androidx.ui.unit.PxPosition copy(long value);
+  @androidx.compose.Immutable public final class PxPosition {
+    method @androidx.compose.Immutable public androidx.ui.unit.PxPosition copy(long value);
     method public inline float getX();
     method public inline float getY();
-    method public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.PxPosition other);
-    method public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.IntPxPosition other);
-    method public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.PxPosition other);
-    method public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.IntPxPosition other);
-    method public inline operator androidx.ui.unit.PxPosition unaryMinus();
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.PxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.IntPxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.PxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.IntPxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition unaryMinus();
     property public final inline float x;
     property public final inline float y;
     field public static final androidx.ui.unit.PxPosition.Companion! Companion;
@@ -568,16 +568,16 @@
     property public final androidx.ui.unit.PxPosition Origin;
   }
 
-  public final class PxSize {
-    method public androidx.ui.unit.PxSize copy(long value);
-    method public inline operator androidx.ui.unit.PxSize div(int other);
-    method public inline operator androidx.ui.unit.PxSize div(float other);
-    method public inline operator androidx.ui.unit.PxSize div(double other);
+  @androidx.compose.Immutable public final class PxSize {
+    method @androidx.compose.Immutable public androidx.ui.unit.PxSize copy(long value);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize div(int other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize div(float other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize div(double other);
     method public inline float getHeight();
     method public inline float getWidth();
-    method public inline operator androidx.ui.unit.PxSize times(int other);
-    method public inline operator androidx.ui.unit.PxSize times(float other);
-    method public inline operator androidx.ui.unit.PxSize times(double other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize times(int other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize times(float other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize times(double other);
     property public final inline float height;
     property public final inline float width;
     field public static final androidx.ui.unit.PxSize.Companion! Companion;
@@ -590,27 +590,27 @@
     property public final androidx.ui.unit.PxSize Zero;
   }
 
-  public final inline class PxSquared implements java.lang.Comparable<androidx.ui.unit.PxSquared> {
+  @androidx.compose.Immutable public final inline class PxSquared implements java.lang.Comparable<androidx.ui.unit.PxSquared> {
     ctor public PxSquared();
-    method public operator int compareTo-RjPF0Mw(float p);
-    method public static operator int compareTo-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-RjPF0Mw(float p);
+    method @androidx.compose.Stable public static operator int compareTo-RjPF0Mw(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-NgWp0Z8(float $this, float other);
-    method public static inline operator float div-RjPF0Mw(float $this, float other);
-    method public static inline operator float div-bji3ab4(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-bji3ab4(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-RjPF0Mw(float $this, float other);
-    method public static inline operator float plus-RjPF0Mw(float $this, float other);
-    method public static inline operator float times-NgWp0Z8(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float plus-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
-  public final inline class TextUnit {
+  @androidx.compose.Immutable public final inline class TextUnit {
     ctor public TextUnit();
     method public static inline operator int compareTo-vVlMl6k(long $this, long other);
     method public static long constructor-impl(long packedValue);
@@ -618,12 +618,12 @@
     method public static inline operator long div-impl(long $this, double other);
     method public static inline operator long div-impl(long $this, int other);
     method public static inline operator float div-vVlMl6k(long $this, long other);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public long getPackedValue();
     method public static androidx.ui.unit.TextUnitType getType-impl(long $this);
     method public static float getValue-impl(long $this);
-    method public static inline int hashCode-impl(long p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
     method public static boolean isEm-impl(long $this);
     method public static boolean isInherit-impl(long $this);
     method public static boolean isSp-impl(long $this);
@@ -649,21 +649,21 @@
   }
 
   public final class TextUnitKt {
-    method public static inline long coerceAtLeast-gL_aCS0(long, long minimumValue);
-    method public static inline long coerceAtMost-gL_aCS0(long, long maximumValue);
-    method public static inline long coerceIn-Y2exRck(long, long minimumValue, long maximumValue);
+    method @androidx.compose.Stable public static inline long coerceAtLeast-gL_aCS0(long, long minimumValue);
+    method @androidx.compose.Stable public static inline long coerceAtMost-gL_aCS0(long, long maximumValue);
+    method @androidx.compose.Stable public static inline long coerceIn-Y2exRck(long, long minimumValue, long maximumValue);
     method public static long getEm(float);
     method public static long getEm(double);
     method public static long getEm(int);
     method public static long getSp(float);
     method public static long getSp(double);
     method public static long getSp(int);
-    method public static long lerp-SpZbbpo(long a, long b, float t);
-    method public static inline long max-gL_aCS0(long a, long b);
-    method public static inline long min-gL_aCS0(long a, long b);
-    method public static inline operator long times-GncdoDw(double, long other);
-    method public static inline operator long times-MVx5XBU(float, long other);
-    method public static inline operator long times-UlzjdM0(int, long other);
+    method @androidx.compose.Stable public static long lerp-SpZbbpo(long a, long b, float t);
+    method @androidx.compose.Stable public static inline long max-gL_aCS0(long a, long b);
+    method @androidx.compose.Stable public static inline long min-gL_aCS0(long a, long b);
+    method @androidx.compose.Stable public static inline operator long times-GncdoDw(double, long other);
+    method @androidx.compose.Stable public static inline operator long times-MVx5XBU(float, long other);
+    method @androidx.compose.Stable public static inline operator long times-UlzjdM0(int, long other);
   }
 
   public enum TextUnitType {
@@ -672,11 +672,11 @@
     enum_constant public static final androidx.ui.unit.TextUnitType Sp;
   }
 
-  public final class Uptime implements java.lang.Comparable<androidx.ui.unit.Uptime> {
+  @androidx.compose.Immutable public final class Uptime implements java.lang.Comparable<androidx.ui.unit.Uptime> {
     ctor public Uptime(long nanoseconds);
     method public int compareTo(androidx.ui.unit.Uptime other);
     method public long component1();
-    method public androidx.ui.unit.Uptime copy(long nanoseconds);
+    method @androidx.compose.Immutable public androidx.ui.unit.Uptime copy(long nanoseconds);
     method public long getNanoseconds();
     method public operator androidx.ui.unit.Uptime minus(androidx.ui.unit.Duration duration);
     method public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Uptime other);
@@ -693,10 +693,10 @@
     method public static operator androidx.ui.unit.Uptime plus(androidx.ui.unit.Duration, androidx.ui.unit.Uptime uptime);
   }
 
-  public final class Velocity {
+  @androidx.compose.Immutable public final class Velocity {
     ctor public Velocity(androidx.ui.unit.PxPosition pixelsPerSecond);
     method public androidx.ui.unit.PxPosition component1();
-    method public androidx.ui.unit.Velocity copy(androidx.ui.unit.PxPosition pixelsPerSecond);
+    method @androidx.compose.Immutable public androidx.ui.unit.Velocity copy(androidx.ui.unit.PxPosition pixelsPerSecond);
     method public androidx.ui.unit.PxPosition getPixelsPerSecond();
     method public operator androidx.ui.unit.Velocity unaryMinus();
     field public static final androidx.ui.unit.Velocity.Companion! Companion;
diff --git a/ui/ui-unit/api/public_plus_experimental_0.1.0-dev14.txt b/ui/ui-unit/api/public_plus_experimental_0.1.0-dev14.txt
index 05a1680..68a02a8 100644
--- a/ui/ui-unit/api/public_plus_experimental_0.1.0-dev14.txt
+++ b/ui/ui-unit/api/public_plus_experimental_0.1.0-dev14.txt
@@ -1,12 +1,12 @@
 // Signature format: 3.0
 package androidx.ui.core {
 
-  public final class Constraints {
+  @androidx.compose.Immutable public final class Constraints {
     method public int component1();
     method public int component2();
     method public int component3();
     method public int component4();
-    method public androidx.ui.core.Constraints copy-Q13GOEE(int minWidth, int maxWidth, int minHeight, int maxHeight);
+    method @androidx.compose.Immutable public androidx.ui.core.Constraints copy-Q13GOEE(int minWidth, int maxWidth, int minHeight, int maxHeight);
     method public int getMaxHeight();
     method public int getMaxWidth();
     method public int getMinHeight();
@@ -15,16 +15,16 @@
   }
 
   public static final class Constraints.Companion {
-    method public androidx.ui.core.Constraints fixed-rRMsBxU(int width, int height);
-    method public androidx.ui.core.Constraints fixedHeight-gshw56o(int height);
-    method public androidx.ui.core.Constraints fixedWidth-gshw56o(int width);
+    method @androidx.compose.Stable public androidx.ui.core.Constraints fixed-rRMsBxU(int width, int height);
+    method @androidx.compose.Stable public androidx.ui.core.Constraints fixedHeight-gshw56o(int height);
+    method @androidx.compose.Stable public androidx.ui.core.Constraints fixedWidth-gshw56o(int width);
   }
 
-  public final inline class Constraints2 {
+  @androidx.compose.Immutable public final inline class Constraints2 {
     ctor public Constraints2();
     method public static long constructor-impl(internal long value);
-    method public static long copy-impl(long $this, int minWidth = this.minWidth, int maxWidth = this.maxWidth, int minHeight = this.minHeight, int maxHeight = this.maxHeight);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static long copy-impl(long $this, int minWidth = this.minWidth, int maxWidth = this.maxWidth, int minHeight = this.minHeight, int maxHeight = this.maxHeight);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static boolean getHasBoundedHeight-impl(long $this);
     method public static boolean getHasBoundedWidth-impl(long $this);
@@ -32,39 +32,39 @@
     method public static int getMaxWidth-impl(long $this);
     method public static int getMinHeight-impl(long $this);
     method public static int getMinWidth-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static inline String! toString-impl(long p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Immutable public static inline String! toString-impl(long p);
     field public static final androidx.ui.core.Constraints2.Companion! Companion;
-    field public static final int Infinity = -1073741824; // 0xc0000000
+    field @androidx.compose.Stable public static final int Infinity = -1073741824; // 0xc0000000
   }
 
   public static final class Constraints2.Companion {
-    method public long fixed(int width, int height);
-    method public long fixedHeight(int height);
-    method public long fixedWidth(int width);
+    method @androidx.compose.Stable public long fixed(int width, int height);
+    method @androidx.compose.Stable public long fixedHeight(int height);
+    method @androidx.compose.Stable public long fixedWidth(int width);
   }
 
   public final class Constraints2Kt {
-    method public static long Constraints2(@IntRange(from=0) int minWidth = 0, int maxWidth = -1073741824, @IntRange(from=0) int minHeight = 0, int maxHeight = -1073741824);
-    method public static long constrain-M1ogGms(long, long size);
-    method public static long enforce-uQjoOwo(long, long otherConstraints);
+    method @androidx.compose.Stable public static long Constraints2(@IntRange(from=0) int minWidth = 0, int maxWidth = -1073741824, @IntRange(from=0) int minHeight = 0, int maxHeight = -1073741824);
+    method @androidx.compose.Stable public static long constrain-M1ogGms(long, long size);
+    method @androidx.compose.Stable public static long enforce-uQjoOwo(long, long otherConstraints);
     method public static boolean getHasFixedHeight-ybNdgAI(long);
     method public static boolean getHasFixedWidth-ybNdgAI(long);
     method public static boolean isZero-ybNdgAI(long);
-    method public static long offset-xOKVbDg(long, int horizontal = 0, int vertical = 0);
-    method public static boolean satisfiedBy-M1ogGms(long, long size);
+    method @androidx.compose.Stable public static long offset-xOKVbDg(long, int horizontal = 0, int vertical = 0);
+    method @androidx.compose.Stable public static boolean satisfiedBy-M1ogGms(long, long size);
   }
 
   public final class ConstraintsKt {
-    method public static androidx.ui.unit.IntPxSize constrain(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
-    method public static androidx.ui.core.Constraints enforce(androidx.ui.core.Constraints, androidx.ui.core.Constraints otherConstraints);
+    method @androidx.compose.Stable public static androidx.ui.unit.IntPxSize constrain(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
+    method @androidx.compose.Stable public static androidx.ui.core.Constraints enforce(androidx.ui.core.Constraints, androidx.ui.core.Constraints otherConstraints);
     method public static boolean getHasBoundedHeight(androidx.ui.core.Constraints);
     method public static boolean getHasBoundedWidth(androidx.ui.core.Constraints);
     method public static boolean getHasFixedHeight(androidx.ui.core.Constraints);
     method public static boolean getHasFixedWidth(androidx.ui.core.Constraints);
     method public static boolean isZero(androidx.ui.core.Constraints);
-    method public static androidx.ui.core.Constraints offset-3L2DHGc(androidx.ui.core.Constraints, int horizontal = 0.ipx, int vertical = 0.ipx);
-    method public static boolean satisfiedBy(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
+    method @androidx.compose.Stable public static androidx.ui.core.Constraints offset-3L2DHGc(androidx.ui.core.Constraints, int horizontal = 0.ipx, int vertical = 0.ipx);
+    method @androidx.compose.Stable public static boolean satisfiedBy(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
   }
 
   public enum LayoutDirection {
@@ -80,65 +80,65 @@
     method public static androidx.ui.unit.Density Density(android.content.Context context);
   }
 
-  public final class Bounds {
+  @androidx.compose.Immutable public final class Bounds {
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
-    method public androidx.ui.unit.Bounds copy-rIHlIKc(float left, float top, float right, float bottom);
+    method @androidx.compose.Immutable public androidx.ui.unit.Bounds copy-rIHlIKc(float left, float top, float right, float bottom);
     method public float getBottom();
     method public float getLeft();
     method public float getRight();
     method public float getTop();
   }
 
-  public interface Density {
+  @androidx.compose.Immutable public interface Density {
     method public float getDensity();
     method public float getFontScale();
-    method public default float toDp(float);
-    method public default float toDp(int);
-    method public default float toDp-NgWp0Z8(float);
-    method public default float toDp-gshw56o(int);
-    method public default float toDp-vVlMl6k(long);
-    method public default int toIntPx-ipo6vVg(float);
-    method public default int toIntPx-vVlMl6k(long);
-    method public default float toPx-ipo6vVg(float);
-    method public default float toPx-vVlMl6k(long);
-    method public default androidx.ui.geometry.Rect toRect(androidx.ui.unit.Bounds);
-    method public default long toSp(float);
-    method public default long toSp(int);
-    method public default long toSp-NgWp0Z8(float);
-    method public default long toSp-gshw56o(int);
-    method public default long toSp-ipo6vVg(float);
+    method @androidx.compose.Stable public default float toDp(float);
+    method @androidx.compose.Stable public default float toDp(int);
+    method @androidx.compose.Stable public default float toDp-NgWp0Z8(float);
+    method @androidx.compose.Stable public default float toDp-gshw56o(int);
+    method @androidx.compose.Stable public default float toDp-vVlMl6k(long);
+    method @androidx.compose.Stable public default int toIntPx-ipo6vVg(float);
+    method @androidx.compose.Stable public default int toIntPx-vVlMl6k(long);
+    method @androidx.compose.Stable public default float toPx-ipo6vVg(float);
+    method @androidx.compose.Stable public default float toPx-vVlMl6k(long);
+    method @androidx.compose.Stable public default androidx.ui.geometry.Rect toRect(androidx.ui.unit.Bounds);
+    method @androidx.compose.Stable public default long toSp(float);
+    method @androidx.compose.Stable public default long toSp(int);
+    method @androidx.compose.Stable public default long toSp-NgWp0Z8(float);
+    method @androidx.compose.Stable public default long toSp-gshw56o(int);
+    method @androidx.compose.Stable public default long toSp-ipo6vVg(float);
     property public abstract float density;
     property public abstract float fontScale;
   }
 
   public final class DensityKt {
-    method public static androidx.ui.unit.Density Density(float density, float fontScale = 1f);
+    method @androidx.compose.Stable public static androidx.ui.unit.Density Density(float density, float fontScale = 1f);
   }
 
-  public final inline class Dp implements java.lang.Comparable<androidx.ui.unit.Dp> {
+  @androidx.compose.Immutable public final inline class Dp implements java.lang.Comparable<androidx.ui.unit.Dp> {
     ctor public Dp();
-    method public operator int compareTo-ipo6vVg(float p);
-    method public static operator int compareTo-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-ipo6vVg(float p);
+    method @androidx.compose.Stable public static operator int compareTo-ipo6vVg(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-impl(float $this, int other);
-    method public static inline operator float div-ipo6vVg(float $this, float other);
-    method public static inline operator float div-x8crYZs(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, int other);
+    method @androidx.compose.Stable public static inline operator float div-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-x8crYZs(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-ipo6vVg(float $this, float other);
-    method public static inline operator float plus-ipo6vVg(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, int other);
-    method public static inline operator float times-ipo6vVg(float $this, float other);
-    method public static inline operator float times-x8crYZs(float $this, float other);
-    method public static String toString-impl(float $this);
-    method public static inline operator float unaryMinus-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float plus-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, int other);
+    method @androidx.compose.Stable public static inline operator float times-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
+    method @androidx.compose.Stable public static inline operator float unaryMinus-impl(float $this);
     field public static final androidx.ui.unit.Dp.Companion! Companion;
   }
 
@@ -151,100 +151,100 @@
     property public final float Unspecified;
   }
 
-  public final inline class DpCubed implements java.lang.Comparable<androidx.ui.unit.DpCubed> {
+  @androidx.compose.Immutable public final inline class DpCubed implements java.lang.Comparable<androidx.ui.unit.DpCubed> {
     ctor public DpCubed();
-    method public operator int compareTo-JDqhs2g(float p);
-    method public static operator int compareTo-JDqhs2g(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-JDqhs2g(float p);
+    method @androidx.compose.Stable public static operator int compareTo-JDqhs2g(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-JDqhs2g(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-ipo6vVg(float $this, float other);
-    method public static inline operator float div-x8crYZs(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-JDqhs2g(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-x8crYZs(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-JDqhs2g(float $this, float dimension);
-    method public static inline operator float plus-JDqhs2g(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-JDqhs2g(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float plus-JDqhs2g(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
-  public final inline class DpInverse implements java.lang.Comparable<androidx.ui.unit.DpInverse> {
+  @androidx.compose.Immutable public final inline class DpInverse implements java.lang.Comparable<androidx.ui.unit.DpInverse> {
     ctor public DpInverse();
-    method public operator int compareTo-_K2iRR8(float p);
-    method public static operator int compareTo-_K2iRR8(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-_K2iRR8(float p);
+    method @androidx.compose.Stable public static operator int compareTo-_K2iRR8(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-_K2iRR8(float $this, float dimension);
-    method public static inline operator float plus-_K2iRR8(float $this, float dimension);
-    method public static inline operator float times-JDqhs2g(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-ipo6vVg(float $this, float other);
-    method public static inline operator float times-x8crYZs(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-_K2iRR8(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float plus-_K2iRR8(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float times-JDqhs2g(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
   public final class DpKt {
-    method public static inline long Position-98Cn76g(float x, float y);
-    method public static inline float coerceAtLeast-98Cn76g(float, float minimumValue);
-    method public static inline float coerceAtMost-98Cn76g(float, float maximumValue);
-    method public static inline float coerceIn-x40Cv7w(float, float minimumValue, float maximumValue);
-    method public static inline operator float div-H0Zl2lQ(float, float other);
-    method public static inline operator float div-Y_YOLaE(double, float other);
-    method public static inline operator float div-hZ6b2Ic(int, float other);
-    method public static float getDistance-T8eBu-w(long);
+    method @androidx.compose.Stable public static inline long Position-98Cn76g(float x, float y);
+    method @androidx.compose.Stable public static inline float coerceAtLeast-98Cn76g(float, float minimumValue);
+    method @androidx.compose.Stable public static inline float coerceAtMost-98Cn76g(float, float maximumValue);
+    method @androidx.compose.Stable public static inline float coerceIn-x40Cv7w(float, float minimumValue, float maximumValue);
+    method @androidx.compose.Stable public static inline operator float div-H0Zl2lQ(float, float other);
+    method @androidx.compose.Stable public static inline operator float div-Y_YOLaE(double, float other);
+    method @androidx.compose.Stable public static inline operator float div-hZ6b2Ic(int, float other);
+    method @androidx.compose.Stable public static float getDistance-T8eBu-w(long);
     method public static inline float getDp(int);
     method public static inline float getDp(double);
     method public static inline float getDp(float);
     method public static inline float getHeight(androidx.ui.unit.Bounds);
     method public static inline float getWidth(androidx.ui.unit.Bounds);
-    method public static inline boolean isFinite-ipo6vVg(float);
-    method public static float lerp-3WSoJcA(float start, float stop, float fraction);
-    method public static long lerp-d5NHFfI(long start, long stop, float fraction);
-    method public static inline float max-98Cn76g(float a, float b);
-    method public static inline float min-98Cn76g(float a, float b);
-    method public static inline operator float times-H0Zl2lQ(float, float other);
-    method public static inline operator float times-Y_YOLaE(double, float other);
-    method public static inline operator float times-hZ6b2Ic(int, float other);
+    method @androidx.compose.Stable public static inline boolean isFinite-ipo6vVg(float);
+    method @androidx.compose.Stable public static float lerp-3WSoJcA(float start, float stop, float fraction);
+    method @androidx.compose.Stable public static long lerp-d5NHFfI(long start, long stop, float fraction);
+    method @androidx.compose.Stable public static inline float max-98Cn76g(float a, float b);
+    method @androidx.compose.Stable public static inline float min-98Cn76g(float a, float b);
+    method @androidx.compose.Stable public static inline operator float times-H0Zl2lQ(float, float other);
+    method @androidx.compose.Stable public static inline operator float times-Y_YOLaE(double, float other);
+    method @androidx.compose.Stable public static inline operator float times-hZ6b2Ic(int, float other);
   }
 
-  public final inline class DpSquared implements java.lang.Comparable<androidx.ui.unit.DpSquared> {
+  @androidx.compose.Immutable public final inline class DpSquared implements java.lang.Comparable<androidx.ui.unit.DpSquared> {
     ctor public DpSquared();
-    method public operator int compareTo-x8crYZs(float p);
-    method public static operator int compareTo-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-x8crYZs(float p);
+    method @androidx.compose.Stable public static operator int compareTo-x8crYZs(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-JDqhs2g(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-ipo6vVg(float $this, float other);
-    method public static inline operator float div-x8crYZs(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-JDqhs2g(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-x8crYZs(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-x8crYZs(float $this, float other);
-    method public static inline operator float plus-x8crYZs(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-ipo6vVg(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float plus-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
-  public final class Duration implements java.lang.Comparable<androidx.ui.unit.Duration> {
+  @androidx.compose.Immutable public final class Duration implements java.lang.Comparable<androidx.ui.unit.Duration> {
     ctor public Duration(long nanoseconds);
-    method public int compareTo(androidx.ui.unit.Duration other);
+    method @androidx.compose.Stable public int compareTo(androidx.ui.unit.Duration other);
     method public long component1();
-    method public androidx.ui.unit.Duration copy(long nanoseconds);
-    method public operator androidx.ui.unit.Duration div(int quotient);
-    method public operator androidx.ui.unit.Duration div(double quotient);
+    method @androidx.compose.Immutable public androidx.ui.unit.Duration copy(long nanoseconds);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration div(int quotient);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration div(double quotient);
     method public long getNanoseconds();
-    method public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Duration other);
-    method public operator androidx.ui.unit.Duration plus(androidx.ui.unit.Duration other);
-    method public operator androidx.ui.unit.Duration times(int factor);
-    method public operator androidx.ui.unit.Duration times(double factor);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Duration other);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration plus(androidx.ui.unit.Duration other);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration times(int factor);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration times(double factor);
     field public static final androidx.ui.unit.Duration.Companion! Companion;
   }
 
@@ -288,27 +288,27 @@
     field public static final long SecondsPerMinute = 60L; // 0x3cL
   }
 
-  public final inline class IntPx implements java.lang.Comparable<androidx.ui.unit.IntPx> {
+  @androidx.compose.Immutable public final inline class IntPx implements java.lang.Comparable<androidx.ui.unit.IntPx> {
     ctor public IntPx();
-    method public static inline operator int compareTo-NgWp0Z8(int $this, float other);
-    method public operator int compareTo-gshw56o(int p);
-    method public static operator int compareTo-gshw56o(int $this, int other);
+    method @androidx.compose.Stable public static inline operator int compareTo-NgWp0Z8(int $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-gshw56o(int p);
+    method @androidx.compose.Stable public static operator int compareTo-gshw56o(int $this, int other);
     method public static int constructor-impl(int value);
-    method public static operator int div-impl(int $this, float other);
-    method public static operator int div-impl(int $this, double other);
-    method public static operator int div-impl(int $this, int other);
-    method public static inline boolean equals-impl(int p, Object? p1);
+    method @androidx.compose.Stable public static operator int div-impl(int $this, float other);
+    method @androidx.compose.Stable public static operator int div-impl(int $this, double other);
+    method @androidx.compose.Stable public static operator int div-impl(int $this, int other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(int p, Object? p1);
     method public static boolean equals-impl0(int p1, int p2);
     method public int getValue();
-    method public static inline int hashCode-impl(int p);
-    method public static operator int minus-gshw56o(int $this, int other);
-    method public static operator int plus-gshw56o(int $this, int other);
-    method public static inline operator int rem-impl(int $this, int other);
-    method public static operator int times-impl(int $this, float other);
-    method public static operator int times-impl(int $this, double other);
-    method public static operator int times-impl(int $this, int other);
-    method public static String toString-impl(int $this);
-    method public static operator int unaryMinus-impl(int $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(int p);
+    method @androidx.compose.Stable public static operator int minus-gshw56o(int $this, int other);
+    method @androidx.compose.Stable public static operator int plus-gshw56o(int $this, int other);
+    method @androidx.compose.Stable public static inline operator int rem-impl(int $this, int other);
+    method @androidx.compose.Stable public static operator int times-impl(int $this, float other);
+    method @androidx.compose.Stable public static operator int times-impl(int $this, double other);
+    method @androidx.compose.Stable public static operator int times-impl(int $this, int other);
+    method @androidx.compose.Stable public static String toString-impl(int $this);
+    method @androidx.compose.Stable public static operator int unaryMinus-impl(int $this);
     field public static final androidx.ui.unit.IntPx.Companion! Companion;
   }
 
@@ -319,12 +319,12 @@
     property public final int Zero;
   }
 
-  public final class IntPxBounds {
+  @androidx.compose.Immutable public final class IntPxBounds {
     method public int component1();
     method public int component2();
     method public int component3();
     method public int component4();
-    method public androidx.ui.unit.IntPxBounds copy-Q13GOEE(int left, int top, int right, int bottom);
+    method @androidx.compose.Immutable public androidx.ui.unit.IntPxBounds copy-Q13GOEE(int left, int top, int right, int bottom);
     method public int getBottom();
     method public int getLeft();
     method public int getRight();
@@ -333,41 +333,41 @@
 
   public final class IntPxKt {
     method public static inline androidx.ui.unit.IntPxPosition IntPxPosition-rRMsBxU(int x, int y);
-    method public static inline androidx.ui.unit.IntPxSize IntPxSize-rRMsBxU(int width, int height);
-    method public static inline androidx.ui.unit.PxPosition PxPosition-rRMsBxU(int x, int y);
-    method public static inline androidx.ui.unit.PxSize PxSize-rRMsBxU(int width, int height);
-    method public static inline int ceil-NgWp0Z8(float);
-    method public static androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxSize);
-    method public static inline androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxBounds);
-    method public static inline int coerceAtLeast-rRMsBxU(int, int minimumValue);
-    method public static inline int coerceAtMost-rRMsBxU(int, int maximumValue);
-    method public static inline int coerceIn-qx1LT1w(int, int minimumValue, int maximumValue);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.IntPxSize IntPxSize-rRMsBxU(int width, int height);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition PxPosition-rRMsBxU(int x, int y);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxSize PxSize-rRMsBxU(int width, int height);
+    method @androidx.compose.Stable public static inline int ceil-NgWp0Z8(float);
+    method @androidx.compose.Stable public static androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxSize);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxBounds);
+    method @androidx.compose.Stable public static inline int coerceAtLeast-rRMsBxU(int, int minimumValue);
+    method @androidx.compose.Stable public static inline int coerceAtMost-rRMsBxU(int, int maximumValue);
+    method @androidx.compose.Stable public static inline int coerceIn-qx1LT1w(int, int minimumValue, int maximumValue);
     method public static inline int getHeight(androidx.ui.unit.IntPxBounds);
     method public static inline int getIpx(int);
     method public static inline int getWidth(androidx.ui.unit.IntPxBounds);
-    method public static inline boolean isFinite-gshw56o(int);
-    method public static androidx.ui.unit.IntPxPosition lerp(androidx.ui.unit.IntPxPosition start, androidx.ui.unit.IntPxPosition stop, float fraction);
-    method public static int lerp-9BbVZj8(int start, int stop, float fraction);
-    method public static inline int max-rRMsBxU(int a, int b);
-    method public static inline int min-rRMsBxU(int a, int b);
-    method public static inline int round-NgWp0Z8(float);
-    method public static inline operator androidx.ui.unit.IntPxSize times(int, androidx.ui.unit.IntPxSize size);
-    method public static inline operator int times--Vi_IPY(float, int other);
-    method public static inline operator int times-9kGzznM(int, int other);
-    method public static inline operator int times-tHVXE4c(double, int other);
+    method @androidx.compose.Stable public static inline boolean isFinite-gshw56o(int);
+    method @androidx.compose.Stable public static androidx.ui.unit.IntPxPosition lerp(androidx.ui.unit.IntPxPosition start, androidx.ui.unit.IntPxPosition stop, float fraction);
+    method @androidx.compose.Stable public static int lerp-9BbVZj8(int start, int stop, float fraction);
+    method @androidx.compose.Stable public static inline int max-rRMsBxU(int a, int b);
+    method @androidx.compose.Stable public static inline int min-rRMsBxU(int a, int b);
+    method @androidx.compose.Stable public static inline int round-NgWp0Z8(float);
+    method @androidx.compose.Stable public static inline operator androidx.ui.unit.IntPxSize times(int, androidx.ui.unit.IntPxSize size);
+    method @androidx.compose.Stable public static inline operator int times--Vi_IPY(float, int other);
+    method @androidx.compose.Stable public static inline operator int times-9kGzznM(int, int other);
+    method @androidx.compose.Stable public static inline operator int times-tHVXE4c(double, int other);
     method public static inline float toPx-gshw56o(int);
-    method public static inline androidx.ui.unit.PxPosition toPxPosition(androidx.ui.unit.IntPxPosition);
-    method public static inline androidx.ui.unit.PxSize toPxSize(androidx.ui.unit.IntPxSize);
-    method public static inline androidx.ui.unit.IntPxSize toSize(androidx.ui.unit.IntPxBounds);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition toPxPosition(androidx.ui.unit.IntPxPosition);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxSize toPxSize(androidx.ui.unit.IntPxSize);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.IntPxSize toSize(androidx.ui.unit.IntPxBounds);
   }
 
-  public final class IntPxPosition {
-    method public androidx.ui.unit.IntPxPosition copy(long value);
+  @androidx.compose.Immutable public final class IntPxPosition {
+    method @androidx.compose.Immutable public androidx.ui.unit.IntPxPosition copy(long value);
     method public inline int getX();
     method public inline int getY();
-    method public inline operator androidx.ui.unit.IntPxPosition minus(androidx.ui.unit.IntPxPosition other);
-    method public inline operator androidx.ui.unit.IntPxPosition plus(androidx.ui.unit.IntPxPosition other);
-    method public inline operator androidx.ui.unit.IntPxPosition unaryMinus();
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxPosition minus(androidx.ui.unit.IntPxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxPosition plus(androidx.ui.unit.IntPxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxPosition unaryMinus();
     property public final inline int x;
     property public final inline int y;
     field public static final androidx.ui.unit.IntPxPosition.Companion! Companion;
@@ -378,12 +378,12 @@
     property public final androidx.ui.unit.IntPxPosition Origin;
   }
 
-  public final class IntPxSize {
-    method public androidx.ui.unit.IntPxSize copy(long value);
-    method public inline operator androidx.ui.unit.IntPxSize div(int other);
+  @androidx.compose.Immutable public final class IntPxSize {
+    method @androidx.compose.Immutable public androidx.ui.unit.IntPxSize copy(long value);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxSize div(int other);
     method public inline int getHeight();
     method public inline int getWidth();
-    method public inline operator androidx.ui.unit.IntPxSize times(int other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxSize times(int other);
     property public final inline int height;
     property public final inline int width;
     field public static final androidx.ui.unit.IntPxSize.Companion! Companion;
@@ -394,61 +394,61 @@
     property public final androidx.ui.unit.IntPxSize Zero;
   }
 
-  public final inline class IntSize {
+  @androidx.compose.Immutable public final inline class IntSize {
     ctor public IntSize();
     method public static long constructor-impl(internal long value);
-    method public static operator long div-impl(long $this, int other);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static operator long div-impl(long $this, int other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static int getHeight-impl(long $this);
     method public static int getWidth-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static operator long times-impl(long $this, int other);
-    method public static String toString-impl(long $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Stable public static operator long times-impl(long $this, int other);
+    method @androidx.compose.Stable public static String toString-impl(long $this);
   }
 
   public final class IntSizeKt {
-    method public static long IntSize(int width, int height);
-    method public static operator long times-twsQOwo(int, long size);
+    method @androidx.compose.Stable public static long IntSize(int width, int height);
+    method @androidx.compose.Stable public static operator long times-twsQOwo(int, long size);
   }
 
-  public final inline class Position {
+  @androidx.compose.Immutable public final inline class Position {
     ctor public Position();
     method public static long constructor-impl(internal long value);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static float getX-impl(long $this);
     method public static float getY-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static inline operator long minus-T8eBu-w(long $this, long other);
-    method public static inline operator long plus-T8eBu-w(long $this, long other);
-    method public static String toString-impl(long $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Stable public static inline operator long minus-T8eBu-w(long $this, long other);
+    method @androidx.compose.Stable public static inline operator long plus-T8eBu-w(long $this, long other);
+    method @androidx.compose.Stable public static String toString-impl(long $this);
   }
 
-  public final inline class Px implements java.lang.Comparable<androidx.ui.unit.Px> {
+  @androidx.compose.Immutable public final inline class Px implements java.lang.Comparable<androidx.ui.unit.Px> {
     ctor public Px();
-    method public operator int compareTo-NgWp0Z8(float p);
-    method public static operator int compareTo-NgWp0Z8(float $this, float other);
-    method public static inline operator int compareTo-gshw56o(float $this, int other);
+    method @androidx.compose.Stable public operator int compareTo-NgWp0Z8(float p);
+    method @androidx.compose.Stable public static operator int compareTo-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator int compareTo-gshw56o(float $this, int other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-NgWp0Z8(float $this, float other);
-    method public static inline operator float div-RjPF0Mw(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-impl(float $this, int other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, int other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-NgWp0Z8(float $this, float other);
-    method public static inline operator float minus-gshw56o(float $this, int other);
-    method public static inline operator float plus-NgWp0Z8(float $this, float other);
-    method public static inline operator float plus-gshw56o(float $this, int other);
-    method public static inline operator float times-NgWp0Z8(float $this, float other);
-    method public static inline operator float times-RjPF0Mw(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, int other);
-    method public static String toString-impl(float $this);
-    method public static inline operator float unaryMinus-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float minus-gshw56o(float $this, int other);
+    method @androidx.compose.Stable public static inline operator float plus-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float plus-gshw56o(float $this, int other);
+    method @androidx.compose.Stable public static inline operator float times-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, int other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
+    method @androidx.compose.Stable public static inline operator float unaryMinus-impl(float $this);
     field public static final androidx.ui.unit.Px.Companion! Companion;
   }
 
@@ -459,105 +459,105 @@
     property public final float Zero;
   }
 
-  public final class PxBounds {
+  @androidx.compose.Immutable public final class PxBounds {
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
-    method public androidx.ui.unit.PxBounds copy-wHlpFhg(float left, float top, float right, float bottom);
+    method @androidx.compose.Immutable public androidx.ui.unit.PxBounds copy-wHlpFhg(float left, float top, float right, float bottom);
     method public float getBottom();
     method public float getLeft();
     method public float getRight();
     method public float getTop();
   }
 
-  public final inline class PxCubed implements java.lang.Comparable<androidx.ui.unit.PxCubed> {
+  @androidx.compose.Immutable public final inline class PxCubed implements java.lang.Comparable<androidx.ui.unit.PxCubed> {
     ctor public PxCubed();
-    method public operator int compareTo-bji3ab4(float p);
-    method public static operator int compareTo-bji3ab4(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-bji3ab4(float p);
+    method @androidx.compose.Stable public static operator int compareTo-bji3ab4(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-NgWp0Z8(float $this, float other);
-    method public static inline operator float div-RjPF0Mw(float $this, float other);
-    method public static inline operator float div-bji3ab4(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-bji3ab4(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-bji3ab4(float $this, float dimension);
-    method public static inline operator float plus-bji3ab4(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-bji3ab4(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float plus-bji3ab4(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
-  public final inline class PxInverse implements java.lang.Comparable<androidx.ui.unit.PxInverse> {
+  @androidx.compose.Immutable public final inline class PxInverse implements java.lang.Comparable<androidx.ui.unit.PxInverse> {
     ctor public PxInverse();
-    method public operator int compareTo-KGV0gLo(float p);
-    method public static operator int compareTo-KGV0gLo(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-KGV0gLo(float p);
+    method @androidx.compose.Stable public static operator int compareTo-KGV0gLo(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-KGV0gLo(float $this, float dimension);
-    method public static inline operator float plus-KGV0gLo(float $this, float dimension);
-    method public static inline operator float times-NgWp0Z8(float $this, float other);
-    method public static inline operator float times-RjPF0Mw(float $this, float other);
-    method public static inline operator float times-bji3ab4(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-KGV0gLo(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float plus-KGV0gLo(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float times-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-bji3ab4(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
   public final class PxKt {
-    method public static inline androidx.ui.unit.PxBounds PxBounds(androidx.ui.unit.PxPosition topLeft, androidx.ui.unit.PxSize size);
-    method public static inline androidx.ui.unit.PxPosition PxPosition(float x, float y);
-    method public static inline androidx.ui.unit.PxPosition PxPosition-qHcltEY(float x, float y);
-    method public static inline androidx.ui.unit.PxSize PxSize(float width, float height);
-    method public static inline androidx.ui.unit.PxSize PxSize-qHcltEY(float width, float height);
-    method public static inline float abs-NgWp0Z8(float x);
-    method public static androidx.ui.unit.PxPosition center(androidx.ui.unit.PxSize);
-    method public static inline androidx.ui.unit.PxPosition center(androidx.ui.unit.PxBounds);
-    method public static inline float coerceAtLeast-qHcltEY(float, float minimumValue);
-    method public static inline float coerceAtMost-qHcltEY(float, float maximumValue);
-    method public static inline float coerceIn-HXvnt1Q(float, float minimumValue, float maximumValue);
-    method public static inline operator float div-78fIwVY(double, float other);
-    method public static inline operator float div-Ndu7NvY(int, float other);
-    method public static inline operator float div-kxDXtn8(float, float other);
-    method public static float getDistance(androidx.ui.unit.PxPosition);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxBounds PxBounds(androidx.ui.unit.PxPosition topLeft, androidx.ui.unit.PxSize size);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition PxPosition(float x, float y);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition PxPosition-qHcltEY(float x, float y);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxSize PxSize(float width, float height);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxSize PxSize-qHcltEY(float width, float height);
+    method @androidx.compose.Stable public static inline float abs-NgWp0Z8(float x);
+    method @androidx.compose.Stable public static androidx.ui.unit.PxPosition center(androidx.ui.unit.PxSize);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition center(androidx.ui.unit.PxBounds);
+    method @androidx.compose.Stable public static inline float coerceAtLeast-qHcltEY(float, float minimumValue);
+    method @androidx.compose.Stable public static inline float coerceAtMost-qHcltEY(float, float maximumValue);
+    method @androidx.compose.Stable public static inline float coerceIn-HXvnt1Q(float, float minimumValue, float maximumValue);
+    method @androidx.compose.Stable public static inline operator float div-78fIwVY(double, float other);
+    method @androidx.compose.Stable public static inline operator float div-Ndu7NvY(int, float other);
+    method @androidx.compose.Stable public static inline operator float div-kxDXtn8(float, float other);
+    method @androidx.compose.Stable public static float getDistance(androidx.ui.unit.PxPosition);
     method public static inline float getHeight(androidx.ui.unit.PxBounds);
     method public static float getMinDimension(androidx.ui.unit.PxSize);
     method public static inline float getPx(int);
     method public static inline float getPx(double);
     method public static inline float getPx(float);
     method public static inline float getWidth(androidx.ui.unit.PxBounds);
-    method public static androidx.ui.unit.PxPosition lerp(androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition stop, float fraction);
-    method public static float lerp-g-Fs4Ag(float start, float stop, float fraction);
-    method public static inline float max-qHcltEY(float a, float b);
-    method public static inline float min-qHcltEY(float a, float b);
-    method public static inline androidx.ui.unit.IntPxPosition round(androidx.ui.unit.PxPosition);
-    method public static inline operator androidx.ui.unit.PxSize times(int, androidx.ui.unit.PxSize size);
-    method public static inline operator androidx.ui.unit.PxSize times(float, androidx.ui.unit.PxSize size);
-    method public static inline operator androidx.ui.unit.PxSize times(double, androidx.ui.unit.PxSize size);
-    method public static inline operator float times-78fIwVY(double, float other);
-    method public static inline operator float times-Ndu7NvY(int, float other);
-    method public static inline operator float times-kxDXtn8(float, float other);
-    method public static androidx.ui.unit.PxBounds toBounds(androidx.ui.unit.PxSize);
-    method public static inline long toOffset(androidx.ui.unit.PxPosition);
-    method public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxBounds);
-    method public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxSize);
-    method public static androidx.ui.unit.PxSize toSize(androidx.ui.unit.PxBounds);
+    method @androidx.compose.Stable public static androidx.ui.unit.PxPosition lerp(androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition stop, float fraction);
+    method @androidx.compose.Stable public static float lerp-g-Fs4Ag(float start, float stop, float fraction);
+    method @androidx.compose.Stable public static inline float max-qHcltEY(float a, float b);
+    method @androidx.compose.Stable public static inline float min-qHcltEY(float a, float b);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.IntPxPosition round(androidx.ui.unit.PxPosition);
+    method @androidx.compose.Stable public static inline operator androidx.ui.unit.PxSize times(int, androidx.ui.unit.PxSize size);
+    method @androidx.compose.Stable public static inline operator androidx.ui.unit.PxSize times(float, androidx.ui.unit.PxSize size);
+    method @androidx.compose.Stable public static inline operator androidx.ui.unit.PxSize times(double, androidx.ui.unit.PxSize size);
+    method @androidx.compose.Stable public static inline operator float times-78fIwVY(double, float other);
+    method @androidx.compose.Stable public static inline operator float times-Ndu7NvY(int, float other);
+    method @androidx.compose.Stable public static inline operator float times-kxDXtn8(float, float other);
+    method @androidx.compose.Stable public static androidx.ui.unit.PxBounds toBounds(androidx.ui.unit.PxSize);
+    method @androidx.compose.Stable public static inline long toOffset(androidx.ui.unit.PxPosition);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxBounds);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxSize);
+    method @androidx.compose.Stable public static androidx.ui.unit.PxSize toSize(androidx.ui.unit.PxBounds);
   }
 
-  public final class PxPosition {
-    method public androidx.ui.unit.PxPosition copy(long value);
+  @androidx.compose.Immutable public final class PxPosition {
+    method @androidx.compose.Immutable public androidx.ui.unit.PxPosition copy(long value);
     method public inline float getX();
     method public inline float getY();
-    method public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.PxPosition other);
-    method public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.IntPxPosition other);
-    method public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.PxPosition other);
-    method public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.IntPxPosition other);
-    method public inline operator androidx.ui.unit.PxPosition unaryMinus();
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.PxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.IntPxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.PxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.IntPxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition unaryMinus();
     property public final inline float x;
     property public final inline float y;
     field public static final androidx.ui.unit.PxPosition.Companion! Companion;
@@ -568,16 +568,16 @@
     property public final androidx.ui.unit.PxPosition Origin;
   }
 
-  public final class PxSize {
-    method public androidx.ui.unit.PxSize copy(long value);
-    method public inline operator androidx.ui.unit.PxSize div(int other);
-    method public inline operator androidx.ui.unit.PxSize div(float other);
-    method public inline operator androidx.ui.unit.PxSize div(double other);
+  @androidx.compose.Immutable public final class PxSize {
+    method @androidx.compose.Immutable public androidx.ui.unit.PxSize copy(long value);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize div(int other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize div(float other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize div(double other);
     method public inline float getHeight();
     method public inline float getWidth();
-    method public inline operator androidx.ui.unit.PxSize times(int other);
-    method public inline operator androidx.ui.unit.PxSize times(float other);
-    method public inline operator androidx.ui.unit.PxSize times(double other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize times(int other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize times(float other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize times(double other);
     property public final inline float height;
     property public final inline float width;
     field public static final androidx.ui.unit.PxSize.Companion! Companion;
@@ -590,27 +590,27 @@
     property public final androidx.ui.unit.PxSize Zero;
   }
 
-  public final inline class PxSquared implements java.lang.Comparable<androidx.ui.unit.PxSquared> {
+  @androidx.compose.Immutable public final inline class PxSquared implements java.lang.Comparable<androidx.ui.unit.PxSquared> {
     ctor public PxSquared();
-    method public operator int compareTo-RjPF0Mw(float p);
-    method public static operator int compareTo-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-RjPF0Mw(float p);
+    method @androidx.compose.Stable public static operator int compareTo-RjPF0Mw(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-NgWp0Z8(float $this, float other);
-    method public static inline operator float div-RjPF0Mw(float $this, float other);
-    method public static inline operator float div-bji3ab4(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-bji3ab4(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-RjPF0Mw(float $this, float other);
-    method public static inline operator float plus-RjPF0Mw(float $this, float other);
-    method public static inline operator float times-NgWp0Z8(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float plus-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
-  public final inline class TextUnit {
+  @androidx.compose.Immutable public final inline class TextUnit {
     ctor public TextUnit();
     method public static inline operator int compareTo-vVlMl6k(long $this, long other);
     method public static long constructor-impl(long packedValue);
@@ -618,12 +618,12 @@
     method public static inline operator long div-impl(long $this, double other);
     method public static inline operator long div-impl(long $this, int other);
     method public static inline operator float div-vVlMl6k(long $this, long other);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public long getPackedValue();
     method public static androidx.ui.unit.TextUnitType getType-impl(long $this);
     method public static float getValue-impl(long $this);
-    method public static inline int hashCode-impl(long p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
     method public static boolean isEm-impl(long $this);
     method public static boolean isInherit-impl(long $this);
     method public static boolean isSp-impl(long $this);
@@ -649,21 +649,21 @@
   }
 
   public final class TextUnitKt {
-    method public static inline long coerceAtLeast-gL_aCS0(long, long minimumValue);
-    method public static inline long coerceAtMost-gL_aCS0(long, long maximumValue);
-    method public static inline long coerceIn-Y2exRck(long, long minimumValue, long maximumValue);
+    method @androidx.compose.Stable public static inline long coerceAtLeast-gL_aCS0(long, long minimumValue);
+    method @androidx.compose.Stable public static inline long coerceAtMost-gL_aCS0(long, long maximumValue);
+    method @androidx.compose.Stable public static inline long coerceIn-Y2exRck(long, long minimumValue, long maximumValue);
     method public static long getEm(float);
     method public static long getEm(double);
     method public static long getEm(int);
     method public static long getSp(float);
     method public static long getSp(double);
     method public static long getSp(int);
-    method public static long lerp-SpZbbpo(long a, long b, float t);
-    method public static inline long max-gL_aCS0(long a, long b);
-    method public static inline long min-gL_aCS0(long a, long b);
-    method public static inline operator long times-GncdoDw(double, long other);
-    method public static inline operator long times-MVx5XBU(float, long other);
-    method public static inline operator long times-UlzjdM0(int, long other);
+    method @androidx.compose.Stable public static long lerp-SpZbbpo(long a, long b, float t);
+    method @androidx.compose.Stable public static inline long max-gL_aCS0(long a, long b);
+    method @androidx.compose.Stable public static inline long min-gL_aCS0(long a, long b);
+    method @androidx.compose.Stable public static inline operator long times-GncdoDw(double, long other);
+    method @androidx.compose.Stable public static inline operator long times-MVx5XBU(float, long other);
+    method @androidx.compose.Stable public static inline operator long times-UlzjdM0(int, long other);
   }
 
   public enum TextUnitType {
@@ -672,11 +672,11 @@
     enum_constant public static final androidx.ui.unit.TextUnitType Sp;
   }
 
-  public final class Uptime implements java.lang.Comparable<androidx.ui.unit.Uptime> {
+  @androidx.compose.Immutable public final class Uptime implements java.lang.Comparable<androidx.ui.unit.Uptime> {
     ctor public Uptime(long nanoseconds);
     method public int compareTo(androidx.ui.unit.Uptime other);
     method public long component1();
-    method public androidx.ui.unit.Uptime copy(long nanoseconds);
+    method @androidx.compose.Immutable public androidx.ui.unit.Uptime copy(long nanoseconds);
     method public long getNanoseconds();
     method public operator androidx.ui.unit.Uptime minus(androidx.ui.unit.Duration duration);
     method public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Uptime other);
@@ -693,10 +693,10 @@
     method public static operator androidx.ui.unit.Uptime plus(androidx.ui.unit.Duration, androidx.ui.unit.Uptime uptime);
   }
 
-  public final class Velocity {
+  @androidx.compose.Immutable public final class Velocity {
     ctor public Velocity(androidx.ui.unit.PxPosition pixelsPerSecond);
     method public androidx.ui.unit.PxPosition component1();
-    method public androidx.ui.unit.Velocity copy(androidx.ui.unit.PxPosition pixelsPerSecond);
+    method @androidx.compose.Immutable public androidx.ui.unit.Velocity copy(androidx.ui.unit.PxPosition pixelsPerSecond);
     method public androidx.ui.unit.PxPosition getPixelsPerSecond();
     method public operator androidx.ui.unit.Velocity unaryMinus();
     field public static final androidx.ui.unit.Velocity.Companion! Companion;
diff --git a/ui/ui-unit/api/public_plus_experimental_current.txt b/ui/ui-unit/api/public_plus_experimental_current.txt
index 05a1680..68a02a8 100644
--- a/ui/ui-unit/api/public_plus_experimental_current.txt
+++ b/ui/ui-unit/api/public_plus_experimental_current.txt
@@ -1,12 +1,12 @@
 // Signature format: 3.0
 package androidx.ui.core {
 
-  public final class Constraints {
+  @androidx.compose.Immutable public final class Constraints {
     method public int component1();
     method public int component2();
     method public int component3();
     method public int component4();
-    method public androidx.ui.core.Constraints copy-Q13GOEE(int minWidth, int maxWidth, int minHeight, int maxHeight);
+    method @androidx.compose.Immutable public androidx.ui.core.Constraints copy-Q13GOEE(int minWidth, int maxWidth, int minHeight, int maxHeight);
     method public int getMaxHeight();
     method public int getMaxWidth();
     method public int getMinHeight();
@@ -15,16 +15,16 @@
   }
 
   public static final class Constraints.Companion {
-    method public androidx.ui.core.Constraints fixed-rRMsBxU(int width, int height);
-    method public androidx.ui.core.Constraints fixedHeight-gshw56o(int height);
-    method public androidx.ui.core.Constraints fixedWidth-gshw56o(int width);
+    method @androidx.compose.Stable public androidx.ui.core.Constraints fixed-rRMsBxU(int width, int height);
+    method @androidx.compose.Stable public androidx.ui.core.Constraints fixedHeight-gshw56o(int height);
+    method @androidx.compose.Stable public androidx.ui.core.Constraints fixedWidth-gshw56o(int width);
   }
 
-  public final inline class Constraints2 {
+  @androidx.compose.Immutable public final inline class Constraints2 {
     ctor public Constraints2();
     method public static long constructor-impl(internal long value);
-    method public static long copy-impl(long $this, int minWidth = this.minWidth, int maxWidth = this.maxWidth, int minHeight = this.minHeight, int maxHeight = this.maxHeight);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static long copy-impl(long $this, int minWidth = this.minWidth, int maxWidth = this.maxWidth, int minHeight = this.minHeight, int maxHeight = this.maxHeight);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static boolean getHasBoundedHeight-impl(long $this);
     method public static boolean getHasBoundedWidth-impl(long $this);
@@ -32,39 +32,39 @@
     method public static int getMaxWidth-impl(long $this);
     method public static int getMinHeight-impl(long $this);
     method public static int getMinWidth-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static inline String! toString-impl(long p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Immutable public static inline String! toString-impl(long p);
     field public static final androidx.ui.core.Constraints2.Companion! Companion;
-    field public static final int Infinity = -1073741824; // 0xc0000000
+    field @androidx.compose.Stable public static final int Infinity = -1073741824; // 0xc0000000
   }
 
   public static final class Constraints2.Companion {
-    method public long fixed(int width, int height);
-    method public long fixedHeight(int height);
-    method public long fixedWidth(int width);
+    method @androidx.compose.Stable public long fixed(int width, int height);
+    method @androidx.compose.Stable public long fixedHeight(int height);
+    method @androidx.compose.Stable public long fixedWidth(int width);
   }
 
   public final class Constraints2Kt {
-    method public static long Constraints2(@IntRange(from=0) int minWidth = 0, int maxWidth = -1073741824, @IntRange(from=0) int minHeight = 0, int maxHeight = -1073741824);
-    method public static long constrain-M1ogGms(long, long size);
-    method public static long enforce-uQjoOwo(long, long otherConstraints);
+    method @androidx.compose.Stable public static long Constraints2(@IntRange(from=0) int minWidth = 0, int maxWidth = -1073741824, @IntRange(from=0) int minHeight = 0, int maxHeight = -1073741824);
+    method @androidx.compose.Stable public static long constrain-M1ogGms(long, long size);
+    method @androidx.compose.Stable public static long enforce-uQjoOwo(long, long otherConstraints);
     method public static boolean getHasFixedHeight-ybNdgAI(long);
     method public static boolean getHasFixedWidth-ybNdgAI(long);
     method public static boolean isZero-ybNdgAI(long);
-    method public static long offset-xOKVbDg(long, int horizontal = 0, int vertical = 0);
-    method public static boolean satisfiedBy-M1ogGms(long, long size);
+    method @androidx.compose.Stable public static long offset-xOKVbDg(long, int horizontal = 0, int vertical = 0);
+    method @androidx.compose.Stable public static boolean satisfiedBy-M1ogGms(long, long size);
   }
 
   public final class ConstraintsKt {
-    method public static androidx.ui.unit.IntPxSize constrain(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
-    method public static androidx.ui.core.Constraints enforce(androidx.ui.core.Constraints, androidx.ui.core.Constraints otherConstraints);
+    method @androidx.compose.Stable public static androidx.ui.unit.IntPxSize constrain(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
+    method @androidx.compose.Stable public static androidx.ui.core.Constraints enforce(androidx.ui.core.Constraints, androidx.ui.core.Constraints otherConstraints);
     method public static boolean getHasBoundedHeight(androidx.ui.core.Constraints);
     method public static boolean getHasBoundedWidth(androidx.ui.core.Constraints);
     method public static boolean getHasFixedHeight(androidx.ui.core.Constraints);
     method public static boolean getHasFixedWidth(androidx.ui.core.Constraints);
     method public static boolean isZero(androidx.ui.core.Constraints);
-    method public static androidx.ui.core.Constraints offset-3L2DHGc(androidx.ui.core.Constraints, int horizontal = 0.ipx, int vertical = 0.ipx);
-    method public static boolean satisfiedBy(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
+    method @androidx.compose.Stable public static androidx.ui.core.Constraints offset-3L2DHGc(androidx.ui.core.Constraints, int horizontal = 0.ipx, int vertical = 0.ipx);
+    method @androidx.compose.Stable public static boolean satisfiedBy(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
   }
 
   public enum LayoutDirection {
@@ -80,65 +80,65 @@
     method public static androidx.ui.unit.Density Density(android.content.Context context);
   }
 
-  public final class Bounds {
+  @androidx.compose.Immutable public final class Bounds {
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
-    method public androidx.ui.unit.Bounds copy-rIHlIKc(float left, float top, float right, float bottom);
+    method @androidx.compose.Immutable public androidx.ui.unit.Bounds copy-rIHlIKc(float left, float top, float right, float bottom);
     method public float getBottom();
     method public float getLeft();
     method public float getRight();
     method public float getTop();
   }
 
-  public interface Density {
+  @androidx.compose.Immutable public interface Density {
     method public float getDensity();
     method public float getFontScale();
-    method public default float toDp(float);
-    method public default float toDp(int);
-    method public default float toDp-NgWp0Z8(float);
-    method public default float toDp-gshw56o(int);
-    method public default float toDp-vVlMl6k(long);
-    method public default int toIntPx-ipo6vVg(float);
-    method public default int toIntPx-vVlMl6k(long);
-    method public default float toPx-ipo6vVg(float);
-    method public default float toPx-vVlMl6k(long);
-    method public default androidx.ui.geometry.Rect toRect(androidx.ui.unit.Bounds);
-    method public default long toSp(float);
-    method public default long toSp(int);
-    method public default long toSp-NgWp0Z8(float);
-    method public default long toSp-gshw56o(int);
-    method public default long toSp-ipo6vVg(float);
+    method @androidx.compose.Stable public default float toDp(float);
+    method @androidx.compose.Stable public default float toDp(int);
+    method @androidx.compose.Stable public default float toDp-NgWp0Z8(float);
+    method @androidx.compose.Stable public default float toDp-gshw56o(int);
+    method @androidx.compose.Stable public default float toDp-vVlMl6k(long);
+    method @androidx.compose.Stable public default int toIntPx-ipo6vVg(float);
+    method @androidx.compose.Stable public default int toIntPx-vVlMl6k(long);
+    method @androidx.compose.Stable public default float toPx-ipo6vVg(float);
+    method @androidx.compose.Stable public default float toPx-vVlMl6k(long);
+    method @androidx.compose.Stable public default androidx.ui.geometry.Rect toRect(androidx.ui.unit.Bounds);
+    method @androidx.compose.Stable public default long toSp(float);
+    method @androidx.compose.Stable public default long toSp(int);
+    method @androidx.compose.Stable public default long toSp-NgWp0Z8(float);
+    method @androidx.compose.Stable public default long toSp-gshw56o(int);
+    method @androidx.compose.Stable public default long toSp-ipo6vVg(float);
     property public abstract float density;
     property public abstract float fontScale;
   }
 
   public final class DensityKt {
-    method public static androidx.ui.unit.Density Density(float density, float fontScale = 1f);
+    method @androidx.compose.Stable public static androidx.ui.unit.Density Density(float density, float fontScale = 1f);
   }
 
-  public final inline class Dp implements java.lang.Comparable<androidx.ui.unit.Dp> {
+  @androidx.compose.Immutable public final inline class Dp implements java.lang.Comparable<androidx.ui.unit.Dp> {
     ctor public Dp();
-    method public operator int compareTo-ipo6vVg(float p);
-    method public static operator int compareTo-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-ipo6vVg(float p);
+    method @androidx.compose.Stable public static operator int compareTo-ipo6vVg(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-impl(float $this, int other);
-    method public static inline operator float div-ipo6vVg(float $this, float other);
-    method public static inline operator float div-x8crYZs(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, int other);
+    method @androidx.compose.Stable public static inline operator float div-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-x8crYZs(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-ipo6vVg(float $this, float other);
-    method public static inline operator float plus-ipo6vVg(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, int other);
-    method public static inline operator float times-ipo6vVg(float $this, float other);
-    method public static inline operator float times-x8crYZs(float $this, float other);
-    method public static String toString-impl(float $this);
-    method public static inline operator float unaryMinus-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float plus-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, int other);
+    method @androidx.compose.Stable public static inline operator float times-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
+    method @androidx.compose.Stable public static inline operator float unaryMinus-impl(float $this);
     field public static final androidx.ui.unit.Dp.Companion! Companion;
   }
 
@@ -151,100 +151,100 @@
     property public final float Unspecified;
   }
 
-  public final inline class DpCubed implements java.lang.Comparable<androidx.ui.unit.DpCubed> {
+  @androidx.compose.Immutable public final inline class DpCubed implements java.lang.Comparable<androidx.ui.unit.DpCubed> {
     ctor public DpCubed();
-    method public operator int compareTo-JDqhs2g(float p);
-    method public static operator int compareTo-JDqhs2g(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-JDqhs2g(float p);
+    method @androidx.compose.Stable public static operator int compareTo-JDqhs2g(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-JDqhs2g(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-ipo6vVg(float $this, float other);
-    method public static inline operator float div-x8crYZs(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-JDqhs2g(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-x8crYZs(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-JDqhs2g(float $this, float dimension);
-    method public static inline operator float plus-JDqhs2g(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-JDqhs2g(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float plus-JDqhs2g(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
-  public final inline class DpInverse implements java.lang.Comparable<androidx.ui.unit.DpInverse> {
+  @androidx.compose.Immutable public final inline class DpInverse implements java.lang.Comparable<androidx.ui.unit.DpInverse> {
     ctor public DpInverse();
-    method public operator int compareTo-_K2iRR8(float p);
-    method public static operator int compareTo-_K2iRR8(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-_K2iRR8(float p);
+    method @androidx.compose.Stable public static operator int compareTo-_K2iRR8(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-_K2iRR8(float $this, float dimension);
-    method public static inline operator float plus-_K2iRR8(float $this, float dimension);
-    method public static inline operator float times-JDqhs2g(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-ipo6vVg(float $this, float other);
-    method public static inline operator float times-x8crYZs(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-_K2iRR8(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float plus-_K2iRR8(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float times-JDqhs2g(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
   public final class DpKt {
-    method public static inline long Position-98Cn76g(float x, float y);
-    method public static inline float coerceAtLeast-98Cn76g(float, float minimumValue);
-    method public static inline float coerceAtMost-98Cn76g(float, float maximumValue);
-    method public static inline float coerceIn-x40Cv7w(float, float minimumValue, float maximumValue);
-    method public static inline operator float div-H0Zl2lQ(float, float other);
-    method public static inline operator float div-Y_YOLaE(double, float other);
-    method public static inline operator float div-hZ6b2Ic(int, float other);
-    method public static float getDistance-T8eBu-w(long);
+    method @androidx.compose.Stable public static inline long Position-98Cn76g(float x, float y);
+    method @androidx.compose.Stable public static inline float coerceAtLeast-98Cn76g(float, float minimumValue);
+    method @androidx.compose.Stable public static inline float coerceAtMost-98Cn76g(float, float maximumValue);
+    method @androidx.compose.Stable public static inline float coerceIn-x40Cv7w(float, float minimumValue, float maximumValue);
+    method @androidx.compose.Stable public static inline operator float div-H0Zl2lQ(float, float other);
+    method @androidx.compose.Stable public static inline operator float div-Y_YOLaE(double, float other);
+    method @androidx.compose.Stable public static inline operator float div-hZ6b2Ic(int, float other);
+    method @androidx.compose.Stable public static float getDistance-T8eBu-w(long);
     method public static inline float getDp(int);
     method public static inline float getDp(double);
     method public static inline float getDp(float);
     method public static inline float getHeight(androidx.ui.unit.Bounds);
     method public static inline float getWidth(androidx.ui.unit.Bounds);
-    method public static inline boolean isFinite-ipo6vVg(float);
-    method public static float lerp-3WSoJcA(float start, float stop, float fraction);
-    method public static long lerp-d5NHFfI(long start, long stop, float fraction);
-    method public static inline float max-98Cn76g(float a, float b);
-    method public static inline float min-98Cn76g(float a, float b);
-    method public static inline operator float times-H0Zl2lQ(float, float other);
-    method public static inline operator float times-Y_YOLaE(double, float other);
-    method public static inline operator float times-hZ6b2Ic(int, float other);
+    method @androidx.compose.Stable public static inline boolean isFinite-ipo6vVg(float);
+    method @androidx.compose.Stable public static float lerp-3WSoJcA(float start, float stop, float fraction);
+    method @androidx.compose.Stable public static long lerp-d5NHFfI(long start, long stop, float fraction);
+    method @androidx.compose.Stable public static inline float max-98Cn76g(float a, float b);
+    method @androidx.compose.Stable public static inline float min-98Cn76g(float a, float b);
+    method @androidx.compose.Stable public static inline operator float times-H0Zl2lQ(float, float other);
+    method @androidx.compose.Stable public static inline operator float times-Y_YOLaE(double, float other);
+    method @androidx.compose.Stable public static inline operator float times-hZ6b2Ic(int, float other);
   }
 
-  public final inline class DpSquared implements java.lang.Comparable<androidx.ui.unit.DpSquared> {
+  @androidx.compose.Immutable public final inline class DpSquared implements java.lang.Comparable<androidx.ui.unit.DpSquared> {
     ctor public DpSquared();
-    method public operator int compareTo-x8crYZs(float p);
-    method public static operator int compareTo-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-x8crYZs(float p);
+    method @androidx.compose.Stable public static operator int compareTo-x8crYZs(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-JDqhs2g(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-ipo6vVg(float $this, float other);
-    method public static inline operator float div-x8crYZs(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-JDqhs2g(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-x8crYZs(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-x8crYZs(float $this, float other);
-    method public static inline operator float plus-x8crYZs(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-ipo6vVg(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float plus-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
-  public final class Duration implements java.lang.Comparable<androidx.ui.unit.Duration> {
+  @androidx.compose.Immutable public final class Duration implements java.lang.Comparable<androidx.ui.unit.Duration> {
     ctor public Duration(long nanoseconds);
-    method public int compareTo(androidx.ui.unit.Duration other);
+    method @androidx.compose.Stable public int compareTo(androidx.ui.unit.Duration other);
     method public long component1();
-    method public androidx.ui.unit.Duration copy(long nanoseconds);
-    method public operator androidx.ui.unit.Duration div(int quotient);
-    method public operator androidx.ui.unit.Duration div(double quotient);
+    method @androidx.compose.Immutable public androidx.ui.unit.Duration copy(long nanoseconds);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration div(int quotient);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration div(double quotient);
     method public long getNanoseconds();
-    method public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Duration other);
-    method public operator androidx.ui.unit.Duration plus(androidx.ui.unit.Duration other);
-    method public operator androidx.ui.unit.Duration times(int factor);
-    method public operator androidx.ui.unit.Duration times(double factor);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Duration other);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration plus(androidx.ui.unit.Duration other);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration times(int factor);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration times(double factor);
     field public static final androidx.ui.unit.Duration.Companion! Companion;
   }
 
@@ -288,27 +288,27 @@
     field public static final long SecondsPerMinute = 60L; // 0x3cL
   }
 
-  public final inline class IntPx implements java.lang.Comparable<androidx.ui.unit.IntPx> {
+  @androidx.compose.Immutable public final inline class IntPx implements java.lang.Comparable<androidx.ui.unit.IntPx> {
     ctor public IntPx();
-    method public static inline operator int compareTo-NgWp0Z8(int $this, float other);
-    method public operator int compareTo-gshw56o(int p);
-    method public static operator int compareTo-gshw56o(int $this, int other);
+    method @androidx.compose.Stable public static inline operator int compareTo-NgWp0Z8(int $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-gshw56o(int p);
+    method @androidx.compose.Stable public static operator int compareTo-gshw56o(int $this, int other);
     method public static int constructor-impl(int value);
-    method public static operator int div-impl(int $this, float other);
-    method public static operator int div-impl(int $this, double other);
-    method public static operator int div-impl(int $this, int other);
-    method public static inline boolean equals-impl(int p, Object? p1);
+    method @androidx.compose.Stable public static operator int div-impl(int $this, float other);
+    method @androidx.compose.Stable public static operator int div-impl(int $this, double other);
+    method @androidx.compose.Stable public static operator int div-impl(int $this, int other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(int p, Object? p1);
     method public static boolean equals-impl0(int p1, int p2);
     method public int getValue();
-    method public static inline int hashCode-impl(int p);
-    method public static operator int minus-gshw56o(int $this, int other);
-    method public static operator int plus-gshw56o(int $this, int other);
-    method public static inline operator int rem-impl(int $this, int other);
-    method public static operator int times-impl(int $this, float other);
-    method public static operator int times-impl(int $this, double other);
-    method public static operator int times-impl(int $this, int other);
-    method public static String toString-impl(int $this);
-    method public static operator int unaryMinus-impl(int $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(int p);
+    method @androidx.compose.Stable public static operator int minus-gshw56o(int $this, int other);
+    method @androidx.compose.Stable public static operator int plus-gshw56o(int $this, int other);
+    method @androidx.compose.Stable public static inline operator int rem-impl(int $this, int other);
+    method @androidx.compose.Stable public static operator int times-impl(int $this, float other);
+    method @androidx.compose.Stable public static operator int times-impl(int $this, double other);
+    method @androidx.compose.Stable public static operator int times-impl(int $this, int other);
+    method @androidx.compose.Stable public static String toString-impl(int $this);
+    method @androidx.compose.Stable public static operator int unaryMinus-impl(int $this);
     field public static final androidx.ui.unit.IntPx.Companion! Companion;
   }
 
@@ -319,12 +319,12 @@
     property public final int Zero;
   }
 
-  public final class IntPxBounds {
+  @androidx.compose.Immutable public final class IntPxBounds {
     method public int component1();
     method public int component2();
     method public int component3();
     method public int component4();
-    method public androidx.ui.unit.IntPxBounds copy-Q13GOEE(int left, int top, int right, int bottom);
+    method @androidx.compose.Immutable public androidx.ui.unit.IntPxBounds copy-Q13GOEE(int left, int top, int right, int bottom);
     method public int getBottom();
     method public int getLeft();
     method public int getRight();
@@ -333,41 +333,41 @@
 
   public final class IntPxKt {
     method public static inline androidx.ui.unit.IntPxPosition IntPxPosition-rRMsBxU(int x, int y);
-    method public static inline androidx.ui.unit.IntPxSize IntPxSize-rRMsBxU(int width, int height);
-    method public static inline androidx.ui.unit.PxPosition PxPosition-rRMsBxU(int x, int y);
-    method public static inline androidx.ui.unit.PxSize PxSize-rRMsBxU(int width, int height);
-    method public static inline int ceil-NgWp0Z8(float);
-    method public static androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxSize);
-    method public static inline androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxBounds);
-    method public static inline int coerceAtLeast-rRMsBxU(int, int minimumValue);
-    method public static inline int coerceAtMost-rRMsBxU(int, int maximumValue);
-    method public static inline int coerceIn-qx1LT1w(int, int minimumValue, int maximumValue);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.IntPxSize IntPxSize-rRMsBxU(int width, int height);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition PxPosition-rRMsBxU(int x, int y);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxSize PxSize-rRMsBxU(int width, int height);
+    method @androidx.compose.Stable public static inline int ceil-NgWp0Z8(float);
+    method @androidx.compose.Stable public static androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxSize);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxBounds);
+    method @androidx.compose.Stable public static inline int coerceAtLeast-rRMsBxU(int, int minimumValue);
+    method @androidx.compose.Stable public static inline int coerceAtMost-rRMsBxU(int, int maximumValue);
+    method @androidx.compose.Stable public static inline int coerceIn-qx1LT1w(int, int minimumValue, int maximumValue);
     method public static inline int getHeight(androidx.ui.unit.IntPxBounds);
     method public static inline int getIpx(int);
     method public static inline int getWidth(androidx.ui.unit.IntPxBounds);
-    method public static inline boolean isFinite-gshw56o(int);
-    method public static androidx.ui.unit.IntPxPosition lerp(androidx.ui.unit.IntPxPosition start, androidx.ui.unit.IntPxPosition stop, float fraction);
-    method public static int lerp-9BbVZj8(int start, int stop, float fraction);
-    method public static inline int max-rRMsBxU(int a, int b);
-    method public static inline int min-rRMsBxU(int a, int b);
-    method public static inline int round-NgWp0Z8(float);
-    method public static inline operator androidx.ui.unit.IntPxSize times(int, androidx.ui.unit.IntPxSize size);
-    method public static inline operator int times--Vi_IPY(float, int other);
-    method public static inline operator int times-9kGzznM(int, int other);
-    method public static inline operator int times-tHVXE4c(double, int other);
+    method @androidx.compose.Stable public static inline boolean isFinite-gshw56o(int);
+    method @androidx.compose.Stable public static androidx.ui.unit.IntPxPosition lerp(androidx.ui.unit.IntPxPosition start, androidx.ui.unit.IntPxPosition stop, float fraction);
+    method @androidx.compose.Stable public static int lerp-9BbVZj8(int start, int stop, float fraction);
+    method @androidx.compose.Stable public static inline int max-rRMsBxU(int a, int b);
+    method @androidx.compose.Stable public static inline int min-rRMsBxU(int a, int b);
+    method @androidx.compose.Stable public static inline int round-NgWp0Z8(float);
+    method @androidx.compose.Stable public static inline operator androidx.ui.unit.IntPxSize times(int, androidx.ui.unit.IntPxSize size);
+    method @androidx.compose.Stable public static inline operator int times--Vi_IPY(float, int other);
+    method @androidx.compose.Stable public static inline operator int times-9kGzznM(int, int other);
+    method @androidx.compose.Stable public static inline operator int times-tHVXE4c(double, int other);
     method public static inline float toPx-gshw56o(int);
-    method public static inline androidx.ui.unit.PxPosition toPxPosition(androidx.ui.unit.IntPxPosition);
-    method public static inline androidx.ui.unit.PxSize toPxSize(androidx.ui.unit.IntPxSize);
-    method public static inline androidx.ui.unit.IntPxSize toSize(androidx.ui.unit.IntPxBounds);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition toPxPosition(androidx.ui.unit.IntPxPosition);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxSize toPxSize(androidx.ui.unit.IntPxSize);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.IntPxSize toSize(androidx.ui.unit.IntPxBounds);
   }
 
-  public final class IntPxPosition {
-    method public androidx.ui.unit.IntPxPosition copy(long value);
+  @androidx.compose.Immutable public final class IntPxPosition {
+    method @androidx.compose.Immutable public androidx.ui.unit.IntPxPosition copy(long value);
     method public inline int getX();
     method public inline int getY();
-    method public inline operator androidx.ui.unit.IntPxPosition minus(androidx.ui.unit.IntPxPosition other);
-    method public inline operator androidx.ui.unit.IntPxPosition plus(androidx.ui.unit.IntPxPosition other);
-    method public inline operator androidx.ui.unit.IntPxPosition unaryMinus();
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxPosition minus(androidx.ui.unit.IntPxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxPosition plus(androidx.ui.unit.IntPxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxPosition unaryMinus();
     property public final inline int x;
     property public final inline int y;
     field public static final androidx.ui.unit.IntPxPosition.Companion! Companion;
@@ -378,12 +378,12 @@
     property public final androidx.ui.unit.IntPxPosition Origin;
   }
 
-  public final class IntPxSize {
-    method public androidx.ui.unit.IntPxSize copy(long value);
-    method public inline operator androidx.ui.unit.IntPxSize div(int other);
+  @androidx.compose.Immutable public final class IntPxSize {
+    method @androidx.compose.Immutable public androidx.ui.unit.IntPxSize copy(long value);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxSize div(int other);
     method public inline int getHeight();
     method public inline int getWidth();
-    method public inline operator androidx.ui.unit.IntPxSize times(int other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxSize times(int other);
     property public final inline int height;
     property public final inline int width;
     field public static final androidx.ui.unit.IntPxSize.Companion! Companion;
@@ -394,61 +394,61 @@
     property public final androidx.ui.unit.IntPxSize Zero;
   }
 
-  public final inline class IntSize {
+  @androidx.compose.Immutable public final inline class IntSize {
     ctor public IntSize();
     method public static long constructor-impl(internal long value);
-    method public static operator long div-impl(long $this, int other);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static operator long div-impl(long $this, int other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static int getHeight-impl(long $this);
     method public static int getWidth-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static operator long times-impl(long $this, int other);
-    method public static String toString-impl(long $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Stable public static operator long times-impl(long $this, int other);
+    method @androidx.compose.Stable public static String toString-impl(long $this);
   }
 
   public final class IntSizeKt {
-    method public static long IntSize(int width, int height);
-    method public static operator long times-twsQOwo(int, long size);
+    method @androidx.compose.Stable public static long IntSize(int width, int height);
+    method @androidx.compose.Stable public static operator long times-twsQOwo(int, long size);
   }
 
-  public final inline class Position {
+  @androidx.compose.Immutable public final inline class Position {
     ctor public Position();
     method public static long constructor-impl(internal long value);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static float getX-impl(long $this);
     method public static float getY-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static inline operator long minus-T8eBu-w(long $this, long other);
-    method public static inline operator long plus-T8eBu-w(long $this, long other);
-    method public static String toString-impl(long $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Stable public static inline operator long minus-T8eBu-w(long $this, long other);
+    method @androidx.compose.Stable public static inline operator long plus-T8eBu-w(long $this, long other);
+    method @androidx.compose.Stable public static String toString-impl(long $this);
   }
 
-  public final inline class Px implements java.lang.Comparable<androidx.ui.unit.Px> {
+  @androidx.compose.Immutable public final inline class Px implements java.lang.Comparable<androidx.ui.unit.Px> {
     ctor public Px();
-    method public operator int compareTo-NgWp0Z8(float p);
-    method public static operator int compareTo-NgWp0Z8(float $this, float other);
-    method public static inline operator int compareTo-gshw56o(float $this, int other);
+    method @androidx.compose.Stable public operator int compareTo-NgWp0Z8(float p);
+    method @androidx.compose.Stable public static operator int compareTo-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator int compareTo-gshw56o(float $this, int other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-NgWp0Z8(float $this, float other);
-    method public static inline operator float div-RjPF0Mw(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-impl(float $this, int other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, int other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-NgWp0Z8(float $this, float other);
-    method public static inline operator float minus-gshw56o(float $this, int other);
-    method public static inline operator float plus-NgWp0Z8(float $this, float other);
-    method public static inline operator float plus-gshw56o(float $this, int other);
-    method public static inline operator float times-NgWp0Z8(float $this, float other);
-    method public static inline operator float times-RjPF0Mw(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, int other);
-    method public static String toString-impl(float $this);
-    method public static inline operator float unaryMinus-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float minus-gshw56o(float $this, int other);
+    method @androidx.compose.Stable public static inline operator float plus-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float plus-gshw56o(float $this, int other);
+    method @androidx.compose.Stable public static inline operator float times-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, int other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
+    method @androidx.compose.Stable public static inline operator float unaryMinus-impl(float $this);
     field public static final androidx.ui.unit.Px.Companion! Companion;
   }
 
@@ -459,105 +459,105 @@
     property public final float Zero;
   }
 
-  public final class PxBounds {
+  @androidx.compose.Immutable public final class PxBounds {
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
-    method public androidx.ui.unit.PxBounds copy-wHlpFhg(float left, float top, float right, float bottom);
+    method @androidx.compose.Immutable public androidx.ui.unit.PxBounds copy-wHlpFhg(float left, float top, float right, float bottom);
     method public float getBottom();
     method public float getLeft();
     method public float getRight();
     method public float getTop();
   }
 
-  public final inline class PxCubed implements java.lang.Comparable<androidx.ui.unit.PxCubed> {
+  @androidx.compose.Immutable public final inline class PxCubed implements java.lang.Comparable<androidx.ui.unit.PxCubed> {
     ctor public PxCubed();
-    method public operator int compareTo-bji3ab4(float p);
-    method public static operator int compareTo-bji3ab4(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-bji3ab4(float p);
+    method @androidx.compose.Stable public static operator int compareTo-bji3ab4(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-NgWp0Z8(float $this, float other);
-    method public static inline operator float div-RjPF0Mw(float $this, float other);
-    method public static inline operator float div-bji3ab4(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-bji3ab4(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-bji3ab4(float $this, float dimension);
-    method public static inline operator float plus-bji3ab4(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-bji3ab4(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float plus-bji3ab4(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
-  public final inline class PxInverse implements java.lang.Comparable<androidx.ui.unit.PxInverse> {
+  @androidx.compose.Immutable public final inline class PxInverse implements java.lang.Comparable<androidx.ui.unit.PxInverse> {
     ctor public PxInverse();
-    method public operator int compareTo-KGV0gLo(float p);
-    method public static operator int compareTo-KGV0gLo(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-KGV0gLo(float p);
+    method @androidx.compose.Stable public static operator int compareTo-KGV0gLo(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-KGV0gLo(float $this, float dimension);
-    method public static inline operator float plus-KGV0gLo(float $this, float dimension);
-    method public static inline operator float times-NgWp0Z8(float $this, float other);
-    method public static inline operator float times-RjPF0Mw(float $this, float other);
-    method public static inline operator float times-bji3ab4(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-KGV0gLo(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float plus-KGV0gLo(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float times-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-bji3ab4(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
   public final class PxKt {
-    method public static inline androidx.ui.unit.PxBounds PxBounds(androidx.ui.unit.PxPosition topLeft, androidx.ui.unit.PxSize size);
-    method public static inline androidx.ui.unit.PxPosition PxPosition(float x, float y);
-    method public static inline androidx.ui.unit.PxPosition PxPosition-qHcltEY(float x, float y);
-    method public static inline androidx.ui.unit.PxSize PxSize(float width, float height);
-    method public static inline androidx.ui.unit.PxSize PxSize-qHcltEY(float width, float height);
-    method public static inline float abs-NgWp0Z8(float x);
-    method public static androidx.ui.unit.PxPosition center(androidx.ui.unit.PxSize);
-    method public static inline androidx.ui.unit.PxPosition center(androidx.ui.unit.PxBounds);
-    method public static inline float coerceAtLeast-qHcltEY(float, float minimumValue);
-    method public static inline float coerceAtMost-qHcltEY(float, float maximumValue);
-    method public static inline float coerceIn-HXvnt1Q(float, float minimumValue, float maximumValue);
-    method public static inline operator float div-78fIwVY(double, float other);
-    method public static inline operator float div-Ndu7NvY(int, float other);
-    method public static inline operator float div-kxDXtn8(float, float other);
-    method public static float getDistance(androidx.ui.unit.PxPosition);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxBounds PxBounds(androidx.ui.unit.PxPosition topLeft, androidx.ui.unit.PxSize size);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition PxPosition(float x, float y);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition PxPosition-qHcltEY(float x, float y);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxSize PxSize(float width, float height);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxSize PxSize-qHcltEY(float width, float height);
+    method @androidx.compose.Stable public static inline float abs-NgWp0Z8(float x);
+    method @androidx.compose.Stable public static androidx.ui.unit.PxPosition center(androidx.ui.unit.PxSize);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition center(androidx.ui.unit.PxBounds);
+    method @androidx.compose.Stable public static inline float coerceAtLeast-qHcltEY(float, float minimumValue);
+    method @androidx.compose.Stable public static inline float coerceAtMost-qHcltEY(float, float maximumValue);
+    method @androidx.compose.Stable public static inline float coerceIn-HXvnt1Q(float, float minimumValue, float maximumValue);
+    method @androidx.compose.Stable public static inline operator float div-78fIwVY(double, float other);
+    method @androidx.compose.Stable public static inline operator float div-Ndu7NvY(int, float other);
+    method @androidx.compose.Stable public static inline operator float div-kxDXtn8(float, float other);
+    method @androidx.compose.Stable public static float getDistance(androidx.ui.unit.PxPosition);
     method public static inline float getHeight(androidx.ui.unit.PxBounds);
     method public static float getMinDimension(androidx.ui.unit.PxSize);
     method public static inline float getPx(int);
     method public static inline float getPx(double);
     method public static inline float getPx(float);
     method public static inline float getWidth(androidx.ui.unit.PxBounds);
-    method public static androidx.ui.unit.PxPosition lerp(androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition stop, float fraction);
-    method public static float lerp-g-Fs4Ag(float start, float stop, float fraction);
-    method public static inline float max-qHcltEY(float a, float b);
-    method public static inline float min-qHcltEY(float a, float b);
-    method public static inline androidx.ui.unit.IntPxPosition round(androidx.ui.unit.PxPosition);
-    method public static inline operator androidx.ui.unit.PxSize times(int, androidx.ui.unit.PxSize size);
-    method public static inline operator androidx.ui.unit.PxSize times(float, androidx.ui.unit.PxSize size);
-    method public static inline operator androidx.ui.unit.PxSize times(double, androidx.ui.unit.PxSize size);
-    method public static inline operator float times-78fIwVY(double, float other);
-    method public static inline operator float times-Ndu7NvY(int, float other);
-    method public static inline operator float times-kxDXtn8(float, float other);
-    method public static androidx.ui.unit.PxBounds toBounds(androidx.ui.unit.PxSize);
-    method public static inline long toOffset(androidx.ui.unit.PxPosition);
-    method public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxBounds);
-    method public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxSize);
-    method public static androidx.ui.unit.PxSize toSize(androidx.ui.unit.PxBounds);
+    method @androidx.compose.Stable public static androidx.ui.unit.PxPosition lerp(androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition stop, float fraction);
+    method @androidx.compose.Stable public static float lerp-g-Fs4Ag(float start, float stop, float fraction);
+    method @androidx.compose.Stable public static inline float max-qHcltEY(float a, float b);
+    method @androidx.compose.Stable public static inline float min-qHcltEY(float a, float b);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.IntPxPosition round(androidx.ui.unit.PxPosition);
+    method @androidx.compose.Stable public static inline operator androidx.ui.unit.PxSize times(int, androidx.ui.unit.PxSize size);
+    method @androidx.compose.Stable public static inline operator androidx.ui.unit.PxSize times(float, androidx.ui.unit.PxSize size);
+    method @androidx.compose.Stable public static inline operator androidx.ui.unit.PxSize times(double, androidx.ui.unit.PxSize size);
+    method @androidx.compose.Stable public static inline operator float times-78fIwVY(double, float other);
+    method @androidx.compose.Stable public static inline operator float times-Ndu7NvY(int, float other);
+    method @androidx.compose.Stable public static inline operator float times-kxDXtn8(float, float other);
+    method @androidx.compose.Stable public static androidx.ui.unit.PxBounds toBounds(androidx.ui.unit.PxSize);
+    method @androidx.compose.Stable public static inline long toOffset(androidx.ui.unit.PxPosition);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxBounds);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxSize);
+    method @androidx.compose.Stable public static androidx.ui.unit.PxSize toSize(androidx.ui.unit.PxBounds);
   }
 
-  public final class PxPosition {
-    method public androidx.ui.unit.PxPosition copy(long value);
+  @androidx.compose.Immutable public final class PxPosition {
+    method @androidx.compose.Immutable public androidx.ui.unit.PxPosition copy(long value);
     method public inline float getX();
     method public inline float getY();
-    method public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.PxPosition other);
-    method public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.IntPxPosition other);
-    method public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.PxPosition other);
-    method public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.IntPxPosition other);
-    method public inline operator androidx.ui.unit.PxPosition unaryMinus();
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.PxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.IntPxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.PxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.IntPxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition unaryMinus();
     property public final inline float x;
     property public final inline float y;
     field public static final androidx.ui.unit.PxPosition.Companion! Companion;
@@ -568,16 +568,16 @@
     property public final androidx.ui.unit.PxPosition Origin;
   }
 
-  public final class PxSize {
-    method public androidx.ui.unit.PxSize copy(long value);
-    method public inline operator androidx.ui.unit.PxSize div(int other);
-    method public inline operator androidx.ui.unit.PxSize div(float other);
-    method public inline operator androidx.ui.unit.PxSize div(double other);
+  @androidx.compose.Immutable public final class PxSize {
+    method @androidx.compose.Immutable public androidx.ui.unit.PxSize copy(long value);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize div(int other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize div(float other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize div(double other);
     method public inline float getHeight();
     method public inline float getWidth();
-    method public inline operator androidx.ui.unit.PxSize times(int other);
-    method public inline operator androidx.ui.unit.PxSize times(float other);
-    method public inline operator androidx.ui.unit.PxSize times(double other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize times(int other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize times(float other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize times(double other);
     property public final inline float height;
     property public final inline float width;
     field public static final androidx.ui.unit.PxSize.Companion! Companion;
@@ -590,27 +590,27 @@
     property public final androidx.ui.unit.PxSize Zero;
   }
 
-  public final inline class PxSquared implements java.lang.Comparable<androidx.ui.unit.PxSquared> {
+  @androidx.compose.Immutable public final inline class PxSquared implements java.lang.Comparable<androidx.ui.unit.PxSquared> {
     ctor public PxSquared();
-    method public operator int compareTo-RjPF0Mw(float p);
-    method public static operator int compareTo-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-RjPF0Mw(float p);
+    method @androidx.compose.Stable public static operator int compareTo-RjPF0Mw(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-NgWp0Z8(float $this, float other);
-    method public static inline operator float div-RjPF0Mw(float $this, float other);
-    method public static inline operator float div-bji3ab4(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-bji3ab4(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-RjPF0Mw(float $this, float other);
-    method public static inline operator float plus-RjPF0Mw(float $this, float other);
-    method public static inline operator float times-NgWp0Z8(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float plus-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
-  public final inline class TextUnit {
+  @androidx.compose.Immutable public final inline class TextUnit {
     ctor public TextUnit();
     method public static inline operator int compareTo-vVlMl6k(long $this, long other);
     method public static long constructor-impl(long packedValue);
@@ -618,12 +618,12 @@
     method public static inline operator long div-impl(long $this, double other);
     method public static inline operator long div-impl(long $this, int other);
     method public static inline operator float div-vVlMl6k(long $this, long other);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public long getPackedValue();
     method public static androidx.ui.unit.TextUnitType getType-impl(long $this);
     method public static float getValue-impl(long $this);
-    method public static inline int hashCode-impl(long p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
     method public static boolean isEm-impl(long $this);
     method public static boolean isInherit-impl(long $this);
     method public static boolean isSp-impl(long $this);
@@ -649,21 +649,21 @@
   }
 
   public final class TextUnitKt {
-    method public static inline long coerceAtLeast-gL_aCS0(long, long minimumValue);
-    method public static inline long coerceAtMost-gL_aCS0(long, long maximumValue);
-    method public static inline long coerceIn-Y2exRck(long, long minimumValue, long maximumValue);
+    method @androidx.compose.Stable public static inline long coerceAtLeast-gL_aCS0(long, long minimumValue);
+    method @androidx.compose.Stable public static inline long coerceAtMost-gL_aCS0(long, long maximumValue);
+    method @androidx.compose.Stable public static inline long coerceIn-Y2exRck(long, long minimumValue, long maximumValue);
     method public static long getEm(float);
     method public static long getEm(double);
     method public static long getEm(int);
     method public static long getSp(float);
     method public static long getSp(double);
     method public static long getSp(int);
-    method public static long lerp-SpZbbpo(long a, long b, float t);
-    method public static inline long max-gL_aCS0(long a, long b);
-    method public static inline long min-gL_aCS0(long a, long b);
-    method public static inline operator long times-GncdoDw(double, long other);
-    method public static inline operator long times-MVx5XBU(float, long other);
-    method public static inline operator long times-UlzjdM0(int, long other);
+    method @androidx.compose.Stable public static long lerp-SpZbbpo(long a, long b, float t);
+    method @androidx.compose.Stable public static inline long max-gL_aCS0(long a, long b);
+    method @androidx.compose.Stable public static inline long min-gL_aCS0(long a, long b);
+    method @androidx.compose.Stable public static inline operator long times-GncdoDw(double, long other);
+    method @androidx.compose.Stable public static inline operator long times-MVx5XBU(float, long other);
+    method @androidx.compose.Stable public static inline operator long times-UlzjdM0(int, long other);
   }
 
   public enum TextUnitType {
@@ -672,11 +672,11 @@
     enum_constant public static final androidx.ui.unit.TextUnitType Sp;
   }
 
-  public final class Uptime implements java.lang.Comparable<androidx.ui.unit.Uptime> {
+  @androidx.compose.Immutable public final class Uptime implements java.lang.Comparable<androidx.ui.unit.Uptime> {
     ctor public Uptime(long nanoseconds);
     method public int compareTo(androidx.ui.unit.Uptime other);
     method public long component1();
-    method public androidx.ui.unit.Uptime copy(long nanoseconds);
+    method @androidx.compose.Immutable public androidx.ui.unit.Uptime copy(long nanoseconds);
     method public long getNanoseconds();
     method public operator androidx.ui.unit.Uptime minus(androidx.ui.unit.Duration duration);
     method public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Uptime other);
@@ -693,10 +693,10 @@
     method public static operator androidx.ui.unit.Uptime plus(androidx.ui.unit.Duration, androidx.ui.unit.Uptime uptime);
   }
 
-  public final class Velocity {
+  @androidx.compose.Immutable public final class Velocity {
     ctor public Velocity(androidx.ui.unit.PxPosition pixelsPerSecond);
     method public androidx.ui.unit.PxPosition component1();
-    method public androidx.ui.unit.Velocity copy(androidx.ui.unit.PxPosition pixelsPerSecond);
+    method @androidx.compose.Immutable public androidx.ui.unit.Velocity copy(androidx.ui.unit.PxPosition pixelsPerSecond);
     method public androidx.ui.unit.PxPosition getPixelsPerSecond();
     method public operator androidx.ui.unit.Velocity unaryMinus();
     field public static final androidx.ui.unit.Velocity.Companion! Companion;
diff --git a/ui/ui-unit/api/restricted_0.1.0-dev14.txt b/ui/ui-unit/api/restricted_0.1.0-dev14.txt
index 71cbf10..05db857 100644
--- a/ui/ui-unit/api/restricted_0.1.0-dev14.txt
+++ b/ui/ui-unit/api/restricted_0.1.0-dev14.txt
@@ -1,12 +1,12 @@
 // Signature format: 3.0
 package androidx.ui.core {
 
-  public final class Constraints {
+  @androidx.compose.Immutable public final class Constraints {
     method public int component1();
     method public int component2();
     method public int component3();
     method public int component4();
-    method public androidx.ui.core.Constraints copy-Q13GOEE(int minWidth, int maxWidth, int minHeight, int maxHeight);
+    method @androidx.compose.Immutable public androidx.ui.core.Constraints copy-Q13GOEE(int minWidth, int maxWidth, int minHeight, int maxHeight);
     method public int getMaxHeight();
     method public int getMaxWidth();
     method public int getMinHeight();
@@ -15,16 +15,16 @@
   }
 
   public static final class Constraints.Companion {
-    method public androidx.ui.core.Constraints fixed-rRMsBxU(int width, int height);
-    method public androidx.ui.core.Constraints fixedHeight-gshw56o(int height);
-    method public androidx.ui.core.Constraints fixedWidth-gshw56o(int width);
+    method @androidx.compose.Stable public androidx.ui.core.Constraints fixed-rRMsBxU(int width, int height);
+    method @androidx.compose.Stable public androidx.ui.core.Constraints fixedHeight-gshw56o(int height);
+    method @androidx.compose.Stable public androidx.ui.core.Constraints fixedWidth-gshw56o(int width);
   }
 
-  public final inline class Constraints2 {
+  @androidx.compose.Immutable public final inline class Constraints2 {
     ctor public Constraints2();
     method public static long constructor-impl(internal long value);
-    method public static long copy-impl(long $this, int minWidth = this.minWidth, int maxWidth = this.maxWidth, int minHeight = this.minHeight, int maxHeight = this.maxHeight);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static long copy-impl(long $this, int minWidth = this.minWidth, int maxWidth = this.maxWidth, int minHeight = this.minHeight, int maxHeight = this.maxHeight);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static boolean getHasBoundedHeight-impl(long $this);
     method public static boolean getHasBoundedWidth-impl(long $this);
@@ -32,39 +32,39 @@
     method public static int getMaxWidth-impl(long $this);
     method public static int getMinHeight-impl(long $this);
     method public static int getMinWidth-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static inline String! toString-impl(long p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Immutable public static inline String! toString-impl(long p);
     field public static final androidx.ui.core.Constraints2.Companion! Companion;
-    field public static final int Infinity = -1073741824; // 0xc0000000
+    field @androidx.compose.Stable public static final int Infinity = -1073741824; // 0xc0000000
   }
 
   public static final class Constraints2.Companion {
-    method public long fixed(int width, int height);
-    method public long fixedHeight(int height);
-    method public long fixedWidth(int width);
+    method @androidx.compose.Stable public long fixed(int width, int height);
+    method @androidx.compose.Stable public long fixedHeight(int height);
+    method @androidx.compose.Stable public long fixedWidth(int width);
   }
 
   public final class Constraints2Kt {
-    method public static long Constraints2(@IntRange(from=0) int minWidth = 0, int maxWidth = -1073741824, @IntRange(from=0) int minHeight = 0, int maxHeight = -1073741824);
-    method public static long constrain-M1ogGms(long, long size);
-    method public static long enforce-uQjoOwo(long, long otherConstraints);
+    method @androidx.compose.Stable public static long Constraints2(@IntRange(from=0) int minWidth = 0, int maxWidth = -1073741824, @IntRange(from=0) int minHeight = 0, int maxHeight = -1073741824);
+    method @androidx.compose.Stable public static long constrain-M1ogGms(long, long size);
+    method @androidx.compose.Stable public static long enforce-uQjoOwo(long, long otherConstraints);
     method public static boolean getHasFixedHeight-ybNdgAI(long);
     method public static boolean getHasFixedWidth-ybNdgAI(long);
     method public static boolean isZero-ybNdgAI(long);
-    method public static long offset-xOKVbDg(long, int horizontal = 0, int vertical = 0);
-    method public static boolean satisfiedBy-M1ogGms(long, long size);
+    method @androidx.compose.Stable public static long offset-xOKVbDg(long, int horizontal = 0, int vertical = 0);
+    method @androidx.compose.Stable public static boolean satisfiedBy-M1ogGms(long, long size);
   }
 
   public final class ConstraintsKt {
-    method public static androidx.ui.unit.IntPxSize constrain(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
-    method public static androidx.ui.core.Constraints enforce(androidx.ui.core.Constraints, androidx.ui.core.Constraints otherConstraints);
+    method @androidx.compose.Stable public static androidx.ui.unit.IntPxSize constrain(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
+    method @androidx.compose.Stable public static androidx.ui.core.Constraints enforce(androidx.ui.core.Constraints, androidx.ui.core.Constraints otherConstraints);
     method public static boolean getHasBoundedHeight(androidx.ui.core.Constraints);
     method public static boolean getHasBoundedWidth(androidx.ui.core.Constraints);
     method public static boolean getHasFixedHeight(androidx.ui.core.Constraints);
     method public static boolean getHasFixedWidth(androidx.ui.core.Constraints);
     method public static boolean isZero(androidx.ui.core.Constraints);
-    method public static androidx.ui.core.Constraints offset-3L2DHGc(androidx.ui.core.Constraints, int horizontal = 0.ipx, int vertical = 0.ipx);
-    method public static boolean satisfiedBy(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
+    method @androidx.compose.Stable public static androidx.ui.core.Constraints offset-3L2DHGc(androidx.ui.core.Constraints, int horizontal = 0.ipx, int vertical = 0.ipx);
+    method @androidx.compose.Stable public static boolean satisfiedBy(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
   }
 
   public enum LayoutDirection {
@@ -80,65 +80,65 @@
     method public static androidx.ui.unit.Density Density(android.content.Context context);
   }
 
-  public final class Bounds {
+  @androidx.compose.Immutable public final class Bounds {
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
-    method public androidx.ui.unit.Bounds copy-rIHlIKc(float left, float top, float right, float bottom);
+    method @androidx.compose.Immutable public androidx.ui.unit.Bounds copy-rIHlIKc(float left, float top, float right, float bottom);
     method public float getBottom();
     method public float getLeft();
     method public float getRight();
     method public float getTop();
   }
 
-  public interface Density {
+  @androidx.compose.Immutable public interface Density {
     method public float getDensity();
     method public float getFontScale();
-    method public default float toDp(float);
-    method public default float toDp(int);
-    method public default float toDp-NgWp0Z8(float);
-    method public default float toDp-gshw56o(int);
-    method public default float toDp-vVlMl6k(long);
-    method public default int toIntPx-ipo6vVg(float);
-    method public default int toIntPx-vVlMl6k(long);
-    method public default float toPx-ipo6vVg(float);
-    method public default float toPx-vVlMl6k(long);
-    method public default androidx.ui.geometry.Rect toRect(androidx.ui.unit.Bounds);
-    method public default long toSp(float);
-    method public default long toSp(int);
-    method public default long toSp-NgWp0Z8(float);
-    method public default long toSp-gshw56o(int);
-    method public default long toSp-ipo6vVg(float);
+    method @androidx.compose.Stable public default float toDp(float);
+    method @androidx.compose.Stable public default float toDp(int);
+    method @androidx.compose.Stable public default float toDp-NgWp0Z8(float);
+    method @androidx.compose.Stable public default float toDp-gshw56o(int);
+    method @androidx.compose.Stable public default float toDp-vVlMl6k(long);
+    method @androidx.compose.Stable public default int toIntPx-ipo6vVg(float);
+    method @androidx.compose.Stable public default int toIntPx-vVlMl6k(long);
+    method @androidx.compose.Stable public default float toPx-ipo6vVg(float);
+    method @androidx.compose.Stable public default float toPx-vVlMl6k(long);
+    method @androidx.compose.Stable public default androidx.ui.geometry.Rect toRect(androidx.ui.unit.Bounds);
+    method @androidx.compose.Stable public default long toSp(float);
+    method @androidx.compose.Stable public default long toSp(int);
+    method @androidx.compose.Stable public default long toSp-NgWp0Z8(float);
+    method @androidx.compose.Stable public default long toSp-gshw56o(int);
+    method @androidx.compose.Stable public default long toSp-ipo6vVg(float);
     property public abstract float density;
     property public abstract float fontScale;
   }
 
   public final class DensityKt {
-    method public static androidx.ui.unit.Density Density(float density, float fontScale = 1f);
+    method @androidx.compose.Stable public static androidx.ui.unit.Density Density(float density, float fontScale = 1f);
   }
 
-  public final inline class Dp implements java.lang.Comparable<androidx.ui.unit.Dp> {
+  @androidx.compose.Immutable public final inline class Dp implements java.lang.Comparable<androidx.ui.unit.Dp> {
     ctor public Dp();
-    method public operator int compareTo-ipo6vVg(float p);
-    method public static operator int compareTo-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-ipo6vVg(float p);
+    method @androidx.compose.Stable public static operator int compareTo-ipo6vVg(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-impl(float $this, int other);
-    method public static inline operator float div-ipo6vVg(float $this, float other);
-    method public static inline operator float div-x8crYZs(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, int other);
+    method @androidx.compose.Stable public static inline operator float div-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-x8crYZs(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-ipo6vVg(float $this, float other);
-    method public static inline operator float plus-ipo6vVg(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, int other);
-    method public static inline operator float times-ipo6vVg(float $this, float other);
-    method public static inline operator float times-x8crYZs(float $this, float other);
-    method public static String toString-impl(float $this);
-    method public static inline operator float unaryMinus-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float plus-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, int other);
+    method @androidx.compose.Stable public static inline operator float times-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
+    method @androidx.compose.Stable public static inline operator float unaryMinus-impl(float $this);
     field public static final androidx.ui.unit.Dp.Companion! Companion;
   }
 
@@ -151,100 +151,100 @@
     property public final float Unspecified;
   }
 
-  public final inline class DpCubed implements java.lang.Comparable<androidx.ui.unit.DpCubed> {
+  @androidx.compose.Immutable public final inline class DpCubed implements java.lang.Comparable<androidx.ui.unit.DpCubed> {
     ctor public DpCubed();
-    method public operator int compareTo-JDqhs2g(float p);
-    method public static operator int compareTo-JDqhs2g(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-JDqhs2g(float p);
+    method @androidx.compose.Stable public static operator int compareTo-JDqhs2g(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-JDqhs2g(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-ipo6vVg(float $this, float other);
-    method public static inline operator float div-x8crYZs(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-JDqhs2g(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-x8crYZs(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-JDqhs2g(float $this, float dimension);
-    method public static inline operator float plus-JDqhs2g(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-JDqhs2g(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float plus-JDqhs2g(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
-  public final inline class DpInverse implements java.lang.Comparable<androidx.ui.unit.DpInverse> {
+  @androidx.compose.Immutable public final inline class DpInverse implements java.lang.Comparable<androidx.ui.unit.DpInverse> {
     ctor public DpInverse();
-    method public operator int compareTo-_K2iRR8(float p);
-    method public static operator int compareTo-_K2iRR8(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-_K2iRR8(float p);
+    method @androidx.compose.Stable public static operator int compareTo-_K2iRR8(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-_K2iRR8(float $this, float dimension);
-    method public static inline operator float plus-_K2iRR8(float $this, float dimension);
-    method public static inline operator float times-JDqhs2g(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-ipo6vVg(float $this, float other);
-    method public static inline operator float times-x8crYZs(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-_K2iRR8(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float plus-_K2iRR8(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float times-JDqhs2g(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
   public final class DpKt {
-    method public static inline long Position-98Cn76g(float x, float y);
-    method public static inline float coerceAtLeast-98Cn76g(float, float minimumValue);
-    method public static inline float coerceAtMost-98Cn76g(float, float maximumValue);
-    method public static inline float coerceIn-x40Cv7w(float, float minimumValue, float maximumValue);
-    method public static inline operator float div-H0Zl2lQ(float, float other);
-    method public static inline operator float div-Y_YOLaE(double, float other);
-    method public static inline operator float div-hZ6b2Ic(int, float other);
-    method public static float getDistance-T8eBu-w(long);
+    method @androidx.compose.Stable public static inline long Position-98Cn76g(float x, float y);
+    method @androidx.compose.Stable public static inline float coerceAtLeast-98Cn76g(float, float minimumValue);
+    method @androidx.compose.Stable public static inline float coerceAtMost-98Cn76g(float, float maximumValue);
+    method @androidx.compose.Stable public static inline float coerceIn-x40Cv7w(float, float minimumValue, float maximumValue);
+    method @androidx.compose.Stable public static inline operator float div-H0Zl2lQ(float, float other);
+    method @androidx.compose.Stable public static inline operator float div-Y_YOLaE(double, float other);
+    method @androidx.compose.Stable public static inline operator float div-hZ6b2Ic(int, float other);
+    method @androidx.compose.Stable public static float getDistance-T8eBu-w(long);
     method public static inline float getDp(int);
     method public static inline float getDp(double);
     method public static inline float getDp(float);
     method public static inline float getHeight(androidx.ui.unit.Bounds);
     method public static inline float getWidth(androidx.ui.unit.Bounds);
-    method public static inline boolean isFinite-ipo6vVg(float);
-    method public static float lerp-3WSoJcA(float start, float stop, float fraction);
-    method public static long lerp-d5NHFfI(long start, long stop, float fraction);
-    method public static inline float max-98Cn76g(float a, float b);
-    method public static inline float min-98Cn76g(float a, float b);
-    method public static inline operator float times-H0Zl2lQ(float, float other);
-    method public static inline operator float times-Y_YOLaE(double, float other);
-    method public static inline operator float times-hZ6b2Ic(int, float other);
+    method @androidx.compose.Stable public static inline boolean isFinite-ipo6vVg(float);
+    method @androidx.compose.Stable public static float lerp-3WSoJcA(float start, float stop, float fraction);
+    method @androidx.compose.Stable public static long lerp-d5NHFfI(long start, long stop, float fraction);
+    method @androidx.compose.Stable public static inline float max-98Cn76g(float a, float b);
+    method @androidx.compose.Stable public static inline float min-98Cn76g(float a, float b);
+    method @androidx.compose.Stable public static inline operator float times-H0Zl2lQ(float, float other);
+    method @androidx.compose.Stable public static inline operator float times-Y_YOLaE(double, float other);
+    method @androidx.compose.Stable public static inline operator float times-hZ6b2Ic(int, float other);
   }
 
-  public final inline class DpSquared implements java.lang.Comparable<androidx.ui.unit.DpSquared> {
+  @androidx.compose.Immutable public final inline class DpSquared implements java.lang.Comparable<androidx.ui.unit.DpSquared> {
     ctor public DpSquared();
-    method public operator int compareTo-x8crYZs(float p);
-    method public static operator int compareTo-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-x8crYZs(float p);
+    method @androidx.compose.Stable public static operator int compareTo-x8crYZs(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-JDqhs2g(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-ipo6vVg(float $this, float other);
-    method public static inline operator float div-x8crYZs(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-JDqhs2g(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-x8crYZs(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-x8crYZs(float $this, float other);
-    method public static inline operator float plus-x8crYZs(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-ipo6vVg(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float plus-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
-  public final class Duration implements java.lang.Comparable<androidx.ui.unit.Duration> {
+  @androidx.compose.Immutable public final class Duration implements java.lang.Comparable<androidx.ui.unit.Duration> {
     ctor public Duration(long nanoseconds);
-    method public int compareTo(androidx.ui.unit.Duration other);
+    method @androidx.compose.Stable public int compareTo(androidx.ui.unit.Duration other);
     method public long component1();
-    method public androidx.ui.unit.Duration copy(long nanoseconds);
-    method public operator androidx.ui.unit.Duration div(int quotient);
-    method public operator androidx.ui.unit.Duration div(double quotient);
+    method @androidx.compose.Immutable public androidx.ui.unit.Duration copy(long nanoseconds);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration div(int quotient);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration div(double quotient);
     method public long getNanoseconds();
-    method public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Duration other);
-    method public operator androidx.ui.unit.Duration plus(androidx.ui.unit.Duration other);
-    method public operator androidx.ui.unit.Duration times(int factor);
-    method public operator androidx.ui.unit.Duration times(double factor);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Duration other);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration plus(androidx.ui.unit.Duration other);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration times(int factor);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration times(double factor);
     field public static final androidx.ui.unit.Duration.Companion! Companion;
   }
 
@@ -288,27 +288,27 @@
     field public static final long SecondsPerMinute = 60L; // 0x3cL
   }
 
-  public final inline class IntPx implements java.lang.Comparable<androidx.ui.unit.IntPx> {
+  @androidx.compose.Immutable public final inline class IntPx implements java.lang.Comparable<androidx.ui.unit.IntPx> {
     ctor public IntPx();
-    method public static inline operator int compareTo-NgWp0Z8(int $this, float other);
-    method public operator int compareTo-gshw56o(int p);
-    method public static operator int compareTo-gshw56o(int $this, int other);
+    method @androidx.compose.Stable public static inline operator int compareTo-NgWp0Z8(int $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-gshw56o(int p);
+    method @androidx.compose.Stable public static operator int compareTo-gshw56o(int $this, int other);
     method public static int constructor-impl(int value);
-    method public static operator int div-impl(int $this, float other);
-    method public static operator int div-impl(int $this, double other);
-    method public static operator int div-impl(int $this, int other);
-    method public static inline boolean equals-impl(int p, Object? p1);
+    method @androidx.compose.Stable public static operator int div-impl(int $this, float other);
+    method @androidx.compose.Stable public static operator int div-impl(int $this, double other);
+    method @androidx.compose.Stable public static operator int div-impl(int $this, int other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(int p, Object? p1);
     method public static boolean equals-impl0(int p1, int p2);
     method public int getValue();
-    method public static inline int hashCode-impl(int p);
-    method public static operator int minus-gshw56o(int $this, int other);
-    method public static operator int plus-gshw56o(int $this, int other);
-    method public static inline operator int rem-impl(int $this, int other);
-    method public static operator int times-impl(int $this, float other);
-    method public static operator int times-impl(int $this, double other);
-    method public static operator int times-impl(int $this, int other);
-    method public static String toString-impl(int $this);
-    method public static operator int unaryMinus-impl(int $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(int p);
+    method @androidx.compose.Stable public static operator int minus-gshw56o(int $this, int other);
+    method @androidx.compose.Stable public static operator int plus-gshw56o(int $this, int other);
+    method @androidx.compose.Stable public static inline operator int rem-impl(int $this, int other);
+    method @androidx.compose.Stable public static operator int times-impl(int $this, float other);
+    method @androidx.compose.Stable public static operator int times-impl(int $this, double other);
+    method @androidx.compose.Stable public static operator int times-impl(int $this, int other);
+    method @androidx.compose.Stable public static String toString-impl(int $this);
+    method @androidx.compose.Stable public static operator int unaryMinus-impl(int $this);
     field public static final androidx.ui.unit.IntPx.Companion! Companion;
   }
 
@@ -319,12 +319,12 @@
     property public final int Zero;
   }
 
-  public final class IntPxBounds {
+  @androidx.compose.Immutable public final class IntPxBounds {
     method public int component1();
     method public int component2();
     method public int component3();
     method public int component4();
-    method public androidx.ui.unit.IntPxBounds copy-Q13GOEE(int left, int top, int right, int bottom);
+    method @androidx.compose.Immutable public androidx.ui.unit.IntPxBounds copy-Q13GOEE(int left, int top, int right, int bottom);
     method public int getBottom();
     method public int getLeft();
     method public int getRight();
@@ -333,44 +333,44 @@
 
   public final class IntPxKt {
     method public static inline androidx.ui.unit.IntPxPosition IntPxPosition-rRMsBxU(int x, int y);
-    method public static inline androidx.ui.unit.IntPxSize IntPxSize-rRMsBxU(int width, int height);
-    method public static inline androidx.ui.unit.PxPosition PxPosition-rRMsBxU(int x, int y);
-    method public static inline androidx.ui.unit.PxSize PxSize-rRMsBxU(int width, int height);
-    method public static inline int ceil-NgWp0Z8(float);
-    method public static androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxSize);
-    method public static inline androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxBounds);
-    method public static inline int coerceAtLeast-rRMsBxU(int, int minimumValue);
-    method public static inline int coerceAtMost-rRMsBxU(int, int maximumValue);
-    method public static inline int coerceIn-qx1LT1w(int, int minimumValue, int maximumValue);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.IntPxSize IntPxSize-rRMsBxU(int width, int height);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition PxPosition-rRMsBxU(int x, int y);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxSize PxSize-rRMsBxU(int width, int height);
+    method @androidx.compose.Stable public static inline int ceil-NgWp0Z8(float);
+    method @androidx.compose.Stable public static androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxSize);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxBounds);
+    method @androidx.compose.Stable public static inline int coerceAtLeast-rRMsBxU(int, int minimumValue);
+    method @androidx.compose.Stable public static inline int coerceAtMost-rRMsBxU(int, int maximumValue);
+    method @androidx.compose.Stable public static inline int coerceIn-qx1LT1w(int, int minimumValue, int maximumValue);
     method public static inline int getHeight(androidx.ui.unit.IntPxBounds);
     method public static inline int getIpx(int);
     method public static inline int getWidth(androidx.ui.unit.IntPxBounds);
-    method public static inline boolean isFinite-gshw56o(int);
-    method @kotlin.PublishedApi internal static inline int keepInfinity-qx1LT1w(int, int other, int noInfinityValue);
-    method @kotlin.PublishedApi internal static inline int keepInfinity-rRMsBxU(int, int noInfinityValue);
-    method public static androidx.ui.unit.IntPxPosition lerp(androidx.ui.unit.IntPxPosition start, androidx.ui.unit.IntPxPosition stop, float fraction);
-    method public static int lerp-9BbVZj8(int start, int stop, float fraction);
-    method public static inline int max-rRMsBxU(int a, int b);
-    method public static inline int min-rRMsBxU(int a, int b);
-    method public static inline int round-NgWp0Z8(float);
-    method public static inline operator androidx.ui.unit.IntPxSize times(int, androidx.ui.unit.IntPxSize size);
-    method public static inline operator int times--Vi_IPY(float, int other);
-    method public static inline operator int times-9kGzznM(int, int other);
-    method public static inline operator int times-tHVXE4c(double, int other);
+    method @androidx.compose.Stable public static inline boolean isFinite-gshw56o(int);
+    method @androidx.compose.Stable @kotlin.PublishedApi internal static inline int keepInfinity-qx1LT1w(int, int other, int noInfinityValue);
+    method @androidx.compose.Stable @kotlin.PublishedApi internal static inline int keepInfinity-rRMsBxU(int, int noInfinityValue);
+    method @androidx.compose.Stable public static androidx.ui.unit.IntPxPosition lerp(androidx.ui.unit.IntPxPosition start, androidx.ui.unit.IntPxPosition stop, float fraction);
+    method @androidx.compose.Stable public static int lerp-9BbVZj8(int start, int stop, float fraction);
+    method @androidx.compose.Stable public static inline int max-rRMsBxU(int a, int b);
+    method @androidx.compose.Stable public static inline int min-rRMsBxU(int a, int b);
+    method @androidx.compose.Stable public static inline int round-NgWp0Z8(float);
+    method @androidx.compose.Stable public static inline operator androidx.ui.unit.IntPxSize times(int, androidx.ui.unit.IntPxSize size);
+    method @androidx.compose.Stable public static inline operator int times--Vi_IPY(float, int other);
+    method @androidx.compose.Stable public static inline operator int times-9kGzznM(int, int other);
+    method @androidx.compose.Stable public static inline operator int times-tHVXE4c(double, int other);
     method public static inline float toPx-gshw56o(int);
-    method public static inline androidx.ui.unit.PxPosition toPxPosition(androidx.ui.unit.IntPxPosition);
-    method public static inline androidx.ui.unit.PxSize toPxSize(androidx.ui.unit.IntPxSize);
-    method public static inline androidx.ui.unit.IntPxSize toSize(androidx.ui.unit.IntPxBounds);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition toPxPosition(androidx.ui.unit.IntPxPosition);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxSize toPxSize(androidx.ui.unit.IntPxSize);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.IntPxSize toSize(androidx.ui.unit.IntPxBounds);
   }
 
-  public final class IntPxPosition {
+  @androidx.compose.Immutable public final class IntPxPosition {
     ctor @kotlin.PublishedApi internal IntPxPosition(internal long value);
-    method public androidx.ui.unit.IntPxPosition copy(long value);
+    method @androidx.compose.Immutable public androidx.ui.unit.IntPxPosition copy(long value);
     method public inline int getX();
     method public inline int getY();
-    method public inline operator androidx.ui.unit.IntPxPosition minus(androidx.ui.unit.IntPxPosition other);
-    method public inline operator androidx.ui.unit.IntPxPosition plus(androidx.ui.unit.IntPxPosition other);
-    method public inline operator androidx.ui.unit.IntPxPosition unaryMinus();
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxPosition minus(androidx.ui.unit.IntPxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxPosition plus(androidx.ui.unit.IntPxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxPosition unaryMinus();
     property public final inline int x;
     property public final inline int y;
     field public static final androidx.ui.unit.IntPxPosition.Companion! Companion;
@@ -381,13 +381,13 @@
     property public final androidx.ui.unit.IntPxPosition Origin;
   }
 
-  public final class IntPxSize {
+  @androidx.compose.Immutable public final class IntPxSize {
     ctor @kotlin.PublishedApi internal IntPxSize(internal long value);
-    method public androidx.ui.unit.IntPxSize copy(long value);
-    method public inline operator androidx.ui.unit.IntPxSize div(int other);
+    method @androidx.compose.Immutable public androidx.ui.unit.IntPxSize copy(long value);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxSize div(int other);
     method public inline int getHeight();
     method public inline int getWidth();
-    method public inline operator androidx.ui.unit.IntPxSize times(int other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxSize times(int other);
     property public final inline int height;
     property public final inline int width;
     field public static final androidx.ui.unit.IntPxSize.Companion! Companion;
@@ -398,61 +398,61 @@
     property public final androidx.ui.unit.IntPxSize Zero;
   }
 
-  public final inline class IntSize {
+  @androidx.compose.Immutable public final inline class IntSize {
     ctor public IntSize();
     method public static long constructor-impl(internal long value);
-    method public static operator long div-impl(long $this, int other);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static operator long div-impl(long $this, int other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static int getHeight-impl(long $this);
     method public static int getWidth-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static operator long times-impl(long $this, int other);
-    method public static String toString-impl(long $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Stable public static operator long times-impl(long $this, int other);
+    method @androidx.compose.Stable public static String toString-impl(long $this);
   }
 
   public final class IntSizeKt {
-    method public static long IntSize(int width, int height);
-    method public static operator long times-twsQOwo(int, long size);
+    method @androidx.compose.Stable public static long IntSize(int width, int height);
+    method @androidx.compose.Stable public static operator long times-twsQOwo(int, long size);
   }
 
-  public final inline class Position {
+  @androidx.compose.Immutable public final inline class Position {
     ctor public Position();
     method public static long constructor-impl(internal long value);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static float getX-impl(long $this);
     method public static float getY-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static inline operator long minus-T8eBu-w(long $this, long other);
-    method public static inline operator long plus-T8eBu-w(long $this, long other);
-    method public static String toString-impl(long $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Stable public static inline operator long minus-T8eBu-w(long $this, long other);
+    method @androidx.compose.Stable public static inline operator long plus-T8eBu-w(long $this, long other);
+    method @androidx.compose.Stable public static String toString-impl(long $this);
   }
 
-  public final inline class Px implements java.lang.Comparable<androidx.ui.unit.Px> {
+  @androidx.compose.Immutable public final inline class Px implements java.lang.Comparable<androidx.ui.unit.Px> {
     ctor public Px();
-    method public operator int compareTo-NgWp0Z8(float p);
-    method public static operator int compareTo-NgWp0Z8(float $this, float other);
-    method public static inline operator int compareTo-gshw56o(float $this, int other);
+    method @androidx.compose.Stable public operator int compareTo-NgWp0Z8(float p);
+    method @androidx.compose.Stable public static operator int compareTo-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator int compareTo-gshw56o(float $this, int other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-NgWp0Z8(float $this, float other);
-    method public static inline operator float div-RjPF0Mw(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-impl(float $this, int other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, int other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-NgWp0Z8(float $this, float other);
-    method public static inline operator float minus-gshw56o(float $this, int other);
-    method public static inline operator float plus-NgWp0Z8(float $this, float other);
-    method public static inline operator float plus-gshw56o(float $this, int other);
-    method public static inline operator float times-NgWp0Z8(float $this, float other);
-    method public static inline operator float times-RjPF0Mw(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, int other);
-    method public static String toString-impl(float $this);
-    method public static inline operator float unaryMinus-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float minus-gshw56o(float $this, int other);
+    method @androidx.compose.Stable public static inline operator float plus-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float plus-gshw56o(float $this, int other);
+    method @androidx.compose.Stable public static inline operator float times-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, int other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
+    method @androidx.compose.Stable public static inline operator float unaryMinus-impl(float $this);
     field public static final androidx.ui.unit.Px.Companion! Companion;
   }
 
@@ -463,106 +463,106 @@
     property public final float Zero;
   }
 
-  public final class PxBounds {
+  @androidx.compose.Immutable public final class PxBounds {
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
-    method public androidx.ui.unit.PxBounds copy-wHlpFhg(float left, float top, float right, float bottom);
+    method @androidx.compose.Immutable public androidx.ui.unit.PxBounds copy-wHlpFhg(float left, float top, float right, float bottom);
     method public float getBottom();
     method public float getLeft();
     method public float getRight();
     method public float getTop();
   }
 
-  public final inline class PxCubed implements java.lang.Comparable<androidx.ui.unit.PxCubed> {
+  @androidx.compose.Immutable public final inline class PxCubed implements java.lang.Comparable<androidx.ui.unit.PxCubed> {
     ctor public PxCubed();
-    method public operator int compareTo-bji3ab4(float p);
-    method public static operator int compareTo-bji3ab4(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-bji3ab4(float p);
+    method @androidx.compose.Stable public static operator int compareTo-bji3ab4(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-NgWp0Z8(float $this, float other);
-    method public static inline operator float div-RjPF0Mw(float $this, float other);
-    method public static inline operator float div-bji3ab4(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-bji3ab4(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-bji3ab4(float $this, float dimension);
-    method public static inline operator float plus-bji3ab4(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-bji3ab4(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float plus-bji3ab4(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
-  public final inline class PxInverse implements java.lang.Comparable<androidx.ui.unit.PxInverse> {
+  @androidx.compose.Immutable public final inline class PxInverse implements java.lang.Comparable<androidx.ui.unit.PxInverse> {
     ctor public PxInverse();
-    method public operator int compareTo-KGV0gLo(float p);
-    method public static operator int compareTo-KGV0gLo(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-KGV0gLo(float p);
+    method @androidx.compose.Stable public static operator int compareTo-KGV0gLo(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-KGV0gLo(float $this, float dimension);
-    method public static inline operator float plus-KGV0gLo(float $this, float dimension);
-    method public static inline operator float times-NgWp0Z8(float $this, float other);
-    method public static inline operator float times-RjPF0Mw(float $this, float other);
-    method public static inline operator float times-bji3ab4(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-KGV0gLo(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float plus-KGV0gLo(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float times-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-bji3ab4(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
   public final class PxKt {
-    method public static inline androidx.ui.unit.PxBounds PxBounds(androidx.ui.unit.PxPosition topLeft, androidx.ui.unit.PxSize size);
-    method public static inline androidx.ui.unit.PxPosition PxPosition(float x, float y);
-    method public static inline androidx.ui.unit.PxPosition PxPosition-qHcltEY(float x, float y);
-    method public static inline androidx.ui.unit.PxSize PxSize(float width, float height);
-    method public static inline androidx.ui.unit.PxSize PxSize-qHcltEY(float width, float height);
-    method public static inline float abs-NgWp0Z8(float x);
-    method public static androidx.ui.unit.PxPosition center(androidx.ui.unit.PxSize);
-    method public static inline androidx.ui.unit.PxPosition center(androidx.ui.unit.PxBounds);
-    method public static inline float coerceAtLeast-qHcltEY(float, float minimumValue);
-    method public static inline float coerceAtMost-qHcltEY(float, float maximumValue);
-    method public static inline float coerceIn-HXvnt1Q(float, float minimumValue, float maximumValue);
-    method public static inline operator float div-78fIwVY(double, float other);
-    method public static inline operator float div-Ndu7NvY(int, float other);
-    method public static inline operator float div-kxDXtn8(float, float other);
-    method public static float getDistance(androidx.ui.unit.PxPosition);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxBounds PxBounds(androidx.ui.unit.PxPosition topLeft, androidx.ui.unit.PxSize size);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition PxPosition(float x, float y);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition PxPosition-qHcltEY(float x, float y);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxSize PxSize(float width, float height);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxSize PxSize-qHcltEY(float width, float height);
+    method @androidx.compose.Stable public static inline float abs-NgWp0Z8(float x);
+    method @androidx.compose.Stable public static androidx.ui.unit.PxPosition center(androidx.ui.unit.PxSize);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition center(androidx.ui.unit.PxBounds);
+    method @androidx.compose.Stable public static inline float coerceAtLeast-qHcltEY(float, float minimumValue);
+    method @androidx.compose.Stable public static inline float coerceAtMost-qHcltEY(float, float maximumValue);
+    method @androidx.compose.Stable public static inline float coerceIn-HXvnt1Q(float, float minimumValue, float maximumValue);
+    method @androidx.compose.Stable public static inline operator float div-78fIwVY(double, float other);
+    method @androidx.compose.Stable public static inline operator float div-Ndu7NvY(int, float other);
+    method @androidx.compose.Stable public static inline operator float div-kxDXtn8(float, float other);
+    method @androidx.compose.Stable public static float getDistance(androidx.ui.unit.PxPosition);
     method public static inline float getHeight(androidx.ui.unit.PxBounds);
     method public static float getMinDimension(androidx.ui.unit.PxSize);
     method public static inline float getPx(int);
     method public static inline float getPx(double);
     method public static inline float getPx(float);
     method public static inline float getWidth(androidx.ui.unit.PxBounds);
-    method public static androidx.ui.unit.PxPosition lerp(androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition stop, float fraction);
-    method public static float lerp-g-Fs4Ag(float start, float stop, float fraction);
-    method public static inline float max-qHcltEY(float a, float b);
-    method public static inline float min-qHcltEY(float a, float b);
-    method public static inline androidx.ui.unit.IntPxPosition round(androidx.ui.unit.PxPosition);
-    method public static inline operator androidx.ui.unit.PxSize times(int, androidx.ui.unit.PxSize size);
-    method public static inline operator androidx.ui.unit.PxSize times(float, androidx.ui.unit.PxSize size);
-    method public static inline operator androidx.ui.unit.PxSize times(double, androidx.ui.unit.PxSize size);
-    method public static inline operator float times-78fIwVY(double, float other);
-    method public static inline operator float times-Ndu7NvY(int, float other);
-    method public static inline operator float times-kxDXtn8(float, float other);
-    method public static androidx.ui.unit.PxBounds toBounds(androidx.ui.unit.PxSize);
-    method public static inline long toOffset(androidx.ui.unit.PxPosition);
-    method public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxBounds);
-    method public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxSize);
-    method public static androidx.ui.unit.PxSize toSize(androidx.ui.unit.PxBounds);
+    method @androidx.compose.Stable public static androidx.ui.unit.PxPosition lerp(androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition stop, float fraction);
+    method @androidx.compose.Stable public static float lerp-g-Fs4Ag(float start, float stop, float fraction);
+    method @androidx.compose.Stable public static inline float max-qHcltEY(float a, float b);
+    method @androidx.compose.Stable public static inline float min-qHcltEY(float a, float b);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.IntPxPosition round(androidx.ui.unit.PxPosition);
+    method @androidx.compose.Stable public static inline operator androidx.ui.unit.PxSize times(int, androidx.ui.unit.PxSize size);
+    method @androidx.compose.Stable public static inline operator androidx.ui.unit.PxSize times(float, androidx.ui.unit.PxSize size);
+    method @androidx.compose.Stable public static inline operator androidx.ui.unit.PxSize times(double, androidx.ui.unit.PxSize size);
+    method @androidx.compose.Stable public static inline operator float times-78fIwVY(double, float other);
+    method @androidx.compose.Stable public static inline operator float times-Ndu7NvY(int, float other);
+    method @androidx.compose.Stable public static inline operator float times-kxDXtn8(float, float other);
+    method @androidx.compose.Stable public static androidx.ui.unit.PxBounds toBounds(androidx.ui.unit.PxSize);
+    method @androidx.compose.Stable public static inline long toOffset(androidx.ui.unit.PxPosition);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxBounds);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxSize);
+    method @androidx.compose.Stable public static androidx.ui.unit.PxSize toSize(androidx.ui.unit.PxBounds);
   }
 
-  public final class PxPosition {
+  @androidx.compose.Immutable public final class PxPosition {
     ctor @kotlin.PublishedApi internal PxPosition(internal long value);
-    method public androidx.ui.unit.PxPosition copy(long value);
+    method @androidx.compose.Immutable public androidx.ui.unit.PxPosition copy(long value);
     method public inline float getX();
     method public inline float getY();
-    method public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.PxPosition other);
-    method public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.IntPxPosition other);
-    method public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.PxPosition other);
-    method public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.IntPxPosition other);
-    method public inline operator androidx.ui.unit.PxPosition unaryMinus();
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.PxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.IntPxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.PxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.IntPxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition unaryMinus();
     property public final inline float x;
     property public final inline float y;
     field public static final androidx.ui.unit.PxPosition.Companion! Companion;
@@ -573,17 +573,17 @@
     property public final androidx.ui.unit.PxPosition Origin;
   }
 
-  public final class PxSize {
+  @androidx.compose.Immutable public final class PxSize {
     ctor @kotlin.PublishedApi internal PxSize(internal long value);
-    method public androidx.ui.unit.PxSize copy(long value);
-    method public inline operator androidx.ui.unit.PxSize div(int other);
-    method public inline operator androidx.ui.unit.PxSize div(float other);
-    method public inline operator androidx.ui.unit.PxSize div(double other);
+    method @androidx.compose.Immutable public androidx.ui.unit.PxSize copy(long value);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize div(int other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize div(float other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize div(double other);
     method public inline float getHeight();
     method public inline float getWidth();
-    method public inline operator androidx.ui.unit.PxSize times(int other);
-    method public inline operator androidx.ui.unit.PxSize times(float other);
-    method public inline operator androidx.ui.unit.PxSize times(double other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize times(int other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize times(float other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize times(double other);
     property public final inline float height;
     property public final inline float width;
     field public static final androidx.ui.unit.PxSize.Companion! Companion;
@@ -596,27 +596,27 @@
     property public final androidx.ui.unit.PxSize Zero;
   }
 
-  public final inline class PxSquared implements java.lang.Comparable<androidx.ui.unit.PxSquared> {
+  @androidx.compose.Immutable public final inline class PxSquared implements java.lang.Comparable<androidx.ui.unit.PxSquared> {
     ctor public PxSquared();
-    method public operator int compareTo-RjPF0Mw(float p);
-    method public static operator int compareTo-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-RjPF0Mw(float p);
+    method @androidx.compose.Stable public static operator int compareTo-RjPF0Mw(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-NgWp0Z8(float $this, float other);
-    method public static inline operator float div-RjPF0Mw(float $this, float other);
-    method public static inline operator float div-bji3ab4(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-bji3ab4(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-RjPF0Mw(float $this, float other);
-    method public static inline operator float plus-RjPF0Mw(float $this, float other);
-    method public static inline operator float times-NgWp0Z8(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float plus-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
-  public final inline class TextUnit {
+  @androidx.compose.Immutable public final inline class TextUnit {
     ctor public TextUnit();
     method public static inline operator int compareTo-vVlMl6k(long $this, long other);
     method public static long constructor-impl(long packedValue);
@@ -624,12 +624,12 @@
     method public static inline operator long div-impl(long $this, double other);
     method public static inline operator long div-impl(long $this, int other);
     method public static inline operator float div-vVlMl6k(long $this, long other);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public long getPackedValue();
     method public static androidx.ui.unit.TextUnitType getType-impl(long $this);
     method public static float getValue-impl(long $this);
-    method public static inline int hashCode-impl(long p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
     method public static boolean isEm-impl(long $this);
     method public static boolean isInherit-impl(long $this);
     method public static boolean isSp-impl(long $this);
@@ -658,22 +658,22 @@
     method @kotlin.PublishedApi internal static inline <T> T! checkArithmetic-2fUAro8(long a, long b, long c, kotlin.jvm.functions.Function0<? extends T> block);
     method @kotlin.PublishedApi internal static inline <T> T! checkArithmetic-G_x5Bg4(long a, kotlin.jvm.functions.Function0<? extends T> block);
     method @kotlin.PublishedApi internal static inline <T> T! checkArithmetic-JyO0NBI(long a, long b, kotlin.jvm.functions.Function0<? extends T> block);
-    method public static inline long coerceAtLeast-gL_aCS0(long, long minimumValue);
-    method public static inline long coerceAtMost-gL_aCS0(long, long maximumValue);
-    method public static inline long coerceIn-Y2exRck(long, long minimumValue, long maximumValue);
+    method @androidx.compose.Stable public static inline long coerceAtLeast-gL_aCS0(long, long minimumValue);
+    method @androidx.compose.Stable public static inline long coerceAtMost-gL_aCS0(long, long maximumValue);
+    method @androidx.compose.Stable public static inline long coerceIn-Y2exRck(long, long minimumValue, long maximumValue);
     method public static long getEm(float);
     method public static long getEm(double);
     method public static long getEm(int);
     method public static long getSp(float);
     method public static long getSp(double);
     method public static long getSp(int);
-    method public static long lerp-SpZbbpo(long a, long b, float t);
-    method public static inline long max-gL_aCS0(long a, long b);
-    method public static inline long min-gL_aCS0(long a, long b);
+    method @androidx.compose.Stable public static long lerp-SpZbbpo(long a, long b, float t);
+    method @androidx.compose.Stable public static inline long max-gL_aCS0(long a, long b);
+    method @androidx.compose.Stable public static inline long min-gL_aCS0(long a, long b);
     method @kotlin.PublishedApi internal static inline long pack(long unitType, float v);
-    method public static inline operator long times-GncdoDw(double, long other);
-    method public static inline operator long times-MVx5XBU(float, long other);
-    method public static inline operator long times-UlzjdM0(int, long other);
+    method @androidx.compose.Stable public static inline operator long times-GncdoDw(double, long other);
+    method @androidx.compose.Stable public static inline operator long times-MVx5XBU(float, long other);
+    method @androidx.compose.Stable public static inline operator long times-UlzjdM0(int, long other);
   }
 
   public enum TextUnitType {
@@ -682,11 +682,11 @@
     enum_constant public static final androidx.ui.unit.TextUnitType Sp;
   }
 
-  public final class Uptime implements java.lang.Comparable<androidx.ui.unit.Uptime> {
+  @androidx.compose.Immutable public final class Uptime implements java.lang.Comparable<androidx.ui.unit.Uptime> {
     ctor public Uptime(long nanoseconds);
     method public int compareTo(androidx.ui.unit.Uptime other);
     method public long component1();
-    method public androidx.ui.unit.Uptime copy(long nanoseconds);
+    method @androidx.compose.Immutable public androidx.ui.unit.Uptime copy(long nanoseconds);
     method public long getNanoseconds();
     method public operator androidx.ui.unit.Uptime minus(androidx.ui.unit.Duration duration);
     method public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Uptime other);
@@ -703,10 +703,10 @@
     method public static operator androidx.ui.unit.Uptime plus(androidx.ui.unit.Duration, androidx.ui.unit.Uptime uptime);
   }
 
-  public final class Velocity {
+  @androidx.compose.Immutable public final class Velocity {
     ctor public Velocity(androidx.ui.unit.PxPosition pixelsPerSecond);
     method public androidx.ui.unit.PxPosition component1();
-    method public androidx.ui.unit.Velocity copy(androidx.ui.unit.PxPosition pixelsPerSecond);
+    method @androidx.compose.Immutable public androidx.ui.unit.Velocity copy(androidx.ui.unit.PxPosition pixelsPerSecond);
     method public androidx.ui.unit.PxPosition getPixelsPerSecond();
     method public operator androidx.ui.unit.Velocity unaryMinus();
     field public static final androidx.ui.unit.Velocity.Companion! Companion;
diff --git a/ui/ui-unit/api/restricted_current.txt b/ui/ui-unit/api/restricted_current.txt
index 71cbf10..05db857 100644
--- a/ui/ui-unit/api/restricted_current.txt
+++ b/ui/ui-unit/api/restricted_current.txt
@@ -1,12 +1,12 @@
 // Signature format: 3.0
 package androidx.ui.core {
 
-  public final class Constraints {
+  @androidx.compose.Immutable public final class Constraints {
     method public int component1();
     method public int component2();
     method public int component3();
     method public int component4();
-    method public androidx.ui.core.Constraints copy-Q13GOEE(int minWidth, int maxWidth, int minHeight, int maxHeight);
+    method @androidx.compose.Immutable public androidx.ui.core.Constraints copy-Q13GOEE(int minWidth, int maxWidth, int minHeight, int maxHeight);
     method public int getMaxHeight();
     method public int getMaxWidth();
     method public int getMinHeight();
@@ -15,16 +15,16 @@
   }
 
   public static final class Constraints.Companion {
-    method public androidx.ui.core.Constraints fixed-rRMsBxU(int width, int height);
-    method public androidx.ui.core.Constraints fixedHeight-gshw56o(int height);
-    method public androidx.ui.core.Constraints fixedWidth-gshw56o(int width);
+    method @androidx.compose.Stable public androidx.ui.core.Constraints fixed-rRMsBxU(int width, int height);
+    method @androidx.compose.Stable public androidx.ui.core.Constraints fixedHeight-gshw56o(int height);
+    method @androidx.compose.Stable public androidx.ui.core.Constraints fixedWidth-gshw56o(int width);
   }
 
-  public final inline class Constraints2 {
+  @androidx.compose.Immutable public final inline class Constraints2 {
     ctor public Constraints2();
     method public static long constructor-impl(internal long value);
-    method public static long copy-impl(long $this, int minWidth = this.minWidth, int maxWidth = this.maxWidth, int minHeight = this.minHeight, int maxHeight = this.maxHeight);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static long copy-impl(long $this, int minWidth = this.minWidth, int maxWidth = this.maxWidth, int minHeight = this.minHeight, int maxHeight = this.maxHeight);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static boolean getHasBoundedHeight-impl(long $this);
     method public static boolean getHasBoundedWidth-impl(long $this);
@@ -32,39 +32,39 @@
     method public static int getMaxWidth-impl(long $this);
     method public static int getMinHeight-impl(long $this);
     method public static int getMinWidth-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static inline String! toString-impl(long p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Immutable public static inline String! toString-impl(long p);
     field public static final androidx.ui.core.Constraints2.Companion! Companion;
-    field public static final int Infinity = -1073741824; // 0xc0000000
+    field @androidx.compose.Stable public static final int Infinity = -1073741824; // 0xc0000000
   }
 
   public static final class Constraints2.Companion {
-    method public long fixed(int width, int height);
-    method public long fixedHeight(int height);
-    method public long fixedWidth(int width);
+    method @androidx.compose.Stable public long fixed(int width, int height);
+    method @androidx.compose.Stable public long fixedHeight(int height);
+    method @androidx.compose.Stable public long fixedWidth(int width);
   }
 
   public final class Constraints2Kt {
-    method public static long Constraints2(@IntRange(from=0) int minWidth = 0, int maxWidth = -1073741824, @IntRange(from=0) int minHeight = 0, int maxHeight = -1073741824);
-    method public static long constrain-M1ogGms(long, long size);
-    method public static long enforce-uQjoOwo(long, long otherConstraints);
+    method @androidx.compose.Stable public static long Constraints2(@IntRange(from=0) int minWidth = 0, int maxWidth = -1073741824, @IntRange(from=0) int minHeight = 0, int maxHeight = -1073741824);
+    method @androidx.compose.Stable public static long constrain-M1ogGms(long, long size);
+    method @androidx.compose.Stable public static long enforce-uQjoOwo(long, long otherConstraints);
     method public static boolean getHasFixedHeight-ybNdgAI(long);
     method public static boolean getHasFixedWidth-ybNdgAI(long);
     method public static boolean isZero-ybNdgAI(long);
-    method public static long offset-xOKVbDg(long, int horizontal = 0, int vertical = 0);
-    method public static boolean satisfiedBy-M1ogGms(long, long size);
+    method @androidx.compose.Stable public static long offset-xOKVbDg(long, int horizontal = 0, int vertical = 0);
+    method @androidx.compose.Stable public static boolean satisfiedBy-M1ogGms(long, long size);
   }
 
   public final class ConstraintsKt {
-    method public static androidx.ui.unit.IntPxSize constrain(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
-    method public static androidx.ui.core.Constraints enforce(androidx.ui.core.Constraints, androidx.ui.core.Constraints otherConstraints);
+    method @androidx.compose.Stable public static androidx.ui.unit.IntPxSize constrain(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
+    method @androidx.compose.Stable public static androidx.ui.core.Constraints enforce(androidx.ui.core.Constraints, androidx.ui.core.Constraints otherConstraints);
     method public static boolean getHasBoundedHeight(androidx.ui.core.Constraints);
     method public static boolean getHasBoundedWidth(androidx.ui.core.Constraints);
     method public static boolean getHasFixedHeight(androidx.ui.core.Constraints);
     method public static boolean getHasFixedWidth(androidx.ui.core.Constraints);
     method public static boolean isZero(androidx.ui.core.Constraints);
-    method public static androidx.ui.core.Constraints offset-3L2DHGc(androidx.ui.core.Constraints, int horizontal = 0.ipx, int vertical = 0.ipx);
-    method public static boolean satisfiedBy(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
+    method @androidx.compose.Stable public static androidx.ui.core.Constraints offset-3L2DHGc(androidx.ui.core.Constraints, int horizontal = 0.ipx, int vertical = 0.ipx);
+    method @androidx.compose.Stable public static boolean satisfiedBy(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
   }
 
   public enum LayoutDirection {
@@ -80,65 +80,65 @@
     method public static androidx.ui.unit.Density Density(android.content.Context context);
   }
 
-  public final class Bounds {
+  @androidx.compose.Immutable public final class Bounds {
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
-    method public androidx.ui.unit.Bounds copy-rIHlIKc(float left, float top, float right, float bottom);
+    method @androidx.compose.Immutable public androidx.ui.unit.Bounds copy-rIHlIKc(float left, float top, float right, float bottom);
     method public float getBottom();
     method public float getLeft();
     method public float getRight();
     method public float getTop();
   }
 
-  public interface Density {
+  @androidx.compose.Immutable public interface Density {
     method public float getDensity();
     method public float getFontScale();
-    method public default float toDp(float);
-    method public default float toDp(int);
-    method public default float toDp-NgWp0Z8(float);
-    method public default float toDp-gshw56o(int);
-    method public default float toDp-vVlMl6k(long);
-    method public default int toIntPx-ipo6vVg(float);
-    method public default int toIntPx-vVlMl6k(long);
-    method public default float toPx-ipo6vVg(float);
-    method public default float toPx-vVlMl6k(long);
-    method public default androidx.ui.geometry.Rect toRect(androidx.ui.unit.Bounds);
-    method public default long toSp(float);
-    method public default long toSp(int);
-    method public default long toSp-NgWp0Z8(float);
-    method public default long toSp-gshw56o(int);
-    method public default long toSp-ipo6vVg(float);
+    method @androidx.compose.Stable public default float toDp(float);
+    method @androidx.compose.Stable public default float toDp(int);
+    method @androidx.compose.Stable public default float toDp-NgWp0Z8(float);
+    method @androidx.compose.Stable public default float toDp-gshw56o(int);
+    method @androidx.compose.Stable public default float toDp-vVlMl6k(long);
+    method @androidx.compose.Stable public default int toIntPx-ipo6vVg(float);
+    method @androidx.compose.Stable public default int toIntPx-vVlMl6k(long);
+    method @androidx.compose.Stable public default float toPx-ipo6vVg(float);
+    method @androidx.compose.Stable public default float toPx-vVlMl6k(long);
+    method @androidx.compose.Stable public default androidx.ui.geometry.Rect toRect(androidx.ui.unit.Bounds);
+    method @androidx.compose.Stable public default long toSp(float);
+    method @androidx.compose.Stable public default long toSp(int);
+    method @androidx.compose.Stable public default long toSp-NgWp0Z8(float);
+    method @androidx.compose.Stable public default long toSp-gshw56o(int);
+    method @androidx.compose.Stable public default long toSp-ipo6vVg(float);
     property public abstract float density;
     property public abstract float fontScale;
   }
 
   public final class DensityKt {
-    method public static androidx.ui.unit.Density Density(float density, float fontScale = 1f);
+    method @androidx.compose.Stable public static androidx.ui.unit.Density Density(float density, float fontScale = 1f);
   }
 
-  public final inline class Dp implements java.lang.Comparable<androidx.ui.unit.Dp> {
+  @androidx.compose.Immutable public final inline class Dp implements java.lang.Comparable<androidx.ui.unit.Dp> {
     ctor public Dp();
-    method public operator int compareTo-ipo6vVg(float p);
-    method public static operator int compareTo-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-ipo6vVg(float p);
+    method @androidx.compose.Stable public static operator int compareTo-ipo6vVg(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-impl(float $this, int other);
-    method public static inline operator float div-ipo6vVg(float $this, float other);
-    method public static inline operator float div-x8crYZs(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, int other);
+    method @androidx.compose.Stable public static inline operator float div-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-x8crYZs(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-ipo6vVg(float $this, float other);
-    method public static inline operator float plus-ipo6vVg(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, int other);
-    method public static inline operator float times-ipo6vVg(float $this, float other);
-    method public static inline operator float times-x8crYZs(float $this, float other);
-    method public static String toString-impl(float $this);
-    method public static inline operator float unaryMinus-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float plus-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, int other);
+    method @androidx.compose.Stable public static inline operator float times-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
+    method @androidx.compose.Stable public static inline operator float unaryMinus-impl(float $this);
     field public static final androidx.ui.unit.Dp.Companion! Companion;
   }
 
@@ -151,100 +151,100 @@
     property public final float Unspecified;
   }
 
-  public final inline class DpCubed implements java.lang.Comparable<androidx.ui.unit.DpCubed> {
+  @androidx.compose.Immutable public final inline class DpCubed implements java.lang.Comparable<androidx.ui.unit.DpCubed> {
     ctor public DpCubed();
-    method public operator int compareTo-JDqhs2g(float p);
-    method public static operator int compareTo-JDqhs2g(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-JDqhs2g(float p);
+    method @androidx.compose.Stable public static operator int compareTo-JDqhs2g(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-JDqhs2g(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-ipo6vVg(float $this, float other);
-    method public static inline operator float div-x8crYZs(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-JDqhs2g(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-x8crYZs(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-JDqhs2g(float $this, float dimension);
-    method public static inline operator float plus-JDqhs2g(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-JDqhs2g(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float plus-JDqhs2g(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
-  public final inline class DpInverse implements java.lang.Comparable<androidx.ui.unit.DpInverse> {
+  @androidx.compose.Immutable public final inline class DpInverse implements java.lang.Comparable<androidx.ui.unit.DpInverse> {
     ctor public DpInverse();
-    method public operator int compareTo-_K2iRR8(float p);
-    method public static operator int compareTo-_K2iRR8(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-_K2iRR8(float p);
+    method @androidx.compose.Stable public static operator int compareTo-_K2iRR8(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-_K2iRR8(float $this, float dimension);
-    method public static inline operator float plus-_K2iRR8(float $this, float dimension);
-    method public static inline operator float times-JDqhs2g(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-ipo6vVg(float $this, float other);
-    method public static inline operator float times-x8crYZs(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-_K2iRR8(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float plus-_K2iRR8(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float times-JDqhs2g(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
   public final class DpKt {
-    method public static inline long Position-98Cn76g(float x, float y);
-    method public static inline float coerceAtLeast-98Cn76g(float, float minimumValue);
-    method public static inline float coerceAtMost-98Cn76g(float, float maximumValue);
-    method public static inline float coerceIn-x40Cv7w(float, float minimumValue, float maximumValue);
-    method public static inline operator float div-H0Zl2lQ(float, float other);
-    method public static inline operator float div-Y_YOLaE(double, float other);
-    method public static inline operator float div-hZ6b2Ic(int, float other);
-    method public static float getDistance-T8eBu-w(long);
+    method @androidx.compose.Stable public static inline long Position-98Cn76g(float x, float y);
+    method @androidx.compose.Stable public static inline float coerceAtLeast-98Cn76g(float, float minimumValue);
+    method @androidx.compose.Stable public static inline float coerceAtMost-98Cn76g(float, float maximumValue);
+    method @androidx.compose.Stable public static inline float coerceIn-x40Cv7w(float, float minimumValue, float maximumValue);
+    method @androidx.compose.Stable public static inline operator float div-H0Zl2lQ(float, float other);
+    method @androidx.compose.Stable public static inline operator float div-Y_YOLaE(double, float other);
+    method @androidx.compose.Stable public static inline operator float div-hZ6b2Ic(int, float other);
+    method @androidx.compose.Stable public static float getDistance-T8eBu-w(long);
     method public static inline float getDp(int);
     method public static inline float getDp(double);
     method public static inline float getDp(float);
     method public static inline float getHeight(androidx.ui.unit.Bounds);
     method public static inline float getWidth(androidx.ui.unit.Bounds);
-    method public static inline boolean isFinite-ipo6vVg(float);
-    method public static float lerp-3WSoJcA(float start, float stop, float fraction);
-    method public static long lerp-d5NHFfI(long start, long stop, float fraction);
-    method public static inline float max-98Cn76g(float a, float b);
-    method public static inline float min-98Cn76g(float a, float b);
-    method public static inline operator float times-H0Zl2lQ(float, float other);
-    method public static inline operator float times-Y_YOLaE(double, float other);
-    method public static inline operator float times-hZ6b2Ic(int, float other);
+    method @androidx.compose.Stable public static inline boolean isFinite-ipo6vVg(float);
+    method @androidx.compose.Stable public static float lerp-3WSoJcA(float start, float stop, float fraction);
+    method @androidx.compose.Stable public static long lerp-d5NHFfI(long start, long stop, float fraction);
+    method @androidx.compose.Stable public static inline float max-98Cn76g(float a, float b);
+    method @androidx.compose.Stable public static inline float min-98Cn76g(float a, float b);
+    method @androidx.compose.Stable public static inline operator float times-H0Zl2lQ(float, float other);
+    method @androidx.compose.Stable public static inline operator float times-Y_YOLaE(double, float other);
+    method @androidx.compose.Stable public static inline operator float times-hZ6b2Ic(int, float other);
   }
 
-  public final inline class DpSquared implements java.lang.Comparable<androidx.ui.unit.DpSquared> {
+  @androidx.compose.Immutable public final inline class DpSquared implements java.lang.Comparable<androidx.ui.unit.DpSquared> {
     ctor public DpSquared();
-    method public operator int compareTo-x8crYZs(float p);
-    method public static operator int compareTo-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-x8crYZs(float p);
+    method @androidx.compose.Stable public static operator int compareTo-x8crYZs(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-JDqhs2g(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-ipo6vVg(float $this, float other);
-    method public static inline operator float div-x8crYZs(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-JDqhs2g(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-x8crYZs(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-x8crYZs(float $this, float other);
-    method public static inline operator float plus-x8crYZs(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-ipo6vVg(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float plus-x8crYZs(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-ipo6vVg(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
-  public final class Duration implements java.lang.Comparable<androidx.ui.unit.Duration> {
+  @androidx.compose.Immutable public final class Duration implements java.lang.Comparable<androidx.ui.unit.Duration> {
     ctor public Duration(long nanoseconds);
-    method public int compareTo(androidx.ui.unit.Duration other);
+    method @androidx.compose.Stable public int compareTo(androidx.ui.unit.Duration other);
     method public long component1();
-    method public androidx.ui.unit.Duration copy(long nanoseconds);
-    method public operator androidx.ui.unit.Duration div(int quotient);
-    method public operator androidx.ui.unit.Duration div(double quotient);
+    method @androidx.compose.Immutable public androidx.ui.unit.Duration copy(long nanoseconds);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration div(int quotient);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration div(double quotient);
     method public long getNanoseconds();
-    method public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Duration other);
-    method public operator androidx.ui.unit.Duration plus(androidx.ui.unit.Duration other);
-    method public operator androidx.ui.unit.Duration times(int factor);
-    method public operator androidx.ui.unit.Duration times(double factor);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Duration other);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration plus(androidx.ui.unit.Duration other);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration times(int factor);
+    method @androidx.compose.Stable public operator androidx.ui.unit.Duration times(double factor);
     field public static final androidx.ui.unit.Duration.Companion! Companion;
   }
 
@@ -288,27 +288,27 @@
     field public static final long SecondsPerMinute = 60L; // 0x3cL
   }
 
-  public final inline class IntPx implements java.lang.Comparable<androidx.ui.unit.IntPx> {
+  @androidx.compose.Immutable public final inline class IntPx implements java.lang.Comparable<androidx.ui.unit.IntPx> {
     ctor public IntPx();
-    method public static inline operator int compareTo-NgWp0Z8(int $this, float other);
-    method public operator int compareTo-gshw56o(int p);
-    method public static operator int compareTo-gshw56o(int $this, int other);
+    method @androidx.compose.Stable public static inline operator int compareTo-NgWp0Z8(int $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-gshw56o(int p);
+    method @androidx.compose.Stable public static operator int compareTo-gshw56o(int $this, int other);
     method public static int constructor-impl(int value);
-    method public static operator int div-impl(int $this, float other);
-    method public static operator int div-impl(int $this, double other);
-    method public static operator int div-impl(int $this, int other);
-    method public static inline boolean equals-impl(int p, Object? p1);
+    method @androidx.compose.Stable public static operator int div-impl(int $this, float other);
+    method @androidx.compose.Stable public static operator int div-impl(int $this, double other);
+    method @androidx.compose.Stable public static operator int div-impl(int $this, int other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(int p, Object? p1);
     method public static boolean equals-impl0(int p1, int p2);
     method public int getValue();
-    method public static inline int hashCode-impl(int p);
-    method public static operator int minus-gshw56o(int $this, int other);
-    method public static operator int plus-gshw56o(int $this, int other);
-    method public static inline operator int rem-impl(int $this, int other);
-    method public static operator int times-impl(int $this, float other);
-    method public static operator int times-impl(int $this, double other);
-    method public static operator int times-impl(int $this, int other);
-    method public static String toString-impl(int $this);
-    method public static operator int unaryMinus-impl(int $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(int p);
+    method @androidx.compose.Stable public static operator int minus-gshw56o(int $this, int other);
+    method @androidx.compose.Stable public static operator int plus-gshw56o(int $this, int other);
+    method @androidx.compose.Stable public static inline operator int rem-impl(int $this, int other);
+    method @androidx.compose.Stable public static operator int times-impl(int $this, float other);
+    method @androidx.compose.Stable public static operator int times-impl(int $this, double other);
+    method @androidx.compose.Stable public static operator int times-impl(int $this, int other);
+    method @androidx.compose.Stable public static String toString-impl(int $this);
+    method @androidx.compose.Stable public static operator int unaryMinus-impl(int $this);
     field public static final androidx.ui.unit.IntPx.Companion! Companion;
   }
 
@@ -319,12 +319,12 @@
     property public final int Zero;
   }
 
-  public final class IntPxBounds {
+  @androidx.compose.Immutable public final class IntPxBounds {
     method public int component1();
     method public int component2();
     method public int component3();
     method public int component4();
-    method public androidx.ui.unit.IntPxBounds copy-Q13GOEE(int left, int top, int right, int bottom);
+    method @androidx.compose.Immutable public androidx.ui.unit.IntPxBounds copy-Q13GOEE(int left, int top, int right, int bottom);
     method public int getBottom();
     method public int getLeft();
     method public int getRight();
@@ -333,44 +333,44 @@
 
   public final class IntPxKt {
     method public static inline androidx.ui.unit.IntPxPosition IntPxPosition-rRMsBxU(int x, int y);
-    method public static inline androidx.ui.unit.IntPxSize IntPxSize-rRMsBxU(int width, int height);
-    method public static inline androidx.ui.unit.PxPosition PxPosition-rRMsBxU(int x, int y);
-    method public static inline androidx.ui.unit.PxSize PxSize-rRMsBxU(int width, int height);
-    method public static inline int ceil-NgWp0Z8(float);
-    method public static androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxSize);
-    method public static inline androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxBounds);
-    method public static inline int coerceAtLeast-rRMsBxU(int, int minimumValue);
-    method public static inline int coerceAtMost-rRMsBxU(int, int maximumValue);
-    method public static inline int coerceIn-qx1LT1w(int, int minimumValue, int maximumValue);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.IntPxSize IntPxSize-rRMsBxU(int width, int height);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition PxPosition-rRMsBxU(int x, int y);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxSize PxSize-rRMsBxU(int width, int height);
+    method @androidx.compose.Stable public static inline int ceil-NgWp0Z8(float);
+    method @androidx.compose.Stable public static androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxSize);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxBounds);
+    method @androidx.compose.Stable public static inline int coerceAtLeast-rRMsBxU(int, int minimumValue);
+    method @androidx.compose.Stable public static inline int coerceAtMost-rRMsBxU(int, int maximumValue);
+    method @androidx.compose.Stable public static inline int coerceIn-qx1LT1w(int, int minimumValue, int maximumValue);
     method public static inline int getHeight(androidx.ui.unit.IntPxBounds);
     method public static inline int getIpx(int);
     method public static inline int getWidth(androidx.ui.unit.IntPxBounds);
-    method public static inline boolean isFinite-gshw56o(int);
-    method @kotlin.PublishedApi internal static inline int keepInfinity-qx1LT1w(int, int other, int noInfinityValue);
-    method @kotlin.PublishedApi internal static inline int keepInfinity-rRMsBxU(int, int noInfinityValue);
-    method public static androidx.ui.unit.IntPxPosition lerp(androidx.ui.unit.IntPxPosition start, androidx.ui.unit.IntPxPosition stop, float fraction);
-    method public static int lerp-9BbVZj8(int start, int stop, float fraction);
-    method public static inline int max-rRMsBxU(int a, int b);
-    method public static inline int min-rRMsBxU(int a, int b);
-    method public static inline int round-NgWp0Z8(float);
-    method public static inline operator androidx.ui.unit.IntPxSize times(int, androidx.ui.unit.IntPxSize size);
-    method public static inline operator int times--Vi_IPY(float, int other);
-    method public static inline operator int times-9kGzznM(int, int other);
-    method public static inline operator int times-tHVXE4c(double, int other);
+    method @androidx.compose.Stable public static inline boolean isFinite-gshw56o(int);
+    method @androidx.compose.Stable @kotlin.PublishedApi internal static inline int keepInfinity-qx1LT1w(int, int other, int noInfinityValue);
+    method @androidx.compose.Stable @kotlin.PublishedApi internal static inline int keepInfinity-rRMsBxU(int, int noInfinityValue);
+    method @androidx.compose.Stable public static androidx.ui.unit.IntPxPosition lerp(androidx.ui.unit.IntPxPosition start, androidx.ui.unit.IntPxPosition stop, float fraction);
+    method @androidx.compose.Stable public static int lerp-9BbVZj8(int start, int stop, float fraction);
+    method @androidx.compose.Stable public static inline int max-rRMsBxU(int a, int b);
+    method @androidx.compose.Stable public static inline int min-rRMsBxU(int a, int b);
+    method @androidx.compose.Stable public static inline int round-NgWp0Z8(float);
+    method @androidx.compose.Stable public static inline operator androidx.ui.unit.IntPxSize times(int, androidx.ui.unit.IntPxSize size);
+    method @androidx.compose.Stable public static inline operator int times--Vi_IPY(float, int other);
+    method @androidx.compose.Stable public static inline operator int times-9kGzznM(int, int other);
+    method @androidx.compose.Stable public static inline operator int times-tHVXE4c(double, int other);
     method public static inline float toPx-gshw56o(int);
-    method public static inline androidx.ui.unit.PxPosition toPxPosition(androidx.ui.unit.IntPxPosition);
-    method public static inline androidx.ui.unit.PxSize toPxSize(androidx.ui.unit.IntPxSize);
-    method public static inline androidx.ui.unit.IntPxSize toSize(androidx.ui.unit.IntPxBounds);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition toPxPosition(androidx.ui.unit.IntPxPosition);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxSize toPxSize(androidx.ui.unit.IntPxSize);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.IntPxSize toSize(androidx.ui.unit.IntPxBounds);
   }
 
-  public final class IntPxPosition {
+  @androidx.compose.Immutable public final class IntPxPosition {
     ctor @kotlin.PublishedApi internal IntPxPosition(internal long value);
-    method public androidx.ui.unit.IntPxPosition copy(long value);
+    method @androidx.compose.Immutable public androidx.ui.unit.IntPxPosition copy(long value);
     method public inline int getX();
     method public inline int getY();
-    method public inline operator androidx.ui.unit.IntPxPosition minus(androidx.ui.unit.IntPxPosition other);
-    method public inline operator androidx.ui.unit.IntPxPosition plus(androidx.ui.unit.IntPxPosition other);
-    method public inline operator androidx.ui.unit.IntPxPosition unaryMinus();
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxPosition minus(androidx.ui.unit.IntPxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxPosition plus(androidx.ui.unit.IntPxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxPosition unaryMinus();
     property public final inline int x;
     property public final inline int y;
     field public static final androidx.ui.unit.IntPxPosition.Companion! Companion;
@@ -381,13 +381,13 @@
     property public final androidx.ui.unit.IntPxPosition Origin;
   }
 
-  public final class IntPxSize {
+  @androidx.compose.Immutable public final class IntPxSize {
     ctor @kotlin.PublishedApi internal IntPxSize(internal long value);
-    method public androidx.ui.unit.IntPxSize copy(long value);
-    method public inline operator androidx.ui.unit.IntPxSize div(int other);
+    method @androidx.compose.Immutable public androidx.ui.unit.IntPxSize copy(long value);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxSize div(int other);
     method public inline int getHeight();
     method public inline int getWidth();
-    method public inline operator androidx.ui.unit.IntPxSize times(int other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.IntPxSize times(int other);
     property public final inline int height;
     property public final inline int width;
     field public static final androidx.ui.unit.IntPxSize.Companion! Companion;
@@ -398,61 +398,61 @@
     property public final androidx.ui.unit.IntPxSize Zero;
   }
 
-  public final inline class IntSize {
+  @androidx.compose.Immutable public final inline class IntSize {
     ctor public IntSize();
     method public static long constructor-impl(internal long value);
-    method public static operator long div-impl(long $this, int other);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Stable public static operator long div-impl(long $this, int other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static int getHeight-impl(long $this);
     method public static int getWidth-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static operator long times-impl(long $this, int other);
-    method public static String toString-impl(long $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Stable public static operator long times-impl(long $this, int other);
+    method @androidx.compose.Stable public static String toString-impl(long $this);
   }
 
   public final class IntSizeKt {
-    method public static long IntSize(int width, int height);
-    method public static operator long times-twsQOwo(int, long size);
+    method @androidx.compose.Stable public static long IntSize(int width, int height);
+    method @androidx.compose.Stable public static operator long times-twsQOwo(int, long size);
   }
 
-  public final inline class Position {
+  @androidx.compose.Immutable public final inline class Position {
     ctor public Position();
     method public static long constructor-impl(internal long value);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public static float getX-impl(long $this);
     method public static float getY-impl(long $this);
-    method public static inline int hashCode-impl(long p);
-    method public static inline operator long minus-T8eBu-w(long $this, long other);
-    method public static inline operator long plus-T8eBu-w(long $this, long other);
-    method public static String toString-impl(long $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
+    method @androidx.compose.Stable public static inline operator long minus-T8eBu-w(long $this, long other);
+    method @androidx.compose.Stable public static inline operator long plus-T8eBu-w(long $this, long other);
+    method @androidx.compose.Stable public static String toString-impl(long $this);
   }
 
-  public final inline class Px implements java.lang.Comparable<androidx.ui.unit.Px> {
+  @androidx.compose.Immutable public final inline class Px implements java.lang.Comparable<androidx.ui.unit.Px> {
     ctor public Px();
-    method public operator int compareTo-NgWp0Z8(float p);
-    method public static operator int compareTo-NgWp0Z8(float $this, float other);
-    method public static inline operator int compareTo-gshw56o(float $this, int other);
+    method @androidx.compose.Stable public operator int compareTo-NgWp0Z8(float p);
+    method @androidx.compose.Stable public static operator int compareTo-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator int compareTo-gshw56o(float $this, int other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-NgWp0Z8(float $this, float other);
-    method public static inline operator float div-RjPF0Mw(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-impl(float $this, int other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, int other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-NgWp0Z8(float $this, float other);
-    method public static inline operator float minus-gshw56o(float $this, int other);
-    method public static inline operator float plus-NgWp0Z8(float $this, float other);
-    method public static inline operator float plus-gshw56o(float $this, int other);
-    method public static inline operator float times-NgWp0Z8(float $this, float other);
-    method public static inline operator float times-RjPF0Mw(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, int other);
-    method public static String toString-impl(float $this);
-    method public static inline operator float unaryMinus-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float minus-gshw56o(float $this, int other);
+    method @androidx.compose.Stable public static inline operator float plus-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float plus-gshw56o(float $this, int other);
+    method @androidx.compose.Stable public static inline operator float times-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, int other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
+    method @androidx.compose.Stable public static inline operator float unaryMinus-impl(float $this);
     field public static final androidx.ui.unit.Px.Companion! Companion;
   }
 
@@ -463,106 +463,106 @@
     property public final float Zero;
   }
 
-  public final class PxBounds {
+  @androidx.compose.Immutable public final class PxBounds {
     method public float component1();
     method public float component2();
     method public float component3();
     method public float component4();
-    method public androidx.ui.unit.PxBounds copy-wHlpFhg(float left, float top, float right, float bottom);
+    method @androidx.compose.Immutable public androidx.ui.unit.PxBounds copy-wHlpFhg(float left, float top, float right, float bottom);
     method public float getBottom();
     method public float getLeft();
     method public float getRight();
     method public float getTop();
   }
 
-  public final inline class PxCubed implements java.lang.Comparable<androidx.ui.unit.PxCubed> {
+  @androidx.compose.Immutable public final inline class PxCubed implements java.lang.Comparable<androidx.ui.unit.PxCubed> {
     ctor public PxCubed();
-    method public operator int compareTo-bji3ab4(float p);
-    method public static operator int compareTo-bji3ab4(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-bji3ab4(float p);
+    method @androidx.compose.Stable public static operator int compareTo-bji3ab4(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-NgWp0Z8(float $this, float other);
-    method public static inline operator float div-RjPF0Mw(float $this, float other);
-    method public static inline operator float div-bji3ab4(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-bji3ab4(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-bji3ab4(float $this, float dimension);
-    method public static inline operator float plus-bji3ab4(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-bji3ab4(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float plus-bji3ab4(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
-  public final inline class PxInverse implements java.lang.Comparable<androidx.ui.unit.PxInverse> {
+  @androidx.compose.Immutable public final inline class PxInverse implements java.lang.Comparable<androidx.ui.unit.PxInverse> {
     ctor public PxInverse();
-    method public operator int compareTo-KGV0gLo(float p);
-    method public static operator int compareTo-KGV0gLo(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-KGV0gLo(float p);
+    method @androidx.compose.Stable public static operator int compareTo-KGV0gLo(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-KGV0gLo(float $this, float dimension);
-    method public static inline operator float plus-KGV0gLo(float $this, float dimension);
-    method public static inline operator float times-NgWp0Z8(float $this, float other);
-    method public static inline operator float times-RjPF0Mw(float $this, float other);
-    method public static inline operator float times-bji3ab4(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-KGV0gLo(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float plus-KGV0gLo(float $this, float dimension);
+    method @androidx.compose.Stable public static inline operator float times-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-bji3ab4(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
   public final class PxKt {
-    method public static inline androidx.ui.unit.PxBounds PxBounds(androidx.ui.unit.PxPosition topLeft, androidx.ui.unit.PxSize size);
-    method public static inline androidx.ui.unit.PxPosition PxPosition(float x, float y);
-    method public static inline androidx.ui.unit.PxPosition PxPosition-qHcltEY(float x, float y);
-    method public static inline androidx.ui.unit.PxSize PxSize(float width, float height);
-    method public static inline androidx.ui.unit.PxSize PxSize-qHcltEY(float width, float height);
-    method public static inline float abs-NgWp0Z8(float x);
-    method public static androidx.ui.unit.PxPosition center(androidx.ui.unit.PxSize);
-    method public static inline androidx.ui.unit.PxPosition center(androidx.ui.unit.PxBounds);
-    method public static inline float coerceAtLeast-qHcltEY(float, float minimumValue);
-    method public static inline float coerceAtMost-qHcltEY(float, float maximumValue);
-    method public static inline float coerceIn-HXvnt1Q(float, float minimumValue, float maximumValue);
-    method public static inline operator float div-78fIwVY(double, float other);
-    method public static inline operator float div-Ndu7NvY(int, float other);
-    method public static inline operator float div-kxDXtn8(float, float other);
-    method public static float getDistance(androidx.ui.unit.PxPosition);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxBounds PxBounds(androidx.ui.unit.PxPosition topLeft, androidx.ui.unit.PxSize size);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition PxPosition(float x, float y);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition PxPosition-qHcltEY(float x, float y);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxSize PxSize(float width, float height);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxSize PxSize-qHcltEY(float width, float height);
+    method @androidx.compose.Stable public static inline float abs-NgWp0Z8(float x);
+    method @androidx.compose.Stable public static androidx.ui.unit.PxPosition center(androidx.ui.unit.PxSize);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.PxPosition center(androidx.ui.unit.PxBounds);
+    method @androidx.compose.Stable public static inline float coerceAtLeast-qHcltEY(float, float minimumValue);
+    method @androidx.compose.Stable public static inline float coerceAtMost-qHcltEY(float, float maximumValue);
+    method @androidx.compose.Stable public static inline float coerceIn-HXvnt1Q(float, float minimumValue, float maximumValue);
+    method @androidx.compose.Stable public static inline operator float div-78fIwVY(double, float other);
+    method @androidx.compose.Stable public static inline operator float div-Ndu7NvY(int, float other);
+    method @androidx.compose.Stable public static inline operator float div-kxDXtn8(float, float other);
+    method @androidx.compose.Stable public static float getDistance(androidx.ui.unit.PxPosition);
     method public static inline float getHeight(androidx.ui.unit.PxBounds);
     method public static float getMinDimension(androidx.ui.unit.PxSize);
     method public static inline float getPx(int);
     method public static inline float getPx(double);
     method public static inline float getPx(float);
     method public static inline float getWidth(androidx.ui.unit.PxBounds);
-    method public static androidx.ui.unit.PxPosition lerp(androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition stop, float fraction);
-    method public static float lerp-g-Fs4Ag(float start, float stop, float fraction);
-    method public static inline float max-qHcltEY(float a, float b);
-    method public static inline float min-qHcltEY(float a, float b);
-    method public static inline androidx.ui.unit.IntPxPosition round(androidx.ui.unit.PxPosition);
-    method public static inline operator androidx.ui.unit.PxSize times(int, androidx.ui.unit.PxSize size);
-    method public static inline operator androidx.ui.unit.PxSize times(float, androidx.ui.unit.PxSize size);
-    method public static inline operator androidx.ui.unit.PxSize times(double, androidx.ui.unit.PxSize size);
-    method public static inline operator float times-78fIwVY(double, float other);
-    method public static inline operator float times-Ndu7NvY(int, float other);
-    method public static inline operator float times-kxDXtn8(float, float other);
-    method public static androidx.ui.unit.PxBounds toBounds(androidx.ui.unit.PxSize);
-    method public static inline long toOffset(androidx.ui.unit.PxPosition);
-    method public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxBounds);
-    method public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxSize);
-    method public static androidx.ui.unit.PxSize toSize(androidx.ui.unit.PxBounds);
+    method @androidx.compose.Stable public static androidx.ui.unit.PxPosition lerp(androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition stop, float fraction);
+    method @androidx.compose.Stable public static float lerp-g-Fs4Ag(float start, float stop, float fraction);
+    method @androidx.compose.Stable public static inline float max-qHcltEY(float a, float b);
+    method @androidx.compose.Stable public static inline float min-qHcltEY(float a, float b);
+    method @androidx.compose.Stable public static inline androidx.ui.unit.IntPxPosition round(androidx.ui.unit.PxPosition);
+    method @androidx.compose.Stable public static inline operator androidx.ui.unit.PxSize times(int, androidx.ui.unit.PxSize size);
+    method @androidx.compose.Stable public static inline operator androidx.ui.unit.PxSize times(float, androidx.ui.unit.PxSize size);
+    method @androidx.compose.Stable public static inline operator androidx.ui.unit.PxSize times(double, androidx.ui.unit.PxSize size);
+    method @androidx.compose.Stable public static inline operator float times-78fIwVY(double, float other);
+    method @androidx.compose.Stable public static inline operator float times-Ndu7NvY(int, float other);
+    method @androidx.compose.Stable public static inline operator float times-kxDXtn8(float, float other);
+    method @androidx.compose.Stable public static androidx.ui.unit.PxBounds toBounds(androidx.ui.unit.PxSize);
+    method @androidx.compose.Stable public static inline long toOffset(androidx.ui.unit.PxPosition);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxBounds);
+    method @androidx.compose.Stable public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxSize);
+    method @androidx.compose.Stable public static androidx.ui.unit.PxSize toSize(androidx.ui.unit.PxBounds);
   }
 
-  public final class PxPosition {
+  @androidx.compose.Immutable public final class PxPosition {
     ctor @kotlin.PublishedApi internal PxPosition(internal long value);
-    method public androidx.ui.unit.PxPosition copy(long value);
+    method @androidx.compose.Immutable public androidx.ui.unit.PxPosition copy(long value);
     method public inline float getX();
     method public inline float getY();
-    method public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.PxPosition other);
-    method public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.IntPxPosition other);
-    method public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.PxPosition other);
-    method public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.IntPxPosition other);
-    method public inline operator androidx.ui.unit.PxPosition unaryMinus();
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.PxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.IntPxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.PxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.IntPxPosition other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxPosition unaryMinus();
     property public final inline float x;
     property public final inline float y;
     field public static final androidx.ui.unit.PxPosition.Companion! Companion;
@@ -573,17 +573,17 @@
     property public final androidx.ui.unit.PxPosition Origin;
   }
 
-  public final class PxSize {
+  @androidx.compose.Immutable public final class PxSize {
     ctor @kotlin.PublishedApi internal PxSize(internal long value);
-    method public androidx.ui.unit.PxSize copy(long value);
-    method public inline operator androidx.ui.unit.PxSize div(int other);
-    method public inline operator androidx.ui.unit.PxSize div(float other);
-    method public inline operator androidx.ui.unit.PxSize div(double other);
+    method @androidx.compose.Immutable public androidx.ui.unit.PxSize copy(long value);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize div(int other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize div(float other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize div(double other);
     method public inline float getHeight();
     method public inline float getWidth();
-    method public inline operator androidx.ui.unit.PxSize times(int other);
-    method public inline operator androidx.ui.unit.PxSize times(float other);
-    method public inline operator androidx.ui.unit.PxSize times(double other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize times(int other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize times(float other);
+    method @androidx.compose.Stable public inline operator androidx.ui.unit.PxSize times(double other);
     property public final inline float height;
     property public final inline float width;
     field public static final androidx.ui.unit.PxSize.Companion! Companion;
@@ -596,27 +596,27 @@
     property public final androidx.ui.unit.PxSize Zero;
   }
 
-  public final inline class PxSquared implements java.lang.Comparable<androidx.ui.unit.PxSquared> {
+  @androidx.compose.Immutable public final inline class PxSquared implements java.lang.Comparable<androidx.ui.unit.PxSquared> {
     ctor public PxSquared();
-    method public operator int compareTo-RjPF0Mw(float p);
-    method public static operator int compareTo-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public operator int compareTo-RjPF0Mw(float p);
+    method @androidx.compose.Stable public static operator int compareTo-RjPF0Mw(float $this, float other);
     method public static float constructor-impl(float value);
-    method public static inline operator float div-NgWp0Z8(float $this, float other);
-    method public static inline operator float div-RjPF0Mw(float $this, float other);
-    method public static inline operator float div-bji3ab4(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline boolean equals-impl(float p, Object? p1);
+    method @androidx.compose.Stable public static inline operator float div-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-bji3ab4(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float div-impl(float $this, float other);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(float p, Object? p1);
     method public static boolean equals-impl0(float p1, float p2);
     method public float getValue();
-    method public static inline int hashCode-impl(float p);
-    method public static inline operator float minus-RjPF0Mw(float $this, float other);
-    method public static inline operator float plus-RjPF0Mw(float $this, float other);
-    method public static inline operator float times-NgWp0Z8(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(float p);
+    method @androidx.compose.Stable public static inline operator float minus-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float plus-RjPF0Mw(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-NgWp0Z8(float $this, float other);
+    method @androidx.compose.Stable public static inline operator float times-impl(float $this, float other);
+    method @androidx.compose.Stable public static String toString-impl(float $this);
   }
 
-  public final inline class TextUnit {
+  @androidx.compose.Immutable public final inline class TextUnit {
     ctor public TextUnit();
     method public static inline operator int compareTo-vVlMl6k(long $this, long other);
     method public static long constructor-impl(long packedValue);
@@ -624,12 +624,12 @@
     method public static inline operator long div-impl(long $this, double other);
     method public static inline operator long div-impl(long $this, int other);
     method public static inline operator float div-vVlMl6k(long $this, long other);
-    method public static inline boolean equals-impl(long p, Object? p1);
+    method @androidx.compose.Immutable public static inline boolean equals-impl(long p, Object? p1);
     method public static boolean equals-impl0(long p1, long p2);
     method public long getPackedValue();
     method public static androidx.ui.unit.TextUnitType getType-impl(long $this);
     method public static float getValue-impl(long $this);
-    method public static inline int hashCode-impl(long p);
+    method @androidx.compose.Immutable public static inline int hashCode-impl(long p);
     method public static boolean isEm-impl(long $this);
     method public static boolean isInherit-impl(long $this);
     method public static boolean isSp-impl(long $this);
@@ -658,22 +658,22 @@
     method @kotlin.PublishedApi internal static inline <T> T! checkArithmetic-2fUAro8(long a, long b, long c, kotlin.jvm.functions.Function0<? extends T> block);
     method @kotlin.PublishedApi internal static inline <T> T! checkArithmetic-G_x5Bg4(long a, kotlin.jvm.functions.Function0<? extends T> block);
     method @kotlin.PublishedApi internal static inline <T> T! checkArithmetic-JyO0NBI(long a, long b, kotlin.jvm.functions.Function0<? extends T> block);
-    method public static inline long coerceAtLeast-gL_aCS0(long, long minimumValue);
-    method public static inline long coerceAtMost-gL_aCS0(long, long maximumValue);
-    method public static inline long coerceIn-Y2exRck(long, long minimumValue, long maximumValue);
+    method @androidx.compose.Stable public static inline long coerceAtLeast-gL_aCS0(long, long minimumValue);
+    method @androidx.compose.Stable public static inline long coerceAtMost-gL_aCS0(long, long maximumValue);
+    method @androidx.compose.Stable public static inline long coerceIn-Y2exRck(long, long minimumValue, long maximumValue);
     method public static long getEm(float);
     method public static long getEm(double);
     method public static long getEm(int);
     method public static long getSp(float);
     method public static long getSp(double);
     method public static long getSp(int);
-    method public static long lerp-SpZbbpo(long a, long b, float t);
-    method public static inline long max-gL_aCS0(long a, long b);
-    method public static inline long min-gL_aCS0(long a, long b);
+    method @androidx.compose.Stable public static long lerp-SpZbbpo(long a, long b, float t);
+    method @androidx.compose.Stable public static inline long max-gL_aCS0(long a, long b);
+    method @androidx.compose.Stable public static inline long min-gL_aCS0(long a, long b);
     method @kotlin.PublishedApi internal static inline long pack(long unitType, float v);
-    method public static inline operator long times-GncdoDw(double, long other);
-    method public static inline operator long times-MVx5XBU(float, long other);
-    method public static inline operator long times-UlzjdM0(int, long other);
+    method @androidx.compose.Stable public static inline operator long times-GncdoDw(double, long other);
+    method @androidx.compose.Stable public static inline operator long times-MVx5XBU(float, long other);
+    method @androidx.compose.Stable public static inline operator long times-UlzjdM0(int, long other);
   }
 
   public enum TextUnitType {
@@ -682,11 +682,11 @@
     enum_constant public static final androidx.ui.unit.TextUnitType Sp;
   }
 
-  public final class Uptime implements java.lang.Comparable<androidx.ui.unit.Uptime> {
+  @androidx.compose.Immutable public final class Uptime implements java.lang.Comparable<androidx.ui.unit.Uptime> {
     ctor public Uptime(long nanoseconds);
     method public int compareTo(androidx.ui.unit.Uptime other);
     method public long component1();
-    method public androidx.ui.unit.Uptime copy(long nanoseconds);
+    method @androidx.compose.Immutable public androidx.ui.unit.Uptime copy(long nanoseconds);
     method public long getNanoseconds();
     method public operator androidx.ui.unit.Uptime minus(androidx.ui.unit.Duration duration);
     method public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Uptime other);
@@ -703,10 +703,10 @@
     method public static operator androidx.ui.unit.Uptime plus(androidx.ui.unit.Duration, androidx.ui.unit.Uptime uptime);
   }
 
-  public final class Velocity {
+  @androidx.compose.Immutable public final class Velocity {
     ctor public Velocity(androidx.ui.unit.PxPosition pixelsPerSecond);
     method public androidx.ui.unit.PxPosition component1();
-    method public androidx.ui.unit.Velocity copy(androidx.ui.unit.PxPosition pixelsPerSecond);
+    method @androidx.compose.Immutable public androidx.ui.unit.Velocity copy(androidx.ui.unit.PxPosition pixelsPerSecond);
     method public androidx.ui.unit.PxPosition getPixelsPerSecond();
     method public operator androidx.ui.unit.Velocity unaryMinus();
     field public static final androidx.ui.unit.Velocity.Companion! Companion;