# Structs
ConstraintError is used to return detailed violation information from CheckConstraints.
Dependency is used to create a directed edge between two nouns.
Graph is used to represent a dependency graph.
Nouns are the key structure of the dependency graph.
ValidateError implements the Error interface but provides additional information on a validation error.
Violation is used to pass along information about a constraint violation.
# Interfaces
Constraint is used by dependencies to allow arbitrary constraints between nouns.
# Type aliases
WalkFunc is the type used for the callback for Walk.