Am 08.10.2011 16:04, schrieb Captain Freako:
Hi all,
In this definition from the Parsec library:
parse :: (Stream s Identity t)
=> Parsec s () a -> SourceName -> s -> Either ParseError a
parse p = runP p ()
what's the significance of `Identity t'?
(`t' isn't used
Wow... my bad. Stream is in no way a monad transformer.
I really should read before speaking...
Stream s m t is such as "An instance of Stream has stream type s, underlying
monad m and token type t determined by the stream" (
http://hackage.haskell.org/packages/archive/parsec/3.1.1/doc/html/Text-P
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 n
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
___
H