Although F# is considered a functional-first language, we have seen in this chapter that we can also talk of it as a multi-paradigm language. F# developers have, at their disposal, many of the tools frequently found in other more imperative languages, such as control flow structures (loops) and powerful OOP capabilities.
We have also seen how to use some of the most interesting features of C#, such as generics, LINQ queries, and events in F#. Finally, you learned how to make your F# program interop more easily with the C# code. In the next chapter, we will dive into the asynchronous features of F#.