However, I would like to make a final case here. I don't want to add full fledged Haskell type system at all (in fact, the exact type system used in Haskell is impossible to do in a language like Python). Nor do I want this to become a forefront of the language. The static typing can be made approachable like I showed above while adding power user features that can be used by the FP programmers that want it. I was imagining the use of monads and ADTs and other stuff without interfering with this beginner-friendly, approachable type system. I respect @evhub's thinking, though, and it makes sense in most ways. Up to him.
Basically, if you're introducing Coconut and/or FP to another programmer, I don't think ADTs and type classes and stuff need to be mentioned. Like in Python, there are many advanced features such as decorators and meta classes, but we don't mention these to a beginner, and the features are sufficiently hidden that they don't interfere with the approachability of the language.