> Cause I disagree with parts of the linear type system. RAII exists so let's use it instead of pretending that doing what a compiler can do for you makes good code. Like I mentioned it does not need to be discardable. I think compilers should protect you from yourself in a non interfering way. If it can infer it needs to destroy why put the onus on the programmer? Elegantbeef: (bringing this up here since I think it's an interesting topic but it feels Off-topic in the forum thread where you posted it): I'd argue `discardable` is an anti-pattern, mostly because so far the view, that functions should either have side-effects or be doing a transformation, has worked fairly well for me. If the function returns something, it's doing a transformation. If you're doing a transformation, you want the output of that. If you don't, then you have no reason to call that function and the function call should be removed. If you don't but still want to keep the call, that implies the function is doing a secondary thing that you actually want to happen instead of the transformation, which means somewhere you introduced a side-effect and violated the "no-side-effect-in-transformations"-rule.