וכדי להסביר את הנקודה, הפתרון לשתי הבעיות: null pointers ושגיאות כ־return value הוא data enums הידועים גם בשם discriminated unions. במקום להחזיר ערכים דיפולטיבים (ועוד null, לא עלינו, שמחביא את הטייפ שלו ומאפשר בקלות להתעלם מקיומו), הרבה יותר הגיוני להחזיר תת־טייפ (או מקרה של enum או union) שונה במקרה השמח ובמקרה העצוב וככה לא צריך למלא משבצות מיותרות בערכים דיפולטיבים.