The base looks similar (space is function call, static types inference, currying, '->' for function definition etc.) because the common ancestor for haskell, o'caml, erlang and various others is ML, another language.
This is the same kind of relation between C, java and C#, the basic type system and grammar are cousin.
I won't answer to the "static typing is inflexible", but you should check the type system itself, and its genericity system and modularity system.
Comments
The base looks similar (space is function call, static types inference, currying, '->' for function definition etc.) because the common ancestor for haskell, o'caml, erlang and various others is ML, another language.
This is the same kind of relation between C, java and C#, the basic type system and grammar are cousin.
I won't answer to the "static typing is inflexible", but you should check the type system itself, and its genericity system and modularity system.