 func makeIotaTransformer() -> IotaTransformer {
 
     let transformer = IotaTransformer()
+
+    var functions = [String: IotaFunc]()
 
     transformer.rule(["numeral": .simple("n")]) {
         let n = try $0.raw("n")

            ])
        ])
    ]) {
        let p = try $0.raw("p")
        return try IotaFunc(param: p, body: $0.val("b"))
    }

    return transformer

    let expression = Deferred()

    let body = skip >>> expression >>> skip
    let params = lparen >>> identifier.some.maybe >>> rparen
    let function = (lparen >>> def >>> identifier.tag("name") >>> params.tag("params") >>> body.tag("body") >>> rparen).tag("function")

    let argument = skip >>> expression.some.maybe >>> skip
    let call = (lparen >>> identifier.tag("name") >>> argument.tag("arguments") >>> rparen).tag("call")

    expression.parser = literal | variable | call

