morc.ss
(module morc mzscheme

  ;; (require (only (lib "lang.ss" "r5rs") %make-morc-namespace))
  ;; (require (lib "lang.ss" "r5rs"))

  (define-syntax provide-morc
    (syntax-rules ()
      [(_) (begin (require (lib "lang.ss" "morc"))
                  (provide (all-from (lib "lang.ss" "morc"))))]))
  (provide-morc)
  
  (read-accept-bar-quote #f)
  (read-accept-box #f)
  (read-accept-compiled #f)
  (read-accept-dot #t) ;; Note: Needed to read non-list pair literals with 360.
  (read-accept-graph #f)
  (read-accept-quasiquote #t)
  (read-accept-reader #f)
  (read-accept-reader #f)
  (read-case-sensitive #t)
  (read-curly-brace-as-paren #f)
  (read-decimal-as-inexact #t)
  (read-square-bracket-as-paren #f)

  ;; (current-namespace (scheme-report-environment 5))

  ;; Note: %make-morc-namespace isn't necessary.
  
;; (define (%make-morc-namespace)
;;     ;; Note: This starts with the approach to "scheme-report-environment"
;;     ;; support in MzScheme 360.
;;     (let ((n    (make-namespace 'empty))
;; 	  (orig (make-namespace)))
;;       (parameterize ((current-namespace n))
        
;;         (namespace-attach-module orig '(lib "lang.ss" "morc"))
;;         (namespace-require '(lib "lang.ss" "morc"))
        
;; 	(namespace-transformer-require '(lib "lang.ss" "morc"))

;;         (letrec-syntax
;;             ((one (syntax-rules ()
;;                     ((_ (rename V N))
;;                      (namespace-set-variable-value!
;;                       (quote N)
;;                       ;; V
;;                       (dynamic-require '(lib "lang.ss" "morc") (quote N))
;;                       ))
;;                     ((_ V)
;;                      (one (rename V V)))))
;;              (doit (syntax-rules ()
;;                      ((_ X ...) (begin (one X) ...)))))
;;           (doit
           
;;            *
;;            +
;;            -
;;            .expand
;;            .expand1
;;            .null
;;            /
;;            all
;;            alref
;;            coerce
;;            compare
;;            even
;;            expt
;;            firstn
;;            in
;;            is
;;            isa
;;            iso
;;            keep
;;            keys
;;            len
;;            listtab
;;            maptable
;;            nil
;;            no
;;            nthcdr
;;            odd
;;            pos
;;            pr
;;            prn
;;            rem
;;            some
;;            sqrt
;;            t
;;            table
;;            trues
;;            tuples
;;            type
;;            uniq
;;            vals
;;           ;; #%datum
;;           ;; #%top
           
;;            ;; TODO: Redefine "read-syntax"?
;;            ;;
;;            ;; (rename read-syntax@ read-syntax)
           
;;            ;;require-for-syntax
;;             %make-morc-namespace
           
;;            (rename <=@           <=)
;;            (rename <@            <)
;;            (rename >=@           >=)
;;            (rename >@            >)
;;            (rename apply@        apply)
;;            (rename cadr@         cadr)
;;            (rename car@          car)
;;            (rename cdr@          cdr)
;;            (rename cons@         cons)
;;            (rename list@         list)
;;            (rename map@          map)
;;            (rename sort@         sort)
;;            (rename string@       string)

;;            ;; def
;;            ;; each
;;            ;; fn
;;            ;; for
;;            mac
;;            ;; obj
;;            ;; pop
;;            ;; push
;;            ;; quasiquote
;;            ;; quote
;;            ;; repeat
;;            ;; tostring
;;            ;; unquote
;;            ;; unquote-splicing
;;            w/uniq
;;            ;; while
;;            ;; with

;;            ;; (rename %app          #%app)
;;            ;; (rename %module-begin #%module-begin)
;;            ;; (rename =@            =)
;;            ;; (rename and@          and)
;;            ;; (rename case@         case)
;;            ;; (rename do@           do)
;;            ;; (rename if@           if)
;;            ;; (rename let@          let)
;;            ;; (rename or@           or)
;;            ;;(rename when@         when)

;;            )))))

;; ;; (current-namespace (%make-morc-namespace))
  
  )