Совместимость шаблонов - одна из самых элегантных функций Haskell.
Недавно я работал над проектом, где мне нужна структура данных в очереди, поэтому я использую Data.Sequence. Тем не менее, похоже, что я должен отказаться от элегантности соответствия шаблонов и прибегать к охранникам:
floodFillWorker :: Image -> RGBAColor -> Double -> PixelQueue -> Image
floodFillWorker image base tolerance queue
| Seq.null queue = image
| otherwise = doSomeWork image
Можно ли использовать сопоставление с последовательностями или мне нужно использовать защитные устройства?