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

                    parser: makeIotaParser(),
                    transformer: makeIotaTransformer()) { ast in
                        do {
                            let result = try ast.evaluate(context: IotaContext())
                            return "\(result)"
                        } catch {
                            return "error"

            let n = try $0.val("n") as? IotaIdentifier,
            let p = try $0.valSeries("p") as? [IotaIdentifier]
            else { throw IotaBuildError.notAnIdentifier }
        return try IotaFunc(name: n, params: p, body: $0.val("b"))
    }

    transformer.rule(pattern: .tree(["statements": .series("p")])) {
        let p = try $0.valSeries("p")
        return IotaProgram(statements: p)
    }

    return transformer
