Составить функцию с двумя аргументами

Сегодня я столкнулся с чем-то, что сбило меня с толку. Я пытался определить функцию, эквивалентную Data.Text.commonPrefixes, который отбрасывает все, кроме префикса.

Следующие работы:

commonPrefix :: Text -> Text -> Maybe Text
commonPrefix a b = fmap firstTriple $ Text.commonPrefixes a b

firstTriple :: (a, b, c) -> a
firstTriple (a, _, _) = a

Я изначально пытался сделать это так, что не работает:

commonPrefix :: Text -> Text -> Maybe Text
commonPrefix = fmap firstTriple . Text.commonPrefixes

Есть ли способ определить эту функцию как композицию?


person Sean Clark Hess    schedule 01.06.2016    source источник
comment
Похоже, fmap (fmap firstTriple) . Text.commonPrefixes тоже работает. Спасибо всем!   -  person Sean Clark Hess    schedule 01.06.2016