Otherwise an infinite structure will be described. i.e. this is invalid: ``` type Node Struct { Node left; String value; Node right; } ``` but this is valid: ``` type Node Struct { Node left (optional); String value; Node right (optional); } ```