I'm new to Haskell and playing around with some code. I was confused by the following GHCI session:
*Main> :l golden_cross_sample.hs
*Main> :t stateProcessors
stateProcessors :: [State GoldenCrossState String]
*Main> :t sequence
sequence :: Monad m => [m a] -> m [a]
*Main> let res1 = (sequence stateProcessors)
*Main> :t res1
res1 :: StateT GoldenCrossState Identity [String]
From the type signature of sequence
, I expected res1
to have type State GoldenCrossState [String]
. Why doesn't it?