from permchain import Channels, Pregel grow_value = ( Pregel.subscribe_to("value") | (lambda x: x + x) | Pregel.write_to(value=lambda x: x if len(x) < 10 else None) ) app = Pregel( chains={"grow_value": grow_value}, channels={"value": Channels.LastValue(str)}, input="value", output="value", ) assert app.invoke("a") == "aaaaaaaa"