Я новичок в Haskell, и мне интересно, есть ли лучший способ узнать, дублирует ли библиотека функциональность, чем Hoogle?
Пример: у меня есть ряд функций f :: Monad a => a -> m a
, которые я хочу объединить, например
f1234 x = (return x) >>= f1 >>= f2 >>= f3 >>= f4
Но я бы предпочел написать
chain :: Monad m => a -> [a -> m a] -> m a
chain = foldl (>>=) <$> return
f1234 = (flip chain) [f1, f2, f3, f4]
Похоже, что базовая библиотека предлагает нечто эквивалентное chain
?