     }
 }
 
-private func compareBooleanable(_ value1: Booleanable, _ value2: Booleanable) -> Int {
+fileprivate func compareBooleanable(_ value1: Booleanable, _ value2: Booleanable) -> Int {
     let order1 = value1.isTrue ? 1 : 0
     let order2 = value2.isTrue ? 1 : 0
     return order1 - order2
 }
 
-private func comparisonOperator(matcher: @escaping (Int) -> Bool) -> Function {
+fileprivate func comparisonOperator(matcher: @escaping (Int) -> Bool) -> Function {
     return binaryOperator(dereferencing({ (formulitic, operand1, operand2, context) in
         var param1 = operand1
         var param2 = operand2

    }
}

private func castEmptyValue(_ emptyValue: EmptyValue, toTypeOf anotherValue: Value, context: EvaluateContext) -> Value {
    switch anotherValue {
    case is Numerable:
        return emptyValue.cast(to: .numerable, context: context)

    return StringValue(string: result)
}))

fileprivate let power = binaryOperator(dereferencing({ (formulitic, operand1, operand2, context) in
    let numerableValue1 = operand1.cast(to: .numerable, context: context)
    if numerableValue1 is Errorable {
        return numerableValue1
