Skip to content

etorreborre/registry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

b63cd4e · Dec 19, 2024
Dec 17, 2024
Dec 9, 2022
Nov 11, 2022
Dec 19, 2024
Dec 19, 2024
Dec 17, 2024
Nov 11, 2022
May 15, 2022
Dec 17, 2024
May 15, 2022
Oct 4, 2022
Oct 4, 2022
Jan 14, 2023
Jan 14, 2023
Dec 19, 2024
Dec 19, 2024
Dec 17, 2024
Dec 17, 2024

Repository files navigation

Registry Hackage Build Status

It's functions all the way down

Presentation

This library provides a data structure, a "Registry", to control the creation of functions from other functions. You can use this technique to:

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:

  1. what is the problem?
  2. the concept of a Registry and the resolution algorithm
  3. how does this compare to monad transformers and effects?

Tutorials

  1. tutorial: use a Registry to create applications and define components
  2. use a Registry to compose Hedgehog generators
  3. workshop: implement your own simplified registry and understand the basic concepts behind it

How-tos

  1. how to install this library?
  2. how to do mocking?
  3. how to specialize some values in some contexts?
  4. how to control effects occurring when creating a component (like a connection pool)?
  5. how to allocate resources which must be finalized?
  6. how to extract a dot graph from the registry in an application?
  7. how to interact with a library using monad transformers?
  8. how to remove boilerplate due to parameter passing?
  9. how to create a typeclass from a record of functions?
  10. how to read type errors?

Reference guides

  1. main operators and functions
  2. implementation notes