This library provides a data structure, a Registry, to control the creation of functions from other functions. You can use this technique to:
- create applications out of software components ("dependency injection")
- fine tune JSON encoders/decoders
- create composable data generators for nested datatypes
You can watch a video presenting the main ideas behind the library here.
The following sections introduce in more details the problem that this library is addressing, the concepts behind the solution and various use-cases which can arise on real projects:
- what is the problem?
- the concept of a Registry and the resolution algorithm
- TODO use a Registry to create applications and define components
- TODO use a Registry to compose Hedgehog generators
- TODO how to install this library?
- TODO how to do mocking?
- TODO how to specialize some values in some contexts?
- TODO how to make a singleton for a database?
- TODO how to allocate resources which must be finalized?
- TODO how to initialize components in an application?
- TODO how to extract a dot graph from the registry in an application?
- TODO how to interact with a library using monad transformers?
- TODO main operators and functions
- TODO implementation notes