{"id":15063809,"url":"https://github.com/monashcoding/intro-to-haskell","last_synced_at":"2026-02-15T20:02:45.540Z","repository":{"id":253747486,"uuid":"843224915","full_name":"monashcoding/intro-to-haskell","owner":"monashcoding","description":"Introduction to Haskell Workshop","archived":false,"fork":false,"pushed_at":"2024-08-26T14:35:31.000Z","size":546,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-09T06:16:42.910Z","etag":null,"topics":["functional-programming","haskell"],"latest_commit_sha":null,"homepage":"","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/monashcoding.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-08-16T03:40:11.000Z","updated_at":"2024-08-26T14:36:41.000Z","dependencies_parsed_at":"2024-09-25T03:23:44.901Z","dependency_job_id":"0093feae-64e3-48b3-adc4-967665422e93","html_url":"https://github.com/monashcoding/intro-to-haskell","commit_stats":null,"previous_names":["monashcoding/intro-to-haskell"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/monashcoding/intro-to-haskell","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monashcoding%2Fintro-to-haskell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monashcoding%2Fintro-to-haskell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monashcoding%2Fintro-to-haskell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monashcoding%2Fintro-to-haskell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/monashcoding","download_url":"https://codeload.github.com/monashcoding/intro-to-haskell/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monashcoding%2Fintro-to-haskell/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29487784,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T19:29:10.908Z","status":"ssl_error","status_checked_at":"2026-02-15T19:29:10.419Z","response_time":118,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["functional-programming","haskell"],"created_at":"2024-09-25T00:07:27.729Z","updated_at":"2026-02-15T20:02:45.524Z","avatar_url":"https://github.com/monashcoding.png","language":"Haskell","readme":"# MAC Introduction to Haskell Workshop\n\n## Setup\n\n### Option 1: Code online using CodeSandbox\n\nFork [this CodeSandbox Devbox](https://codesandbox.io/p/devbox/mac-intro-to-haskell-workshop-g3ynvw).\n\n### Option 2: Install Haskell locally\n\n1. [Install GHCup](https://www.haskell.org/ghcup/). GHCup is an installer for Haskell and related tooling..\n  - If you’re on macOS and have Homebrew, you can also do `brew install ghcup` instead to install it.\n2. Run the following commands:\n  ```sh\n  ghcup install stack --set\n  ghcup install hls --set\n  ```\n  This installs Stack (the tool we use to build our Haskell code and handle all our dependencies) and HLS (Haskell language server, which you will need to get IDE support).\n\n\u003cdetails\u003e\n  \u003csummary\u003eOptional: \u003ccode\u003eghcup tui\u003c/code\u003e\u003c/summary\u003e\n\n  If you would like, you can also GHCup’s TUI to interactively install Stack and HLS. Running `ghcup tui` will give you a terminal UI that looks something like this:\n\n  ```none\n  ┌───────────────────────GHCup──────────────────────┐\n  │    Tool  Version         Tags                    │\n  │──────────────────────────────────────────────────│\n  │✔✔  GHCup 0.1.30.0   latest,recommended           │\n  │──────────────────────────────────────────────────│\n  │✔✔  Stack 3.1.1      latest,recommended           │\n  │✗   Stack 2.15.7                                  │\n  │──────────────────────────────────────────────────│\n  │✗   HLS   2.9.0.1    latest                       │\n  │✗   HLS   2.9.0.0                                 │\n  │✗   HLS   2.8.0.0                                 │\n  │✔✔  HLS   2.7.0.0    recommended                  │\n  │✗   HLS   2.6.0.0                                 │\n  │──────────────────────────────────────────────────│\n  ```\n\n  You can also use this interface instead of the `ghcup install` commands to install these tools.\n  - Use the arrow keys or scroll to move up and down\n  - Press `i` to install\n  - Press `s` to set that as the version to use\n  - Two ticks (`✔✔`) indicates that the version is currently being used\n  - One tick (`✓`) indicates that the version has been installed but is not ‘set’ as the current version.\n  - A cross (`✗`) indicates that the version has not been installed\n\u003c/details\u003e\n\n## Test\n\nRun `stack test` to test parts 1 to 3. It might take a while the first time you run this as Stack will install the appropriate version of GHC (the Haskell compiler) for you.\n\n- `stack test --test-arguments 1`: only test part 1\n- `stack test --test-arguments 2`: only test part 2\n- `stack test --test-arguments 3`: only test part 3\n\nFor part 3, run `stack run` to try out the calculator.\n\nIf you want more things to do, there are extra bonus tasks in `Bonus.hs`.\nRun `stack test --test-arguments bonus` to run the tests for these.\n\nSolutions are available on the [solutions branch](https://github.com/monashcoding/intro-to-haskell/tree/solutions).\n\n## Windows Issues\n\nIf you get an error like this\n\n```none\nError: [S-7282]\n       Stack failed to execute the build plan.\n\n       While executing the build plan, Stack encountered the following errors:\n\n       \u003cstderr\u003e: commitAndReleaseBuffer: invalid argument (invalid character)\n```\n\n\u003csup\u003e(windows moment)\u003c/sup\u003e\n\nGo to Settings → Time and Language → Language and Region → Administrative\nlanguage Settings → Change System Locale… → and check Use Unicode UTF-8. You\nmight need to restart your computer.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonashcoding%2Fintro-to-haskell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmonashcoding%2Fintro-to-haskell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonashcoding%2Fintro-to-haskell/lists"}