anchor.diff: +;;;;;;;;;; Comparison ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  +;; 1. Approach		 - Templates
  +;; 2. How		 - Quotes
  +;; 3. When		 - Compile-time (`eval` at "runtime", but careful with that)
  +;; 4. Reuse		 - Compiler, paser, runtime
  +;; 5. Guarantee		 - Syntax valid
  +;; 6. Code inspection	 - Yes
  +;; 7. IO		 - Always, but it gets tricky at the edges
  +;; 8. Homogeneous	 - Yes
  +;; 9. CSP		 - Yes (can call external terms from macros)
  +;; 10. Encapsulation	 - Yes
  +;; 11. Modularity	 - Yes
  +
   (defpackage :dsl-gen (:use :cl :optima))
   (in-package :dsl-gen)
   
  
positive.code: ;; A more idiomatic power macro
  (defmacro loopow (n x)
    (assert (numberp n))
    `(* ,@(loop repeat n collect x)))
  
  (loopow 5 6)
  (let ((n 37))
  
negative.code:      (not (qbf-eval a env)))
      ((list '=> a b)
       (qbf-eval `(-or ,b (-and (-not ,b) (-not ,a))) env))
      ((list '-forall a b)
       (flet ((try-with (bool) (qbf-eval b (extend env a bool))))
         (and (try-with '-true) (try-with '-false))))
      ((list '-var x)
  