Я в замешательстве, почему я получил это в GHCi
:t sequence [Just,Just]
sequence [Just, Just] :: a -> [Maybe a]
Чтобы разработать, я могу понять sequence [Just 1, Just 2] :: Num a => Maybe [a]
, потому что, глядя на тип последовательности
sequence :: (Monad m, Traversable t) => t (m a) -> m (t a)
ясно, что эта функция принимает коллекцию монадических значений и возвращает одно монадическое значение коллекции. Таким образом, когда мы вызываем sequence [Just 1, Just 2]
, мы должны вернуть a Just
of [1,2]
. После этого мыслей не следует sequence [Just, Just]
вернуть один Just
?
Спасибо.