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"').
Comments
The tutorial does a great job of explaining why this is interesting: http://hackage.haskell.org/package/turtle-1.0.0/docs/Turtle-...
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.Are those types just aliases of String?
No. For example, a FilePath is (after resolving a few other type aliases)
What do you mean by "alias"?
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"').
UTCTime is not String-like.