require-ct.ss
(module require-ct mzscheme

  (provide (all-defined))

  (define (join . args)
    (define (to-string x)
      (cond [(string? x) x]
            [(symbol? x) (symbol->string x)]
            [(identifier? x) (symbol->string (syntax-e x))]))
    (string->symbol (apply string-append (map to-string args))))

  (define (absolute-mod-spec? mod-spec)
    (syntax-case mod-spec ()
      [(kw dir ...)
       (let ([kw (syntax-e #'kw)])
         (case kw
           [(lib file) 
            (andmap string? (map syntax-e (syntax->list #'(dir ...))))]
           [(planet) #t]))]
      [_ #f]))

  (define (relative-mod-spec? mod-spec)
    (string? (syntax-e mod-spec)))

  )