{"id":17655569,"url":"https://github.com/verse-lab/ego","last_synced_at":"2025-10-28T13:06:53.490Z","repository":{"id":42005687,"uuid":"401563517","full_name":"verse-lab/ego","owner":"verse-lab","description":"EGraphs in OCaml","archived":false,"fork":false,"pushed_at":"2024-01-20T00:50:19.000Z","size":278,"stargazers_count":65,"open_issues_count":2,"forks_count":7,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-28T02:12:20.806Z","etag":null,"topics":["egraphs","equality-saturation","ocaml"],"latest_commit_sha":null,"homepage":"https://verse-lab.github.io/ego/ego/index.html","language":"OCaml","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/verse-lab.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}},"created_at":"2021-08-31T03:42:22.000Z","updated_at":"2025-01-30T00:07:43.000Z","dependencies_parsed_at":"2022-08-30T06:30:48.051Z","dependency_job_id":null,"html_url":"https://github.com/verse-lab/ego","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verse-lab%2Fego","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verse-lab%2Fego/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verse-lab%2Fego/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verse-lab%2Fego/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/verse-lab","download_url":"https://codeload.github.com/verse-lab/ego/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248886316,"owners_count":21177643,"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":["egraphs","equality-saturation","ocaml"],"created_at":"2024-10-23T13:01:12.981Z","updated_at":"2025-10-28T13:06:48.450Z","avatar_url":"https://github.com/verse-lab.png","language":"OCaml","funding_links":[],"categories":["Implementations"],"sub_categories":[],"readme":"# Ego - EGraphs in OCaml\n\nEgo (EGraphs OCaml) is an OCaml library that provides generic equality\nsaturation using EGraphs. \n\nThe design of Ego loosely follows the design of Rust's egg library,\nproviding a flexible interface to run equality saturation extended\nwith custom user-defined analyses.\n\n```ocaml\n(* create an egraph *)\nlet graph = EGraph.init ()\n(* add expressions *)\nlet expr1 = EGraph.add_sexp graph [%s ((a \u003c\u003c 1) / 2)]\n(* Convert to graphviz *)\nlet g : Odot.graph = EGraph.to_dot graph\n```\n\n\u003cimg style=\"width: 25%\" src=\"data:image/png;base64,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\"/\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fverse-lab%2Fego","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fverse-lab%2Fego","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fverse-lab%2Fego/lists"}