Functional Dependency InjectionAn exploration of “functional” dependency injection methods, and an introduction of cats-mtl-monoclecatsscalafp