* Replace some of the conditional logic with polymorphism, especially where there is special case logic for certain types of generators within other generators. * Replace Equality/Inequality with classes that handle all of the special cases. * Use different classes for inclusive/exclusive Range literals so that they can be serialized to SQL differently. * Create Veritas::Literal::Range proxy object w/factory method * Create Veritas::Literal::Range::Inclusive * Create Veritas::Literal::Range::Exclusive * Adjust reek and roodi scores down to lower thresholds * Handle cases where an Inequality/Exclusion predicate is used (or a Negation wrapping an Equality/Inclusion) on an *optional* attribute. * Add "OR attribute IS NULL" to the statement to ensure cases when the value is NULL still matches.