functor (D : Definitions->
  sig
    val t : string
    type properties = (string * string) list
    type name = string
    type alias = string
    type color = float * float * float
    type container_type = D.container_type
    type state_type = D.state_type
    type event_type = D.event_type
    type variable_type = D.variable_type
    type link_type = D.link_type
    type entity_value_type
    val create_container :
      name:name ->
      typ:container_type ->
      ?container:name -> ?alias:alias -> properties -> properties
    val destroy_container :
      name:name -> typ:container_type -> properties -> properties
    val set_state :
      typ:state_type ->
      container:name -> value:string -> properties -> properties
    val push_state :
      typ:state_type ->
      container:name -> value:string -> properties -> properties
    val pop_state :
      typ:state_type -> container:name -> properties -> properties
    val reset_state :
      typ:state_type -> container:name -> properties -> properties
    val new_event :
      typ:event_type ->
      container:name -> value:string -> properties -> properties
    val set_variable :
      typ:variable_type ->
      container:name -> value:float -> properties -> properties
    val add_variable :
      typ:variable_type ->
      container:name -> value:float -> properties -> properties
    val sub_variable :
      typ:variable_type ->
      container:name -> value:float -> properties -> properties
    val start_link :
      typ:link_type ->
      container:name ->
      start_container:name ->
      value:string -> key:string -> properties -> properties
    val end_link :
      typ:link_type ->
      container:name ->
      end_container:name ->
      value:string -> key:string -> properties -> properties
  end