I came across this type-safe module for handling file paths in the Haskell subreddit this week, and thought it looked kind of neat. Handling paths as strings, even with System.IO.Path always bugged me. So I created a close C# equivalent of the Haskell type and added it to the Sasa library , to be available in the upcoming v0.9.3 release: public struct FsPath : IEnumerable<string>, IEnumerable { public FsPath(IEnumerable<string> parts); public FsPath(string path); public static FsPath operator /(FsPath path1, FsPath path2); public static FsPath operator /(FsPath path, IEnumerable<string> parts); public static FsPath operator /(FsPath path, string part); public static FsPath operator /(FsPath path, string[] parts); public static FsPath operator /(IEnumerable<string> parts, FsPath path); public static FsPath operator /(string part, FsPath path); public static FsPath operator /(string[] parts, FsPath path); public static implicit operator FsPath(string