{"id":14966277,"url":"https://github.com/alhassy/next-700-module-systems","last_synced_at":"2025-10-25T16:30:49.269Z","repository":{"id":54889429,"uuid":"183481245","full_name":"alhassy/next-700-module-systems","owner":"alhassy","description":"PhD research ;; What's the difference between a typeclass/trait and a record/class/struct? Nothing really, or so I argue.","archived":false,"fork":false,"pushed_at":"2021-10-24T23:59:31.000Z","size":84877,"stargazers_count":81,"open_issues_count":0,"forks_count":6,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-01-31T07:51:29.348Z","etag":null,"topics":["agda","canonical-structures","coq","emacs","first-class-citizens","haskell","language","lisp","metaprogramming","modules","ocaml","phd","records","typeclasses"],"latest_commit_sha":null,"homepage":null,"language":"HTML","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/alhassy.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":"2019-04-25T17:34:37.000Z","updated_at":"2024-11-18T05:13:22.000Z","dependencies_parsed_at":"2022-08-14T05:50:38.669Z","dependency_job_id":null,"html_url":"https://github.com/alhassy/next-700-module-systems","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/alhassy%2Fnext-700-module-systems","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alhassy%2Fnext-700-module-systems/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alhassy%2Fnext-700-module-systems/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alhassy%2Fnext-700-module-systems/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alhassy","download_url":"https://codeload.github.com/alhassy/next-700-module-systems/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238174122,"owners_count":19428629,"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":["agda","canonical-structures","coq","emacs","first-class-citizens","haskell","language","lisp","metaprogramming","modules","ocaml","phd","records","typeclasses"],"created_at":"2024-09-24T13:36:08.752Z","updated_at":"2025-10-25T16:30:48.326Z","avatar_url":"https://github.com/alhassy.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1\u003e The Next 700 Module Systems \u003c/h1\u003e\n\n\u003ch3\u003e Extending Dependently-Typed Languages to Implement Module System Features In The Core Language \u003c/h3\u003e\n\nThis repository contains the research proposal for my doctoral studies at McMaster University\nunder the supervision of Jacques Carette and Wolfram Kahl.\n\n*What are and what should be the module systems of DTLs?*\n*DTLs remove distinctions between packaging systems and so*\n*using pedestrian modules systems is not necessarily the best route.*\n\n-   A requirements driven approach to coherent modularisarion constructs in Dependently-typed languages.\n-   Main Question: *What are the module systems for Dependently-Typed Languages?*\n-   Goal: Extend Agda to be powerful enough to implement the module system features, in the core language, that people want to do.\n\n    In user facing libraries, [redundancies are desirable](https://inf.ug.edu.pl/~schwarzw/papers/mkm2010.pdf)\n    since they may utilise a a variety of aliases for what user want, this is useful\n    flexibility.\n\n    -   However, in the source file, each item should only exist once.\n    -   The front-end redundancy should be produced by machine generation,\n\nrather than by hand.\n\n◈ [Website](https://alhassy.github.io/next-700-module-systems/) ◈\n\nA super simple description of this work, for the layman, can be found [here](https://alhassy.github.io/three_minutes/).\n\n\u003ch2\u003e Prototype and a Preprint \u003c/h2\u003e\n\n◈ [Prototype](./prototype/package-former.html)\n◈ [MathScheme: 200+ Math Theories in (Clickable) Agda](./prototype/html/math-scheme-generated.html)\n◈ [A Language Feature to Unbundle Data at Will](./papers/gpce19_a_language_feature_to_unbundle_data_at_will.pdf)\n◈ [Slides](https://alhassy.github.io/next-700-module-systems/papers/GPCE2019_unbundle_slides.pdf)\n◈ [Youtube](https://youtu.be/xLHgN0dOZ6E)\n\n\n![](./papers/gpce19-mousing-over.png)\n\n\u003ch2\u003e The Context Library ---An Agda Counterpart of the PackageFormer Prototype \u003c/h2\u003e\n◈ [PhD Thesis](./thesis.pdf) ; [Youtube](https://youtu.be/hTQG2QbBPhA)\n◈ [Slides](./phd-defence.pdf)\n◈ AIM 2020: [Youtube](https://youtu.be/lSIFM5lhnWc); [Slides](./diy/agda-implementors-meeting-2020.html)\n\n\u003ch2\u003e Proposal \u003c/h2\u003e\n\n◈ [PDF](./proposal/thesis-proposal.pdf)\n◈ [HTML](./proposal/thesis-proposal.html)\n◈ [Slides](./proposal/defence-slides.html)\n◈ [`translate` code](./proposal/translate_functions.agda.html)\n◈ [`monoid` code](./proposal/monoid_renditions.agda.html)\n◆ [Demo](https://www.youtube.com/watch?v=NYOOF9xKBz8\u0026feature=youtu.be)\n\n\u003ch2\u003e Related \u003c/h2\u003e\n\n◈ [Metaprogramming Agda --- IFIP Program Generation Talk ](./papers/JC_Program_Generation_Talk_IFIP.pdf)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falhassy%2Fnext-700-module-systems","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falhassy%2Fnext-700-module-systems","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falhassy%2Fnext-700-module-systems/lists"}