path.ss
(module path mzscheme
  (require (lib "file.ss")
           (lib "etc.ss")
           (lib "list.ss"))
  (require "list.ss")
  (provide (all-defined))
  
  (define (directory-from-path p)
    (apply build-path
           (reverse
            (rest
             (reverse
              (explode-path p))))))
  
  (define (path->subpaths p)
    (all-prefixes (explode-path p)))
  
  (define (chop-prefix r p)
    (apply build-path (list-tail (explode-path (normalize-path p r))
                                 (length (explode-path (normalize-path r (build-path "/"))))))))