# Structs
Overload defines a named overload of a function, indicating an operand trait which must be present on the first argument to the overload as well as one of either a unary, binary, or function implementation.
# Type aliases
BinaryOp is a function that takes two values and produces an output.
FunctionOp is a function with accepts zero or more arguments and produces a value or error as a result.
UnaryOp is a function that takes a single value and produces an output.