On Mon, 2008-01-07 at 18:15 +0300, Miguel Mitrofanov wrote: > > data Stack a = Stack { run :: [a] -> (a, [a]) } > > [...skipped...] > > > But, I have simply no clue how to fix that. :-( > > Can anybody give my a hint? > > Yes. It's simply impossible. The Stack data type can't be turned into > a monad.
Indeed, the very first hint is that Stack isn't a functor because the type variable a occurs both positively and negatively. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe