CaseIterable protocol is used to access the entire collection of values contained within a type if that type conforms to this protocol. This is done by using the allCases property. This works only on Xcode 10 and not in any lower versions.
print("There are \(Land.allCases.count) directions.")
//Shows error as Type 'Land' has no member 'allCases' in Xcode versions lesser than 10