[Haskell-cafe] File path programme

Keean Schupke k.schupke at imperial.ac.uk
Wed Jan 26 10:50:21 EST 2005


Malcolm Wallace wrote:

> Good point. Ideally, you want to be able to write all FilePath code
>
>polymorphically at type (Path p => p), and have a decent defaulting
>mechanism available to choose a particular instance at compile time
>(perhaps conditionally, based on OS platform).
>
>Sadly, in the absence of a better 'default' declaration semantics,
>we are left having to resolve the ambiguity ourselves, or resort to
>some other type-system extension, like as you say existentials.
>  
>
You could define a type in the library using conditional compilation:

#ifdef Unix
    type SystemPath = UnixPath
#endif

#ifdef Windows
    type SystemPath = WindowsPath
#endif


Then you do:

let myPath = (emptyPath :: SystemPath) in ...

    Keean.


More information about the Libraries mailing list