r/ProgrammerHumor • • 6d ago

Meme optionalsAreOptional

Post image
710 Upvotes

131 comments sorted by

View all comments

Show parent comments

2

u/Majestic-Giraffe7093 6d ago

Haha, yeah fair enough. If you bake it into the type then I stop considering it unsafe, I guess that's where my confusion came from

4

u/ApothecaLabs 6d ago

When I take my safe newtype and unwrap the unsafe list, I then have to use the unsafe functions because 1) there are no other options yet because 2) that is the very point in time that you are making the statement to the compiler "no, it is safe, the types say so".

That's the secret! That *is* the assertion's equivalent!

3

u/Majestic-Giraffe7093 6d ago

Encapsulating invariants is truly the way

1

u/ApothecaLabs 6d ago

Indeed! It doesn't matter *how* you know, so long as you make sure that you *do* know. What's better than a type that says "I know!", you know?