Create an experimental version of the app with F# to see how the architecture and patterns translate into a functional language. Functional languages enforce many of the practices I use by convention. It may make sense to just switch.