// commonMain internal expect val moleculeRecompositionMode: RecompositionMode internal expect val moleculeCoroutineContext: CoroutineContext abstract class MoleculeViewModel : ViewModel() { private val scope = CoroutineScope( viewModelScope.coroutineContext + moleculeCoroutineContext, ) val state: StateFlow by lazy(LazyThreadSafetyMode.NONE) { scope.launchMolecule(mode = moleculeRecompositionMode) { state(events) } } // ... } // androidMain internal actual val moleculeRecompositionMode: RecompositionMode = RecompositionMode.ContextClock internal actual val moleculeCoroutineContext: CoroutineContext = AndroidUiDispatcher.Main // iosMain internal actual val moleculeRecompositionMode: RecompositionMode = RecompositionMode.Immediate internal actual val moleculeCoroutineContext: CoroutineContext = Dispatchers.Main + DisplayLinkClock