{"id":13725112,"url":"https://github.com/ManasJayanth/reason-aoc-starter","last_synced_at":"2025-05-07T19:32:53.413Z","repository":{"id":54695116,"uuid":"317428397","full_name":"ManasJayanth/reason-aoc-starter","owner":"ManasJayanth","description":"Reason Starter kit for Advent of Code ","archived":false,"fork":false,"pushed_at":"2021-02-06T10:05:36.000Z","size":114,"stargazers_count":9,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-13T22:22:20.637Z","etag":null,"topics":["advent-of-code","esy","ocaml","pesy","reason"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/ManasJayanth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"MIT-LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-12-01T04:53:23.000Z","updated_at":"2024-11-05T00:14:41.000Z","dependencies_parsed_at":"2022-08-14T00:10:59.475Z","dependency_job_id":null,"html_url":"https://github.com/ManasJayanth/reason-aoc-starter","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ManasJayanth%2Freason-aoc-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ManasJayanth%2Freason-aoc-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ManasJayanth%2Freason-aoc-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ManasJayanth%2Freason-aoc-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ManasJayanth","download_url":"https://codeload.github.com/ManasJayanth/reason-aoc-starter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224645219,"owners_count":17346099,"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":["advent-of-code","esy","ocaml","pesy","reason"],"created_at":"2024-08-03T01:02:13.340Z","updated_at":"2024-11-14T15:30:45.947Z","avatar_url":"https://github.com/ManasJayanth.png","language":"JavaScript","funding_links":[],"categories":["Project Templates","Reason","JavaScript"],"sub_categories":["Starter Kits"],"readme":"# Advent of Code with Reason\n\nHey!\n\nThis is started kit for working Advent of Code puzzle. You can clone it and build it with [`esy`](https://esy.sh)\n\n```sh\ngit clone https://github.com/ManasJayanth/reason-aoc-starter\ncd reason-aoc-starter\nesy\n```\n\nTo enable Flambda optimisations on your compiled binaries, use `@release`\n\nExamples,\n```\nesy @release # to just build\nesy start:release # to run flambda opt enabled binary\n```\n\nIf you dont have `esy` already installed,\n\n```sh\nnpm i -g esy\n# or\nyarn global add esy\n```\n\n## Editor setup\n\nWe recommend the following editor plugins\n\n1. [OCaml Platform](https://marketplace.visualstudio.com/items?itemName=ocamllabs.ocaml-platform) for VSCode/VSCodium\n2. [reason-mode](https://github.com/reasonml-editor/reason-mode) with [esy-mode](https://github.com/ManasJayanth/esy-mode) for Emacs\n3. [vim-reasonml]() for Vim\n\n## Forum discussion\n\nAssociated forum post can be found [here](https://reasonml.chat/t/advent-of-code-2020-starter-kit-and-tips/2555). \nIf you have any questions, feel free to ask on the there. Tag me on Discord if you are on Reason Servers. I'm `Manas (prometheansacrifice)#0219` there.\nTips and new ideas are welcome too!\n\n## Helper libraries available\n\n - `@reason-native/console` for logging\n - `@reason-native/fs` for file utilities\n - `@reason-native/fp` for type safe path handling\n - `@reason-native/rely` for unit testing the puzzle cases\n - `@reason-native/cli` for CLI parsing\n - `@opam/container` for an extended standard library\n - `@opam/angstrom` for parsing the puzzle input\n \n## Build tools used\n\n- [Dune](https://dune.readthedocs.io/en/stable/) - to build the project\n- [Pesy](https://github.com/esy/pesy) - to provide an alternative convenient JSON syntax for Dune file. Optional. Use `esy pesy eject ./path/to/sub-package` to use the Dune file for that subpackage.\n\n\n## Documentation for provided helper utils\n\n(TODO)\n\n\n## Documentation (quick primers) for included libraries\n\n### `@reason-native/console` \n\nReason is a type safe language and functions have to be intentionally\nwritten in a way accept arguments of any type. Benefits of such strong\ntyping is seen in large codebases, but for simple printing, one could\nneed type specific printers like `print_int` etc.\n\n`@reason-native/console` provided a familiar generic `Console.log`\ninspired by the browser's `console.log`. See [here](https://reason-native.com/docs/console/)\n\n```reason\nConsole.log(\"Some string here\");\nConsole.log(true);\nConsole.log(Some(\"hi\"));\nConsole.log(None);\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FManasJayanth%2Freason-aoc-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FManasJayanth%2Freason-aoc-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FManasJayanth%2Freason-aoc-starter/lists"}