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