What could be done as believed to be impossible in F#:
– Type class emulation
– Generic lenses
– Strongly typed monad compositions via monad transforms
But more important than that, how do we make it possible to analyse and be aware of used abstractions in order to make it clearer how things are composed.