[Haskell-cafe] Question on definition of `parse' function in Parsec library.

Yves Parès limestrael at gmail.com
Sat Oct 8 19:07:57 CEST 2011


If I have this right, Stream is a monad transformer.
Stream s m t means that it parses 's', is stacked with monad 'm' and has a
result of type 't'

So Identity is a monad, the simplest monad, defined as such:

newtype Indentity t = Identity { runIdentity :: t }

It's the identity monad, that does nothing special but wrapping its result.


2011/10/8 Captain Freako <capn.freako at gmail.com>

> Hi all,
>
> In this definition from the Parsec library:
>
> parse :: (Stream s Identity t)      => Parsec s () a -> SourceName -> s -> Either ParseError aparse p = runP p ()
>
> what's the significance of `Identity t'?
> (`t' isn't used anywhere.)
>
> Thanks,
> -db
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20111008/f0d122e1/attachment.htm>


More information about the Haskell-Cafe mailing list