У меня есть некоторый код, который я хотел бы использовать, чтобы добавить ребро к структуре данных узла:Haskell Ord экземпляр с Set
import Data.Set (Set)
import qualified Data.Set as Set
data Node = Vertex String (Set Node)
deriving Show
addEdge :: Node -> Node -> Node
addEdge (Vertex name neighbors) destination
| Set.null neighbors = Vertex name (Set.singleton destination)
| otherwise = Vertex name (Set.insert destination neighbors)
Однако, когда я пытаюсь скомпилировать я получаю эту ошибку:
No instance for (Ord Node)
arising from a use of `Set.insert'
Насколько я могу судить, Set.insert не ожидает ничего, кроме значения и набора для его вставки. Что это за Орд?
Вывод формулировки должен быть заключен в скобки, но да, это похоже на работу. Спасибо. –