Мой вопрос касается функции sequence
в Prelude
, сигнатура которой выглядит следующим образом:
sequence :: Monad m => [m a] -> m [a]
Я понимаю, как эта функция работает для List
из Maybe
s. Например, применение sequence
к [Just 3, Just 9]
дает Just [3, 9]
.
Я заметил, что применение sequence
к List
из List
s дает декартово произведение. Может кто-нибудь, пожалуйста, помогите мне понять, как/почему это происходит?