What are the rules for casting primitive types

: You can cast any non Boolean type to any other non boolean type. You cannot

cast a boolean to any other type; you cannot cast any other type to a boolean