collecting requirements for FDs

Bulat Ziganshin bulat.ziganshin at gmail.com
Tue Apr 11 04:56:20 EDT 2006


Hello Ross,

Tuesday, April 11, 2006, 3:43:18 AM, you wrote:

> The favourite customer for FDs has been the monad transformer library.

> What other libraries should Haskell' support, and what are their
> requirements?

why you think that FD are required only for libs? :)  i think it's
better to ask in main Haskell list where FDs really used

my own library (http://freearc.narod.ru/Streams.tar.gz) use FDs widely
for monad-involving classes. one typical example is:

class Stream m h | h->m

where each Stream type `h` is working (i.e. can be read/written) in
some monad `m`. Another class defines monad-independent operations on
references:

class Ref m r | r->m, m->r where
  newRef::...
  readRef::...
  writeRef:...

This class used in definitions of monad-independent Stream
Transformers, i.e. transformers that can be applied to streams working
in any monad (references used to hold internal transformer's state).

instances of stream classes sometimes are very complex:

instance (ByteStream m h, Ref m r) => BinaryStream m (BitAligned h r)
instance (TextStream m h, ByteStream m h, BinaryStream m (BitAligned h r))
  => TextStream m (BitAligned h r) where

i'm not sure that G' should support my library but at least it
provides feature-extended replacement for Handles, binary I/O and
serializaition facilities. i think that extending Streams to work in
any monads is what the hskellers would like to see

-- 
Best regards,
 Bulat                            mailto:Bulat.Ziganshin at gmail.com



More information about the Haskell-prime mailing list