Yes, all true - apart from treating errors as values and including them function signatures... That should simply be something every modern language should ship with
I may simply be too dumb for lots of fancy functional programming. I can barely understand code when reading one line and statement at a time. Reading functions calling functions calling functions just makes me feel like gravity stopped working and I don't know which way is up. My brain too small.