Попробовал сделать алгебраический тип данных и pattern matching на чистом C без плюсов, как оказалось, это таки довольно просто: https://ideone.com/y3LQKb
Есть предложения, что можно здесь изменить/улучшить?
Можно ли совместить его с ООП? Видимо, тогда вместо enum для определения варианта надо сделать указатель на VMT?
Это нужно для собственного языка, в текущей версии компилятор переводит его в C код.