module arch.node.engines.reads_for;

import prelude open;
import arch.node.types.engine open;

import arch.node.engines.reads_for_messages open public;
import arch.node.engines.reads_for_environment open public;
import arch.node.engines.reads_for_behaviour open public;

import arch.node.engines.reads_for_config open public;
import arch.node.engines.reads_for_messages open public;
import arch.node.engines.reads_for_environment open public;
import arch.node.engines.reads_for_behaviour open public;

import arch.node.types.anoma as Anoma open;

open reads_for_config_example;
open reads_for_environment_example;

ReadsForEngine : Type :=
  Engine
    ReadsForCfg
    ReadsForLocalState
    ReadsForMailboxState
    ReadsForTimerHandle
    ReadsForActionArguments
    Anoma.Msg
    Anoma.Cfg
    Anoma.Env;

exampleReadsForEngine : ReadsForEngine :=
  mkEngine@{
    cfg := readsForCfg;
    env := readsForEnv;
    behaviour := readsForBehaviour;
  };