| AndExpression | And expression where both sides must return truthy values. | 
| BinaryExpression | Abstract class representing expressions that have a left and right side. | 
| ComparatorExpression | Compares the left and right expression using a comparator,
 resulting in a boolean value. | 
| CurrentExpression | Gets the current node. | 
| ExpressionTypeExpression | Contains a reference to an expression that can be run zero or more
 times by a function. | 
| FieldExpression | Gets a field by name from an object. | 
| FilterProjectionExpression | A projection that filters values using a comparison. | 
| FlattenExpression | Flattens the wrapped expression into an array. | 
| FunctionExpression | Executes a function by name using a list of argument expressions. | 
| IndexExpression | Gets a specific element by zero-based index. | 
| LiteralExpression | Represents a literal value. | 
| MultiSelectHashExpression | Creates an object using key-value pairs. | 
| MultiSelectListExpression | Selects one or more values into a created array. | 
| NotExpression | Negates an expression based on if the wrapped expression is truthy. | 
| ObjectProjectionExpression | A projection of object values. | 
| OrExpression | Or expression that returns the expression that returns a truthy value. | 
| ProjectionExpression | Iterates over each element in the array returned from the left expression,
 passes it to the right expression, and returns the aggregated results. | 
| SliceExpression | Represents a slice expression, containing an optional zero-based
 start offset, zero-based stop offset, and step. | 
| Subexpression | Visits the left expression and passes its result to the right expression. |