git.fiddlerwoaroof.com
code-lookup.lisp
7c37909c
 (defpackage :code-lookup
   (:use :cl :serapeum :alexandria :fw.lu)
   (:export ))
 (in-package :code-lookup)
 
 
 (defun call-with-auto-coercions (coercions cb)
   (handler-bind ((type-error (lambda (c)
                                (loop for ((from-type to-type) . coercion) in coercions
                                   when (and (subtypep to-type (type-error-expected-type c))
                                             (subtypep (type-of (type-error-datum c)) from-type))
                                   do (store-value (funcall coercion (type-error-datum c)))))))
     (funcall cb)))