                 }
 
                 @discardableResult
-                func run(function: Function, symbols: Symbols, arguments: [Any]) -> Any {
+                func run(function: Function, symbols: Symbols, arguments: [Any]) -> Any? {
                     return run(function: function, symbols: symbols, stack: [Runtime(arguments: arguments)])
                 }
             }

            }
        }
        output.append("""
                private func run(function: Function, symbols: Symbols, stack: [Runtime]) -> Any {
                    let runtime = stack.last!
                    for (i, step) in function.steps.enumerated() {
                        switch step.producer! {

    }
    
    private func writeRun(name: String, functionType: Parser.FunctionType, to output: inout String) {
        output.append("private func \(name)Run(_ function: @escaping ([Any]) -> Any?) -> \(name) {\n    return { ")
        if functionType.returnType == nil {
            output.append("_ = ")
        }
