diff --git a/lisp/lisp.rs b/lisp/lisp.rs
index b3e2701b5..20e407e3b 100644
--- a/lisp/lisp.rs
+++ b/lisp/lisp.rs
@@ -300,8 +300,7 @@ fn eval(mut ast: MalVal, mut env: Env) -> MalRet {
}
Sym(ref a0sym) if a0sym == "setup" => {
let a1 = l[1].clone();
- let circuit = setup(&ast, env.clone())?;
- env_sets(&env, ZK_CIRCUIT_ENV_KEY, circuit);
+ setup(a1.clone(), env.clone())?;
eval(a1.clone(), env.clone())
}
Sym(ref a0sym) if a0sym == "prove" => {
@@ -389,7 +388,7 @@ pub fn env_circuit(mut env: Env) -> MalVal {
}
}
-pub fn setup(ast: &MalVal, mut env: Env) -> MalRet {
+pub fn setup(ast: MalVal, mut env: Env) -> MalRet {
println!("{:?}", ast);
// TODO get params from ast
let start = Instant::now();
diff --git a/lisp/types.rs b/lisp/types.rs
index d9eb2789b..d5572b829 100644
--- a/lisp/types.rs
+++ b/lisp/types.rs
@@ -14,12 +14,18 @@ use crate::types::MalVal::{Atom, Bool, Func, Hash, Int, List, MalFunc, Nil, Str,
use bls12_381::Scalar;
use sapvi::{BlsStringConversion, ConstraintInstruction};
+#[derive(Debug, Clone)]
+pub struct Allocation {
+ pub symbol: String,
+ pub value: Scalar
+}
+
#[derive(Debug, Clone)]
pub struct LispCircuit {
// TODO refactor to vec
pub params: Vec