import 'package:signals/signals.dart'; void main() async { final number = signal(2); final squared = computedAsync(() async { print("Squaring ${number.value}..."); await Future.delayed(Duration(seconds: 1)); final result = number.value * number.value; print("Squared ${number.value} to $result"); return result; }, dependencies: [number]); final cubed = computedAsync(() async { final m = await squared.future; print("Cubing ${m}..."); await Future.delayed(Duration(seconds: 1)); final result = m * m * m; print("Cubed ${m} to $result"); return result; }, dependencies: [squared]); effect(() { print("Current State: " + (cubed.value.value?.toString() ?? "null")); }); while (true) { await Future.delayed(Duration(seconds: 50)); } }