A small DI container based on functional composition