Уверен, задача решаемая. Задача этого примера не решить её, а показать абсурдность требования к компоненту системы осуществлять функции, которые он может не осуществлять
Я о том же. Но типы в языке уже есть. И почему бы ими не пользоваться так, как считаешь нужным, оставаясь в рамках стандарта?