How should this evaluate?

(interp (parse '(with (y (fun (y) (+ ((fun (y) (* y y)) y) y)))
                   (if0 (- ((fun (y) (+ y 3)) 5) 8)
                        (+ ((fun (y) (+ y y)) (y 4)) 2)
                        8
                        ))))


You tell me...