is there something I can read to understand when I want Option<T<U>> or T<Option<U>>? I find knowing where to put Option in nested reference types a bit confusing
Adding to this: if Animal is known to always have the option of an empty value, it's also possible to go for: List<Animal> where the Animal enum includes a "None" or "Empty" member. This can be nicer than always needing to remember to wrap Animal in Option.