{"id":16618833,"url":"https://github.com/zwilias/elm-rosetree","last_synced_at":"2026-02-23T23:35:36.026Z","repository":{"id":29655445,"uuid":"122379312","full_name":"zwilias/elm-rosetree","owner":"zwilias","description":"Rosetree/multiway trees in Elm","archived":false,"fork":false,"pushed_at":"2023-07-19T08:13:02.000Z","size":251,"stargazers_count":45,"open_issues_count":10,"forks_count":9,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-02T01:23:45.299Z","etag":null,"topics":["elm","multiway-tree","zipper"],"latest_commit_sha":null,"homepage":"http://package.elm-lang.org/packages/zwilias/elm-rosetree/latest","language":"Elm","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zwilias.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":"2018-02-21T18:57:34.000Z","updated_at":"2024-10-05T21:08:27.000Z","dependencies_parsed_at":"2024-06-19T01:50:28.897Z","dependency_job_id":"92bc6c2f-bf74-4852-b217-72b195319da7","html_url":"https://github.com/zwilias/elm-rosetree","commit_stats":{"total_commits":39,"total_committers":4,"mean_commits":9.75,"dds":"0.17948717948717952","last_synced_commit":"d840c776207e038164ac9cb58c959ae5d13e7649"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/zwilias/elm-rosetree","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwilias%2Felm-rosetree","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwilias%2Felm-rosetree/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwilias%2Felm-rosetree/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwilias%2Felm-rosetree/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zwilias","download_url":"https://codeload.github.com/zwilias/elm-rosetree/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwilias%2Felm-rosetree/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29760732,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-23T21:02:23.375Z","status":"ssl_error","status_checked_at":"2026-02-23T20:58:31.539Z","response_time":90,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["elm","multiway-tree","zipper"],"created_at":"2024-10-12T02:21:44.891Z","updated_at":"2026-02-23T23:35:36.012Z","avatar_url":"https://github.com/zwilias.png","language":"Elm","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Multiway trees and a zipper [![Build Status](https://travis-ci.org/zwilias/elm-rosetree.svg?branch=master)](https://travis-ci.org/zwilias/elm-rosetree)\n\nThis library provides a multiway tree (also known as rosetree) datastructure, \nand a zipper to navigate through it.\n\nA multiway tree is a non-empty tree where every node has a `label` and a list of\nchildren, each of which is a tree.\n\nThe basic structure looks like this:\n\n```elm\ntype Tree a = Tree { label : a, children : List (Tree a) }\n```\n\nYou can think of it as a multidimensional non-empty list. The root always has a \nlabel and may branch out in multiple directions.\n\nA tree zipper is a datastructure that allows navigating through a tree. It \nrepresents a waypoint along walking the tree. It can focus on an arbitratry part\nof the tree, be used to modify and transform that part of the tree, and rebuild\nthe entire tree back up to the root.\n\n# Performance and stack-safety\n\nSince trees can grow pretty large, a lot of effort has gone into making all the\nfunctions in the `Tree` module work stack-safely. All the iteration functions in \nthat module are written to make use of Elm's support for tail call elimination.\n\nMaking these functions highly performant without losing out on the safety is a\ncontinuous effort.\n\n\n# Contributing\n\nContributions are preferred to take the form of collaboration. Questions, bug \nreports and feature requests are welcome as GitHub issues. Before starting any\nconcrete work, opening a discussion is very much appreciated.\n\n---\n\nMade with love and released under the BSD-3 license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzwilias%2Felm-rosetree","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzwilias%2Felm-rosetree","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzwilias%2Felm-rosetree/lists"}