• Feathercrown@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    11 months ago

    Isn’t a Maybe enum equivalent to just using a return value of, for example, int | null with type warnings?

    • itslilith@lemmy.blahaj.zone
      link
      fedilink
      arrow-up
      1
      ·
      11 months ago

      Not quite, because the Maybe enum is neither int nor null, but it’s own, third thing. So before you can do any operations with the return value, you need to handle both cases that could occur

      • Feathercrown@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        11 months ago

        Isn’t that also true with compile-time type checking though? Eg. 0 + x where x is int|null would be detected? I don’t have much experience here so I could be wrong but I can’t think of a case where they’re not equivalent

        • itslilith@lemmy.blahaj.zone
          link
          fedilink
          arrow-up
          1
          ·
          11 months ago

          Most languages that let you do ambiguous return types don’t do compile-time type checking, and vice versa. But if it’s actually implemented that way, then it’s logically equivalent, you’re right. Still, I prefer having things explicit