FEATURE: Types of a struct can freely pe provided or deduced, following the user preferences.