lang/t-or-nil.ss
(module t-or-nil mzscheme
  (require (lib "etc.ss")
           (lib "contract.ss"))
  
  (provide/contract [t-or-nil? [identifier? . -> . boolean?]])
  
  (define symbol-downcase
    (compose string->symbol string-downcase symbol->string))
  
  ;; Determine if id is t or nil, case insensitive, symbolic-identifier=?
  (define (t-or-nil? id)
    (let ([id (symbol-downcase (syntax-e id))])
      (or (eq? id 't) (eq? id 'nil)))))