(defun instantiate-sel-resolution (res type args)
(when (symbolp (adt type)) ;; May happen after restoring from bin files
(restore-adt-slot type))
(let* ((constr (find (id (declaration res)) (constructors (adt type))
:key #'id)) ;;(args? (arguments constr))
)
(when (if (arguments constr)
args
(null args))
(if (fully-instantiated? res)
res
(multiple-value-bind (rtype thinsts)
(find-parameter-instantiation (if args
(range (type res))
(type res))
type)
(when (and rtype
(singleton? thinsts)
(eq (id (car thinsts)) (id (module (declaration res))))
(compatible? rtype type))
(make-resolution (declaration res) (car thinsts))))))))
(defmethod adt? ((te type-name))
#+lucid (restore-adt te)
(when (adt te)
(when (symbolp (adt te)) ;; May happen after restoring from bin files
(restore-adt-slot te))
(change-class te 'adt-type-name 'adt (adt te) 'single-constructor? (singleton? (constructors (adt te))))
(adt te)))
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.16Bemerkung:
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.