;;; Linearization functions.
+(export 'clos-cpl)
(defun clos-cpl (class)
"Compute the class precedence list of CLASS using CLOS linearization rules.
(superclasses class))
:pick #'clos-tiebreaker)))
+(export 'dylan-cpl)
(defun dylan-cpl (class)
"Compute the class precedence list of CLASS using Dylan linearization
rules.
(mapcar #'sod-class-precedence-list direct-supers))
:pick #'clos-tiebreaker)))
+(export 'c3-cpl)
(defun c3-cpl (class)
"Compute the class precedence list of CLASS using C3 linearization rules.
(declare (ignore so-far))
(c3-tiebreaker candidates cpls)))))
+(export 'flavors-cpl)
(defun flavors-cpl (class)
"Compute the class precedence list of CLASS using Flavors linearization
rules.
(walk class)
(nreverse done))))
+(export 'python-cpl)
(defun python-cpl (class)
"Compute the class precedence list of CLASS using the documented Python 2.2
linearization rules.
(walk class)
(delete-duplicates (nreverse done)))))
+(export 'l*loops-cpl)
(defun l*loops-cpl (class)
"Compute the class precedence list of CLASS using L*LOOPS linearization
rules.