@@ -69,11 +69,14 @@ eDouble' : {G : Vect Ty n} ->
69 Expr G (TyFun TyNat TyNat);
69 Expr G (TyFun TyNat TyNat);
70eDouble' = Lam (App (App eAdd (Var fO)) (Var fO));
70eDouble' = Lam (App (App eAdd (Var fO)) (Var fO));
72+-- Exercise elaborator: Complicated way of doing \x y => x*4 + y*2
72−eProg : {G : Vect Ty n} -> Expr G (TyFun TyNat TyNat);
74+eProg : {G : Vect Ty n} -> Expr G (TyFun TyNat (TyFun TyNat TyNat));
73−eProg = Lam (Bind (App eDouble (Var fO))
76+ (Bind (App eDouble (Var (fS fO)))
74 (\x => Bind (App eDouble (Var fO))
77 (\x => Bind (App eDouble (Var fO))
75 (\y => Bind (App eDouble (Val x))
78 (\y => Bind (App eDouble (Val x))
76− (\z => App (App eAdd (Val y)) (Val z)))));
79+ (\z => App (App eAdd (Val y)) (Val z))))));
78test : Nat;
81test : Nat;
79test = interp Empty eAdd (S (S O)) (S (S O));
82test = interp Empty eAdd (S (S O)) (S (S O));