Based off of Scott Wlaschin's F# talk OOP Functional OOP Core API Dependency Injection w/Interfaces Dependency Injection w/Functions Batch Processing (Command Pattern) Decoupling w/Data Types Event Sourcing Monads