I can think of two major reasons as to why Cardano chose a strongly-typed functional language for it's Blockchain:
- Strongly-typed - because as the capabilities of the Blockchain and scripts become more powerfull, type safety is a must-have to ensure determinism and security.
- Functional - because it adapts very well with the UTXO design.
So my question is doesn't Haskell already fit the bill? Why is the Plutus library, its intermediary representations and Plutus Core even needed?