Тогда если какая-то функция или модуль принимает такой тайп-конструктор, и намеревается его использовать, проконтролировать как она будет его использовать нельзя
И нужно вместе с тайп-конструктором передавать формулу, как реально конструировать все на свете типы.
Вот например, в расте у вас у Option могут быть разные размеры в зависимости от аргумента, для некоторых аргументов размер может увеличиться на один байт, для некоторых на 4, а для некоторых не увеличиться вообще