; Copyright (c) 1993-2008 by Richard Kelsey and Jonathan Rees. See file COPYING.

; A thingie (placecard?) is used to hold a spot for a location that is to be
; found later.  The compiler sticks them in templates and the module system
; later replaces them with locations.

(define-record-type thingie :thingie
  (make-thingie binding name assigned?)
  thingie?
  (binding thingie-binding)
  (name thingie-name)
  (assigned? thingie-assigned? set-thingie-assigned?!))

; Thingie variant amenable to transportation
(define-record-type placecard :placecard
  (make-placecard type-sexp qualified-name assigned?)
  placecard?
  (type-sexp placecard-type-sexp) ; preserve sharing
  (qualified-name placecard-qualified-name) ; ditto
  (assigned? placecard-assigned?))
