This happens because the default value for all types is binary 0, which is 
invalid for the `Month` type which starts at 1. Hopefully the compiler will be 
changed in the future so that enum/range types are instead initialized to their 
lowest value. Since `string` and `seq` will soon be lazily initialized to `""` 
and `@[]`, the rule that everything is initialized to `0` wont be true anyway.

As a workaround, you can write a constructor for `User` that initializes 
`birthday`, so you at least don't need to deal with it everywhere.

Reply via email to