• Stars
    star
    162
  • Rank 232,284 (Top 5 %)
  • Language
    Haskell
  • License
    Other
  • Created over 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Components as records of functions for Haskell

Registry Hackage Build Status

Join the chat at https://gitter.im/etorreborre/registry

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

More Repositories

1

specs2

Software Specifications for Scala
Scala
733
star
2

s99

Scala
54
star
3

specs2-test

Test project for specs2
Scala
17
star
4

specs-before-google-code-import

specs is a BDD library for the Scala language
Scala
16
star
5

iterator-essence

Code for the Essence of the Iterator Pattern post
Scala
9
star
6

registry-hedgehog

registry utilities to work with Hedgehog generators
Haskell
7
star
7

bondi-tutorial

6
star
8

ingestion

Translation of the example given https://reasonablypolymorphic.com/blog/freer-monads using streaming and registry
Haskell
5
star
9

registry-aeson

Haskell
5
star
10

fold-algebras

Examples for fold-algebras DSLs
Scala
4
star
11

wordcount

Scala
3
star
12

api-discovery

API Discovery Solution for Microservice Architectures
CSS
3
star
13

beautiful-concurrency

Learning repository for "Beautiful concurrency" (https://www.microsoft.com/en-us/research/publication/beautiful-concurrency)
Haskell
3
star
14

tree-calculus

support code for reading the tree calculus book
Haskell
3
star
15

registry-options

options parsing using registry
Haskell
2
star
16

ledgit-blogpost

Example of a command-line application to process CSV files
Haskell
2
star
17

specs2-http4s

specs2 support for http4s
Scala
2
star
18

activator-minimal-scala-specs2

A minimal scala project with specs2 as a testing dependency
Scala
2
star
19

abc-numbers-haskell

Haskell
2
star
20

registry-messagepack

Customizable Encoders / decoders for MessagePack
Haskell
1
star
21

oscon-2010

examples for the OSCON 2010 presentation
Scala
1
star
22

vault

Database API
Scala
1
star
23

TrelloSpecs2Generator

Largely hard-coded spike for creating specs2 tests from Trello Boards
Scala
1
star
24

stringly

stringly-typed functions
Haskell
1
star
25

specs2-cats

matchers for specs2 and cats-effects
Scala
1
star
26

quick-specs

Scala
1
star
27

specs2-examples

This is a temporary repository to share a few given-when-then specs2-examples
Scala
1
star
28

hvy

My daughter's website
Scala
1
star
29

producer-hs

Simple streaming library for Haskell
Haskell
1
star