1 import Base 2 import ./change_tick.bend as Tick 3 import world.bend as W 4 import compose.bend as Q 5 import owned_compose.bend as O 6 import optimized_compose.bend as Opt 7 import transaction.bend as T 8 9 def each(~S:Data,~Store:Type,~R:Type,~E:Data,~Ops:Type -> Type,~H:Type,~A:Data,~U:Data,~Out:Data,~plan:O.Plan,~body:@-H:Type -> @-caps:Ops(H) -> A -> H -> H & (T.Outcome & Out),~prepare:Store -> Store,~recover:Store -> Store,args:A,world:W.World) -> Q.Executed,Q.Error,Out>: 10 Opt.recovered(~S,~Store,~R,~E,~U,~Out,~recover,O.each(~S,~Store,~R,~E,~Ops,~H,~A,~U,~Out,~plan,~body,args,Opt.map_store(~S,~Store,~R,~E,~prepare,world))) 11 def each_since(~S:Data,~Store:Type,~R:Type,~E:Data,~Ops:Type -> Type,~H:Type,~A:Data,~U:Data,~Out:Data,~plan:O.Plan,~body:@-H:Type -> @-caps:Ops(H) -> A -> H -> H & (T.Outcome & Out),~prepare:Store -> Store,~recover:Store -> Store,args:A,world:W.World,cursor:Maybe<&2,Tick.Tick>) -> Q.Executed,Q.Error,Out>: 12 Opt.recovered(~S,~Store,~R,~E,~U,~Out,~recover,O.each_since(~S,~Store,~R,~E,~Ops,~H,~A,~U,~Out,~plan,~body,args,Opt.map_store(~S,~Store,~R,~E,~prepare,world),cursor)) 13 14 def each_fields(~S:Data,~Store:Type,~R:Type,~E:Data,~Ops:Type -> Type,~H:Type,~A:Data,~U:Data,~Out:Data,~caps:Ops(H),~select:Q.Frame -> Q.Frame & Bool,~enter:Q.Frame -> H,~leave:H -> Q.Frame,~body:@-H:Type -> @-caps:Ops(H) -> A -> H -> H & (T.Outcome & Out),~prepare:Store -> Store,~recover:Store -> Store,args:A,world:W.World) -> Q.Executed,Q.Error,Out>: 15 Opt.recovered(~S,~Store,~R,~E,~U,~Out,~recover,O.each_fields(~S,~Store,~R,~E,~Ops,~H,~A,~U,~Out,~caps,~select,~enter,~leave,~body,args,Opt.map_store(~S,~Store,~R,~E,~prepare,world))) 16 def each_fields_since(~S:Data,~Store:Type,~R:Type,~E:Data,~Ops:Type -> Type,~H:Type,~A:Data,~U:Data,~Out:Data,~caps:Ops(H),~select:Q.Frame -> Q.Frame & Bool,~enter:Q.Frame -> H,~leave:H -> Q.Frame,~body:@-H:Type -> @-caps:Ops(H) -> A -> H -> H & (T.Outcome & Out),~prepare:Store -> Store,~recover:Store -> Store,args:A,world:W.World,cursor:Maybe<&2,Tick.Tick>) -> Q.Executed,Q.Error,Out>: 17 Opt.recovered(~S,~Store,~R,~E,~U,~Out,~recover,O.each_fields_since(~S,~Store,~R,~E,~Ops,~H,~A,~U,~Out,~caps,~select,~enter,~leave,~body,args,Opt.map_store(~S,~Store,~R,~E,~prepare,world),cursor))