{"id":16924081,"url":"https://github.com/davidchase/elmentary","last_synced_at":"2025-04-11T17:33:37.157Z","repository":{"id":140971705,"uuid":"80436722","full_name":"davidchase/elmentary","owner":"davidchase","description":"Your one-stop shop for Algebraic Data Types (ADT) in elm :deciduous_tree:","archived":false,"fork":false,"pushed_at":"2017-02-11T04:58:15.000Z","size":27,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-25T13:39:12.593Z","etag":null,"topics":["adts","algebraic-data-types","elm","functional-programming","monads","monoid"],"latest_commit_sha":null,"homepage":"","language":"Elm","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davidchase.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-01-30T15:59:16.000Z","updated_at":"2023-09-03T19:39:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"fbb39ac2-dc10-46dc-bf86-068414b452a7","html_url":"https://github.com/davidchase/elmentary","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidchase%2Felmentary","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidchase%2Felmentary/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidchase%2Felmentary/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidchase%2Felmentary/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davidchase","download_url":"https://codeload.github.com/davidchase/elmentary/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248450138,"owners_count":21105626,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adts","algebraic-data-types","elm","functional-programming","monads","monoid"],"created_at":"2024-10-13T20:03:09.733Z","updated_at":"2025-04-11T17:33:37.111Z","avatar_url":"https://github.com/davidchase.png","language":"Elm","funding_links":[],"categories":[],"sub_categories":[],"readme":"![](https://img.shields.io/badge/functional-%CE%BB-blue.svg?style=flat-square)\n[![API stability](https://img.shields.io/badge/stability-experimental-orange.svg?style=flat-square)](https://nodejs.org/api/documentation.html#documentation_stability_index)\n\n# elmentary\n\u003e Your one-stop shop for Algebraic Data Types (ADT) in elm \n\n## Why ?\nFun to experiment \n\n## Types\n\n### Maybe Type  \n\n**reduce** : `(a -\u003e b -\u003e a) -\u003e a -\u003e Maybe b -\u003e a`\n\n**filter** : `(a -\u003e Bool) -\u003e Maybe a -\u003e Maybe a`\n\n**isJust** : `Maybe a -\u003e Bool`\n\n**catMaybes** : `List (Maybe b) -\u003e List b`\n\n**fmap** : `(a -\u003e b) -\u003e Maybe a -\u003e Maybe b`\n\n**chain** : `(a -\u003e Maybe b) -\u003e Maybe a -\u003e Maybe b`\n\n**join** : `Maybe (Maybe a) -\u003e Maybe a`\n\n**ap** : `Maybe (b -\u003e a) -\u003e Maybe b -\u003e Maybe a`\n\n**lift2** : `(b -\u003e c -\u003e a) -\u003e Maybe b -\u003e Maybe c -\u003e Maybe a`\n\n**concat** : `Maybe (List a) -\u003e Maybe (List a) -\u003e Maybe (List a)`\n\n**mapMaybe** : `(a -\u003e Maybe b) -\u003e List a -\u003e List b`\n\n**maybe** : `a -\u003e (b -\u003e a) -\u003e Maybe b -\u003e a`\n\n**empty** : `Maybe a`\n\n**traverse** : `(a -\u003e Maybe b) -\u003e List a -\u003e Maybe (List b)`\n\n**sequence** : `List (Maybe a) -\u003e Maybe (List a)`\n\n### Either Type\n\n**partition** : `List (Either c a) -\u003e ( List c, List a )`\n\n**either** : `(c -\u003e b) -\u003e (a -\u003e b) -\u003e Either c a -\u003e b`\n\n**isLeft** : `Either c a -\u003e Bool`\n\n**isRight** : `Either c a -\u003e Bool`\n\n**rights** : `List (Either c a) -\u003e List a`\n\n**lefts** : `List (Either c a) -\u003e List c`\n\n**fmap** : `(a -\u003e b) -\u003e Either c a -\u003e Either c b`\n\n**chain** : `(a -\u003e Either c b) -\u003e Either c a -\u003e Either c b`\n\n**ap** : `Either c (a -\u003e b) -\u003e Either c a -\u003e Either c b`\n\n**lift2** : `(a -\u003e b -\u003e d) -\u003e Either c a -\u003e Either c b -\u003e Either c d`\n\n**concat** : `Either c (List a) -\u003e Either c (List a) -\u003e Either c (List a)`\n\n**traverse** : `(a -\u003e Either c b) -\u003e List a -\u003e Either c (List b)`\n\n**sequence** : `List (Either c a) -\u003e Either c (List a)`\n\n**toBoolean** : `Either c a -\u003e Bool`\n\n**eitherToMaybe** : `Either c a -\u003e Maybe a`\n\n### Inspired by\n\n[sanctuary](http://sanctuary.js.org)\n\n[crocks](https://github.com/evilsoft/crocks)\n\n[folktale](http://folktalejs.org/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidchase%2Felmentary","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidchase%2Felmentary","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidchase%2Felmentary/lists"}