__color__	__group__	ticket	summary	component	version	type	owner	status	created	_changetime	_description	_reporter
3	 Release	1	Test Pathtype Ticket	component1		defect	somebody	new	2009-11-14T13:41:38Z+0000	2009-11-14T13:41:38Z+0000	Pathtype has some bug	anonymous
3	 Release	2	Support Complete / Incomplete distinction instead of Abs/Rel	component1		enhancement	somebody	new	2009-11-16T19:14:32Z+0000	2010-08-15T17:58:08Z+0100	"Wren Ng Thornton (libraries list 16/Nov).
---

Having done a lot of system administration and metaprogramming of system
administration, I can certainly say that making the relative/absolute
distinction is helpful for tracking down bugs. From the same set of
experience I'd say that Duncan's incomplete/complete distinction would
be even more helpful.

With a lot of sysadmin metaprogramming (which includes package
installers) what people are really working on is grafting different
trees together. It's important to distinguish which paths/trees are
being created and don't yet refer to an actual or potential file on the
disk, from those paths/trees which refer to actual/potential files on
the disk.

To think about why this distinction is helpful, consider where all we
may want to attach the paths/trees we're creating. The two obvious
places are / and . but there are other options too. Most programs
support some notion of a $PATH variable or allow flags to specify the
target directory for reading or writing. With the complete/incomplete
distinction we distinguish names which aren't yet grounded from names
that refer to files, regardless of where they're mounted. With the
relative/absolute distinction we don't know when a path is finished
being constructed, and we also have no real vocabulary for expressing
paths relative from some point other than the current directory.

Most sysadmins don't seem to realize they're doing tree grafting when
they mess with this stuff, so I can see why it might seem foreign, but
viewing it that way really does help clean code up and find bugs. Tree
grafting also forms a monad, which could be helpful for some folks.
"	benmos
3	 Release	3	System.Path.Directory.getAppUserDataDirectory error on Windows 7	component1		defect	benmos	assigned	2010-04-27T16:52:27Z+0100	2010-08-15T18:04:03Z+0100	"Under Windows 7, in ghci, this code:

ta <- getAppUserDataDirectory ""testapp""

returns a value of ""/C:\Users\timothy\AppData\Roaming\testapp""

Naturally, the beginning forward slash causes problems.

Versions: pathtype-0.0.2, directory-1.0.0.3, filepath-1.1.0.3, base-3.0.3.2 among others. This was all installed on a clean virtual machine with Haskell Platform 2010.1.0.0 that includes ghc version 6.12.1."	anonymous
