module arch.node.engines.signs_for;

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

import arch.node.engines.signs_for_config open public;
import arch.node.engines.signs_for_messages open public;
import arch.node.engines.signs_for_environment open public;
import arch.node.engines.signs_for_behaviour open public;

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

open signs_for_config_example;
open signs_for_environment_example;

SignsForEngine : Type :=
  Engine
    SignsForCfg
    SignsForLocalState
    SignsForMailboxState
    SignsForTimerHandle
    SignsForActionArguments
    Anoma.Msg
    Anoma.Cfg
    Anoma.Env;

exampleSignsForEngine : SignsForEngine :=
  mkEngine@{
    cfg := signsForCfg;
    env := signsForEnv;
    behaviour := signsForBehaviour;
  };