Future<I> input<I extends Object?>(Function method, I input) async { effects?.add(Input(method, input, this)); return input; }