Path carries String-like information, it can even be easily converted to and from strings. Yet, it's a strong type that won't let you write something like 'path </> file_contents' (although, with overloaded strings, you can do 'path </> "file_name"').
For example, the pwd function returns a FilePath type rather than a String:
The datefile function is also typed: So this really does seem to structure the data passed between commands, instead of the "stringly typing" unix shells have historically been known for.