(defmacro ?- (&rest goals) `(prove-all ',goals))というようなマクロで行なえる. しかしこれでは,
<cl> (?- (living-thing dad)) (((#:?X109 . DAD) (#:?X107 . DAD) (#:?X106 . DAD)) ((#:?X116 . DAD) (#:?X114 . DAD) (#:?X113 . DAD)))というような事実の問い合わせに対してYESを返してほしいのに, 返さないのでわかりにくい. また,
<cl> (?- (living-thing ?x)) (((#:?X97 . QUEEN-ELIZABETH) (#:?X96 . #:?X97) (#:?X95 . #:?X96) (?X . #:?X95)) ((#:?X98 . DAD) (#:?X96 . #:?X98) (#:?X95 . #:?X96) (?X . #:?X95)) ((#:?X100 . QUEEN-ELIZABETH) (#:?X99 . #:?X100) (#:?X95 . #:?X99) (?X . #:?X95)) ((#:?X105 . DAD) (#:?X103 . #:?X105) (#:?X102 . #:?X103) (?X . #:?X102)))というように変数で問い合わせを行なうと答えの中に 問い合わせに用いた変数以外の変数も現れるため 非常にわかりにくい.