Алгебраические типы данных Haskell
Я пытаюсь полностью понять все концепции Хаскелла.
Как алгебраические типы данных похожи на универсальные типы, например, в C # и Java? И чем они отличаются? Что в них такого алгебраического?
Я знаком с универсальной алгеброй и ее кольцами и полями, но у меня есть только смутное представление о том, как работают типы Хаскелла.