module arch.node.engines.naming;

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

import arch.node.engines.naming_config open public;
import arch.node.engines.naming_messages open public;
import arch.node.engines.naming_environment open public;
import arch.node.engines.naming_behaviour open public;

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

open naming_config_example;
open naming_environment_example;

NamingEngine : Type :=
  Engine
    NamingCfg
    NamingLocalState
    NamingMailboxState
    NamingTimerHandle
    NamingActionArguments
    Anoma.Msg
    Anoma.Cfg
    Anoma.Env;

exampleNamingEngine : NamingEngine :=
  mkEngine@{
    cfg := namingCfg;
    env := namingEnv;
    behaviour := namingBehaviour;
  };