1 import Base 2 import ./ordinary_app_existing_execution.bend as Existing 3 import ./ordinary_app_registration_fields.bend as Fields 4 import ./execution_context.bend as Ctx 5 import ./schedule_provision.bend as SP 6 import ./system.bend as Sys 7 import ./local.bend as Local 8 import ./ordinary_reader_system.bend as Reader 9 import ./world.bend as W 10 11 def local_fold(~S:Data,~C:Type,~R:Type,~E:Data,~L:Type,~Args:Type,~RunError:Data,~Out:Type,~runner:W.World -> L -> Args -> Local.Outcome,L,RunError,Out>,~Shared:Type) -> (Local.Instance & Shared) -> (Local.Instance & Shared) & List<&2,Fields.Fields>: 12 Existing.fold(~S,~Local.Instance,~Shared,~Existing.local_fields(~S,~C,~R,~E,~L,~Args,~RunError,~Out,~runner)) 13 def local_plan(~S:Data,~C:Type,~R:Type,~E:Data,~L:Type,~Args:Type,~RunError:Data,~Out:Type,~runner:W.World -> L -> Args -> Local.Outcome,L,RunError,Out>,~Shared:Type,~enabled:Shared -> Shared & Bool,~needs:List<&2,SP.Requirement>) -> (Local.Instance & Shared) -> (Local.Instance & Shared) & SP.Plan: 14 Existing.plan(~S,~Local.Instance,~Shared,~Existing.local_fields(~S,~C,~R,~E,~L,~Args,~RunError,~Out,~runner),~enabled,~needs) 15 def local_dispatch(~S:Data,~C:Type,~R:Type,~E:Data,~L:Type,~Args:Type,~RunError:Data,~Out:Type,~runner:W.World -> L -> Args -> Local.Outcome,L,RunError,Out>,~Shared:Type,~Error:Data,~invoke:Local.Instance -> Shared -> Ctx.Context> -> Local.Instance & (Shared & Sys.Outcome>,Error,Unit>),~refused:Error) -> (Local.Instance & Shared) -> Ctx.Context> -> U32 -> (Local.Instance & Shared) & Sys.Outcome>,Error,Unit>: 16 Existing.dispatch(~S,~W.World,~Local.Instance,~Shared,~Error,~Existing.local_fields(~S,~C,~R,~E,~L,~Args,~RunError,~Out,~runner),~invoke,~refused) 17 def system_fold(~S:Data,~C:Type,~R:Type,~E:Data,~Args:Type,~RunError:Data,~Out:Type,~runner:W.World -> Args -> Sys.Outcome,RunError,Out>,~Shared:Type) -> (Sys.Registry & Shared) -> (Sys.Registry & Shared) & List<&2,Fields.Fields>: 18 Existing.fold(~S,~Sys.Registry,~Shared,~Existing.system_fields(~S,~C,~R,~E,~Args,~RunError,~Out,~runner)) 19 def system_plan(~S:Data,~C:Type,~R:Type,~E:Data,~Args:Type,~RunError:Data,~Out:Type,~runner:W.World -> Args -> Sys.Outcome,RunError,Out>,~Shared:Type,~enabled:Shared -> Shared & Bool,~needs:List<&2,SP.Requirement>) -> (Sys.Registry & Shared) -> (Sys.Registry & Shared) & SP.Plan: 20 Existing.plan(~S,~Sys.Registry,~Shared,~Existing.system_fields(~S,~C,~R,~E,~Args,~RunError,~Out,~runner),~enabled,~needs) 21 def system_dispatch(~S:Data,~C:Type,~R:Type,~E:Data,~Args:Type,~RunError:Data,~Out:Type,~runner:W.World -> Args -> Sys.Outcome,RunError,Out>,~Shared:Type,~Error:Data,~invoke:Sys.Registry -> Shared -> Ctx.Context> -> Sys.Registry & (Shared & Sys.Outcome>,Error,Unit>),~refused:Error) -> (Sys.Registry & Shared) -> Ctx.Context> -> U32 -> (Sys.Registry & Shared) & Sys.Outcome>,Error,Unit>: 22 Existing.dispatch(~S,~W.World,~Sys.Registry,~Shared,~Error,~Existing.system_fields(~S,~C,~R,~E,~Args,~RunError,~Out,~runner),~invoke,~refused) 23 def reader_fold(~S:Data,~C:Type,~R:Type,~E:Data,~Args:Type,~RunError:Data,~Out:Type,~runner:W.World -> Args -> Sys.Outcome,RunError,Out>,~Owner:Type,~Param:Type,~Decl:Type,~Shared:Type) -> (Reader.Provider,Owner,Param,Decl> & Shared) -> (Reader.Provider,Owner,Param,Decl> & Shared) & List<&2,Fields.Fields>: 24 Existing.fold(~S,~Reader.Provider,Owner,Param,Decl>,~Shared,~Existing.reader_fields(~S,~C,~R,~E,~Args,~RunError,~Out,~runner,~Owner,~Param,~Decl)) 25 def reader_plan(~S:Data,~C:Type,~R:Type,~E:Data,~Args:Type,~RunError:Data,~Out:Type,~runner:W.World -> Args -> Sys.Outcome,RunError,Out>,~Owner:Type,~Param:Type,~Decl:Type,~Shared:Type,~enabled:Shared -> Shared & Bool,~needs:List<&2,SP.Requirement>) -> (Reader.Provider,Owner,Param,Decl> & Shared) -> (Reader.Provider,Owner,Param,Decl> & Shared) & SP.Plan: 26 Existing.plan(~S,~Reader.Provider,Owner,Param,Decl>,~Shared,~Existing.reader_fields(~S,~C,~R,~E,~Args,~RunError,~Out,~runner,~Owner,~Param,~Decl),~enabled,~needs) 27 def reader_dispatch(~S:Data,~C:Type,~R:Type,~E:Data,~Args:Type,~RunError:Data,~Out:Type,~runner:W.World -> Args -> Sys.Outcome,RunError,Out>,~Owner:Type,~Param:Type,~Decl:Type,~Shared:Type,~Error:Data,~invoke:Reader.Provider,Owner,Param,Decl> -> Shared -> Ctx.Context> -> Reader.Provider,Owner,Param,Decl> & (Shared & Sys.Outcome>,Error,Unit>),~refused:Error) -> (Reader.Provider,Owner,Param,Decl> & Shared) -> Ctx.Context> -> U32 -> (Reader.Provider,Owner,Param,Decl> & Shared) & Sys.Outcome>,Error,Unit>: 28 Existing.dispatch(~S,~W.World,~Reader.Provider,Owner,Param,Decl>,~Shared,~Error,~Existing.reader_fields(~S,~C,~R,~E,~Args,~RunError,~Out,~runner,~Owner,~Param,~Decl),~invoke,~refused)