I kind of got the impression that a lot of function programmers were quite receptive when they heard about Scala, a statically typed language for the JVM. But then some of them became quite angry when they discovered that Martin had not merely done the minimum OO to ease compatibility with Java, as say F# did with dot net but had actually expanded the power and capability of OO.
They liked to argue that the benefits of OO were totally outweighed by the costs. By expanding the benefits of OO under Scala Martin had made their argument more difficult. Without Scala OO might have gradually died out. It seems to me that Dotty with trait parameters, type member- parameter unification and soundness rigour of the dot calculus is going to again dramatically increase the OO power of the language. I wonder if we will see a similar reaction.
Some(1).map(a => a) = None
Nonehave their own types
data Maybe a = Just a | Nothing
=is data constructors, not types
Nothingare two things