Implement proper result extraction
    
        | author | Steve Losh <steve@stevelosh.com> | 
    
        | date | Tue, 19 Apr 2016 14:00:32 +0000 | 
    
        | parents | b8bc9b175636 | 
    
        | children | f3ed7ce70f3b | 
(defpackage #:bones
  (:use #:cl)
  (:export #:hello))
(defpackage #:bones.utils
  (:use #:cl
        #:defstar
        #:bones.quickutils)
  (:export
    #:repeat
    #:topological-sort
    #:push-if-new))
(defpackage #:bones.wam
  (:use #:cl
        #:defstar
        #:optima
        #:cl-arrows
        #:bones.quickutils
        #:bones.utils)
  (:import-from #:optima #:match)
  (:shadowing-import-from #:cl-arrows #:->))
(defpackage #:bones.paip
  (:use #:cl #:defstar #:bones.quickutils)
  (:documentation "Test?")
  (:export
   ;; Unification, constants
   #:unify
   #:fail #:no-bindings
   #:*check-occurs*
   ;; Destructive unification
   #:unify!
   #:unbound
   #:bound-p
   ;; Database management
   #:clear-db
   #:clear-predicate
   #:fact
   #:rule
   #:add-fact
   #:rule-fact
   ;; Lisp data structures as results
   #:return-one
   #:return-all
   ;; Interactive queries
   #:query
   #:query-one
   #:query-all
   ))