     /// Private initializer when the backing storage is known.
     private init(_ impl: PathImpl) {
         _impl = impl
+    }
+
+    /// Private initializer for constructing a relative path without performing
+    /// normalization or canonicalization.  This will construct a path without
+    /// an anchor and thus may be invalid.
+    fileprivate init(unsafeUncheckedPath string: String) {
+        self.init(PathImpl(string: string))
     }
 
     /// Initializes the RelativePath from `str`, which must be a relative path

            // might be an empty path (when self and the base are equal).
            let relComps = pathComps.dropFirst(baseComps.count)
#if os(Windows)
            result = RelativePath(relComps.joined(separator: "\\"))
#else
            result = RelativePath(relComps.joined(separator: "/"))
#endif

            var relComps = Array(repeating: "..", count: newBaseComps.count)
            relComps.append(contentsOf: newPathComps)
#if os(Windows)
            result = RelativePath(unsafeUncheckedPath: relComps.joined(separator: "\\"))
#else
            result = RelativePath(relComps.joined(separator: "/"))
#endif
        }

        assert(AbsolutePath(base, result) == self)
        return result
    }
