for optionals and multi-values it's possible to use recursive types
for optionals and multi-values it's possible to use recursive types