Я пытаюсь объединить два отсортированных списка в Haskell. Два списка должны содержать одинаковые типы, но функция должна принимать списки разных типов.
Это то, что я получил (я знаю, что мне нужен код, чтобы не пытаться извлекать элементы и из пустых списков):
merge :: Ord a => [a] -> [a] -> [a]
merge [] [] = []
merge (h:first) (c:second) | h <= c = h:merge first (c:second)
| h > c = c:merge (h:first) second
main = merge ['a','b','c'] ['d','e','f']
Дело в том, что я новичок в Haskell, и я получаю сообщение об ошибке, которое вроде как понимаю, но не знаю, что с этим делать:
Couldn't match expected type `IO t0' with actual type `[Char]'
In the expression: main
When checking the type of the function `main'
Кто-нибудь знает, что это значит? Помощь очень ценится!