Тот же полноценный (как в мл подобных) вывод типов делается в 500 строк, если у тебя не хаскель
Смотри, чтобы сделать примитивные типы с возможностью масштабирования, нужно сделать:
1. Трейты/интерфейсы.
2. Трейты/интерфейсы для операций +,-,* и реализовать в компиляторе для примитивных типов. Это не обойдется без грязных хаков.
3. Минимальный вывод типов.
4. Типы для функций.
5. Тайпчек.
Тут больше 500 строчек будет.