00:00 Another interesting feature of union types is that they can have a recursive definition. Here, I still have some code from a previous video where we are creating some data of type Rating, and the Elm app just displays the data.
00:14 Now, let me create a new union type, Breed, to represent the breed of a dog. If we want our data to be of type Breed, we could use one of these values. Now, imagine that we also want to cater for crossbreeds. We could add another case where the breed is a crossbreed between two breeds.
00:42 We can now have data that is, let's say half Husky and half Poodle. This compiles as you would expect. This is recursive, so you could say that one parent is Husky, and another parent in turn is a crossbreed between, say, a Poodle and a Beagle.