This was a bit baffling too. It appears that there's an implied argument to runTick. This also works and makes it more explicit. I suppose the compiler just works out that the only place to put the 'n' is after tick.
----- Original Message ----
From: Arie Peterson <ariep@xs4all.nl>
To: haskell-cafe@haskell.org
Sent: Monday, July 2, 2007 4:51:59 PM
Subject: Re: [Haskell-cafe] Very simple parser
To get you going, start with the example from the documentation, modified
slightly:
> tick :: State Int String
> tick
= do
> n <- get
> put (n+1)
> return (show n)
If you want to actually run 'tick', use the 'runState' function:
> runTick :: Int -> (String,Int)
> runTick = runState tick