def effect_branch
bendvy-ecs-core@0.1.0.3 · execution_query_column.bend:31
import bendvy-ecs-core@0.1.0.3/execution_query_column.bend as ExecutionQueryColumn
import Base
import bendvy-ecs-core@0.1.0.3/chunk_column.bend as Col
import bendvy-ecs-core@0.1.0.3/execution_effects.bend as E
31def effect_branch(~F:Type -> Type,~effects:E.Effects<F>,-S:Data,-C:Type,-P:Type,-O:Type,+half:U32,left:Col.Column<S,C>,right:Col.Column<S,C>,goLeft:Col.Column<S,C> -> O -> (P -> O -> F(P & O)) -> F(Update<S,C,O>),goRight:Col.Column<S,C> -> O -> (P -> O -> F(P & O)) -> F(Update<S,C,O>),state:O,operation:P -> O -> F(P & O),first:Bool) -> F(Update<S,C,O>):
32 match first:
33 case True{}:E.map(~F,Update<S,C,O>,Update<S,C,O>,effects,goLeft(left,state,operation),result=>effect_left(S,C,O,half,right,result))
34 case False{}:E.map(~F,Update<S,C,O>,Update<S,C,O>,effects,goRight(right,state,operation),result=>effect_right(S,C,O,half,left,result))