     case insufficientArguments
     case notANumber(Expression)
     case notABoolean(Expression)
+    case notAFunction(Expression)
 }
 
 extension Expression {

            return .error("requires pair")
        }
    }
}

            if let funcName = subfunction.name {
                finalContext = extendContext(context: finalContext, name: funcName, value: closure)
            }
            return subfunction.body.evaluate(context: finalContext)
        default:
            return .error("closure does not wrap function")
        }
