Я пытаюсь написать такую функцию, как
mapFst :: Maybe (a, String) -> Maybe ([a], String)
mapFst (a,s) = (:) <$> (a,s) <*> [other fun with same type as mapFst] (a,s)
Здесь я пытаюсь создать список, основанный на первом элементе кортежа, но я не уверен, что делать дальше. Я могу сделать это для не-кортежа, но я не уверен, как использовать fst
в этой конструкции (если я должен использовать эту функцию в первую очередь).
Эта функция будет взаимодействовать с другим того же типа, но имеет несколько разные способы обработки их ввода. Мне нужно использовать fmap и ap, потому что кортеж находится внутри Maybe
контейнера