Programs written in, for example, Java rely a lot on dynamic dispatch.
How are such programs expressed in functional languages such as Haskell?
In other words, what is the Haskell way of expressing the idea underneath "dynamic dispatch"?