У меня есть структура данных с параметром типа Fluent
. Мне нужен список из них. Какой самый элегантный способ исправить этот код?Как создать тип данных со значением конструктор, содержащий список типов типов типов
data Fluent t = Fluent [t]
data Obj = Obj [Fluent]
Edit: Я хочу быть в состоянии сделать это:
f1 = Fluent [True, False]
f2 = Fluent [1, 2, 3, 4]
let o = Obj [f1, f2]
Ваш пример показывает, как один может построить значение «Obj». Как насчет ликвидации/разрушения? I.e., как вы ожидаете _use_ значение типа 'Obj'? Если вы обращаетесь к его внутренним элементам, они имеют неизвестный тип, поэтому вы не можете ничего с ними делать, что требует статических типов (т. Е. Всего). Таким образом, вам нужно либо использовать типы Dynamic, либо некоторые более точные типы Obj/Fluent, которые содержат некоторую информацию о типе (возможно, с GADT, но это трудно сказать). – chi