В базе кода, которую я читаю, я нашел объявление функции вроде этого (некоторые части отсутствуют):
filepathNormalise :: BS.ByteString -> BS.ByteString
filepathNormalise xs
| isWindows, Just (a,xs) <- BS.uncons xs, sep a, Just (b,_) <- BS.uncons xs, sep b
= '/' `BS.cons` f xs
Что здесь делает запятая?
(Только в качестве бонуса, если кто-то легко это знает: это синтаксис, упомянутый в Haskell Programming, из первых принципов, и если да, где? Как я не помню, чтобы прочитать об этом.)