@int_index кстати, если у тебя GADT вида :: SomeConstraint a=> ... -> Foo a, то вроде все шансы, что заинлайнится есть, это все же не чистый existential где в lhs нету информации о типе
А касательно того, что в случае выше есть инфа о типе, то вероятность инлайна я и не отрицаю, только вот внутри значения тоже будет vtable, т.к. добавление констрейнта на конструктор влияет на то, как GHC будет представлять этот конструктор в памяти
Я так понимаю GHC когда решает, какой будет memory layout у типа, решает это один раз и навсегда. А никто не мешает потом обернуть этот GADT в что-то типа: