CL-STM depends on arnesi, bordeaux-threads, and closer-mop.
(in-package :cl-user)
(defpackage :cl-stm (:use :arnesi :bordeaux-threads :cl :cl-user :closer-mop) (:nicknames :stm) (:shadowing-import-from :arnesi #:else #:specializer ; closer-mop #:until) (:export #:progt #:progt1 #:try #:tlet #:tif #:retry #:trans #:untrans #:deftransaction #:deftmethod #:transactional-class #:transactional-direct-slot #:transactional-effective-slot #:transactional-object #:deftclass #:transaction #:standard-transaction #:perform #:execute #:orelse #:sequence #:tlog #:standard-tlog #:commit #:check? #:merge-logs #:wait #:tvar #:standard-tvar #:read-tvar #:write-tvar #:unwait #:recording-p #:with-recording #:without-recording #:current-tlog #:with-tlog #:with-new-tlog #:stm #:unstm #:stms #:unstms #:with-stm #:trans-from #:untrans-form #:sequence-form #:sequence-forms #:counter #:increment #:decrement #:reset #:swap #:mvar #:empty? #:empty! #:take #:put))