| >Unwrap and fromJust can be disallowed if need be, they are "unsafe" convenience functions whose use can and should be tracked. And with the same sort of third-party tools you use to 'track' those and ensure they're not used, you can track unused error returns in Go or C. > Not all languages with sum types will permit them. All do. >Rust also has "unsafe" code blocks, should we also claim it is therefore not memory safe? Some would try to do so, but at least this unsafe code is tracked and not idiomatic. Absolutely we should! Rust fanatics try to claim it is a memory-safe language when it isn't. Real memory-safe languages like Java have existed for far longer. >This may be how you choose to view them. But many of us seeking to build safer and more correct software aim to make programming more like mathematics. Mathematics tells us how to compose and tells us how to prove. Both things the software industry is currently failing at. You missed the entire point of what I said. |
No, this is not true. A total functional programming language can disallow partial functions that circumvent the type checker.
Again, linters only get you so far. For example, sum types eradicate null pointer exceptions, linters do not.