     public func evaluate(expression: Expression, result: TermResult) throws -> Term {
         switch expression {
         case .aggregate(_):
-            fatalError("cannot evaluate an aggregate expression without a query context: \(expression)")
+            fatalError("Cannot evaluate an aggregate expression without a query context: \(expression)")
         case .node(.bound(let term)):
             return term
         case .node(.variable(let name, _)):

                } else {
                    return Term(string: "")
                }
            } else if stringFunction == .strafter {
                guard pattern.value != "" else { return string }
                if let range = string.value.range(of: pattern.value) {
                    let suffix = String(string.value[range.upperBound...])

                } else {
                    return Term(string: "")
                }
            default:
                break
            }
        case .replace:
            guard (3...4).contains(terms.count) else { throw QueryError.evaluationError("Wrong argument count for \(stringFunction) call") }
