/// This module contains the definition of an actionable item. An actionable item can be an action or a durative action.
/// This module contains the definition of a constant. A constant is a value that is not changed by the actions.
/// This module contains the definition of a domain. A domain is a set of actions, predicates, constants, and types.
/// This module contains the definition of a durative action. A durative action is a function that takes a set of parameters and returns a set of effects. It also has a duration.
/// This module contains the definition of an expression. An expression is a function that takes a set of parameters and returns a value.
/// This module contains the definition of a parameter. A parameter is a variable that is used in an action or a predicate.
/// This module contains the definition of a predicate. A predicate is a function that takes a set of parameters and returns a boolean.
/// This module contains the definition of a requirement. A requirement is a feature that is required by the domain.
/// This module contains the definition of an action. An action is a function that takes a set of parameters and returns a set of effects.
/// This module contains the definition of a typed parameter. A typed parameter is a variable that is used in an action or a predicate. The type of the parameter is specified explicitly.
/// This module contains the definition of a typed predicate. A typed predicate is a function that takes a set of parameters and returns a boolean. The type of the parameters is specified explicitly.
/// This module contains the definition of a type definition. It defines the tree structure of the types.
/// This module contains the definition of a type.