From 45ac8b5fb16125ee2b6f23ebce5ce54205e6c9c9 Mon Sep 17 00:00:00 2001 From: Walker Date: Tue, 10 Jan 2023 14:58:48 -0300 Subject: [PATCH] feat(purs-nix): add minimal template --- .github/workflows/test.yml | 2 + .github/workflows/update-flake-lock.yml | 1 + README.md | 5 +- flake.nix | 11 + purs-nix/.gitignore | 10 + purs-nix/flake.lock | 640 ++++++++++++++++++++++++ purs-nix/flake.nix | 71 +++ purs-nix/src/hello.purs | 9 + 8 files changed, 747 insertions(+), 2 deletions(-) create mode 100644 purs-nix/.gitignore create mode 100644 purs-nix/flake.lock create mode 100644 purs-nix/flake.nix create mode 100644 purs-nix/src/hello.purs diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b99accd..3e67917 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,6 +16,8 @@ jobs: - aarch64-linux - x86_64-linux include: + - template: purs-nix + system: x86_64-linux - template: ctl system: x86_64-linux runs-on: ubuntu-latest diff --git a/.github/workflows/update-flake-lock.yml b/.github/workflows/update-flake-lock.yml index 947a562..3c19092 100644 --- a/.github/workflows/update-flake-lock.yml +++ b/.github/workflows/update-flake-lock.yml @@ -11,6 +11,7 @@ jobs: - "" - haskell-nix - plutus + - purs-nix - ctl runs-on: ubuntu-latest steps: diff --git a/README.md b/README.md index 48a5015..12cff86 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ nix flake init -t github:LovelaceAcademy/nix-templates#template-name - [haskell-nix](./haskell-nix): A haskell.nix template using hix - [plutus](./plutus): A plutus template using haskell.nix +- [purs-nix](./purs-nix): A purs-nix template - [ctl](./ctl): A cardano-transaction-lib template using purs-nix ## FAQ @@ -33,8 +34,8 @@ It depends on upstream supporting it, and also our capacity to test in our CI. R It depends on the template: -- haskell-nix: you'll need at least 8GB RAM and 10GB HDD -- plutus: you'll need at least 16GB RAM (for HDD) or 12GB RAM (for SSD). At least 20GB of available space. +- haskell-nix, purs-nix: you'll need at least 8GB RAM and 10GB HDD +- plutus, ctl: you'll need at least 16GB RAM (for HDD) or 12GB RAM (for SSD). At least 20GB of available space. ### Why it take soo long to build? diff --git a/flake.nix b/flake.nix index 5742edf..6b0eaf8 100644 --- a/flake.nix +++ b/flake.nix @@ -24,6 +24,17 @@ Plutus docs available with `nix run .#serve-docs` ''; }; + purs-nix = { + path = ./purs-nix; + description = "A purs-nix template"; + welcomeText = '' + You just created a purs-nix project. + Read more about it here: https://github.com/purs-nix/purs-nix + + Development shell with `nix develop` + Build with `nix build` + ''; + }; ctl = { path = ./ctl; description = "A cardano-transaction-lib template using purs-nix"; diff --git a/purs-nix/.gitignore b/purs-nix/.gitignore new file mode 100644 index 0000000..b60db12 --- /dev/null +++ b/purs-nix/.gitignore @@ -0,0 +1,10 @@ +/bower_components/ +/node_modules/ +/.pulp-cache/ +/output/ +/generated-docs/ +/.psc-package/ +/.psc* +/.purs* +/.psa* +/result diff --git a/purs-nix/flake.lock b/purs-nix/flake.lock new file mode 100644 index 0000000..45ef39e --- /dev/null +++ b/purs-nix/flake.lock @@ -0,0 +1,640 @@ +{ + "nodes": { + "deadnix": { + "inputs": { + "fenix": "fenix", + "naersk": "naersk", + "nixpkgs": "nixpkgs_3", + "utils": "utils" + }, + "locked": { + "lastModified": 1655647809, + "narHash": "sha256-npyHYIJW7HyGIFpCZZK+t5JM/v2LsyFhAGJxX1DXO7E=", + "owner": "astro", + "repo": "deadnix", + "rev": "83c42cc64d190ecb72f5929eab0f64fe88e25dc4", + "type": "github" + }, + "original": { + "owner": "astro", + "repo": "deadnix", + "type": "github" + } + }, + "deadnix_2": { + "inputs": { + "fenix": "fenix_2", + "naersk": "naersk_2", + "nixpkgs": "nixpkgs_7", + "utils": "utils_2" + }, + "locked": { + "lastModified": 1656370114, + "narHash": "sha256-XBbSWeBuF6Ck0jc634yAp2hjPXWM2JyRDPCdK0dh3w4=", + "owner": "astro", + "repo": "deadnix", + "rev": "9f450f7250ad7680cb5f12ce5985cc18496c2d5f", + "type": "github" + }, + "original": { + "owner": "astro", + "repo": "deadnix", + "type": "github" + } + }, + "docs-search": { + "flake": false, + "locked": { + "lastModified": 1661787609, + "narHash": "sha256-jgOl8PKisRmcaHOya3HzArI3eKjVErx+XIBGminh9Zk=", + "owner": "purs-nix", + "repo": "purescript-docs-search", + "rev": "4620575e21886fcbf516d0b43910ba4ead2a60d0", + "type": "github" + }, + "original": { + "owner": "purs-nix", + "repo": "purescript-docs-search", + "type": "github" + } + }, + "fenix": { + "inputs": { + "nixpkgs": "nixpkgs", + "rust-analyzer-src": "rust-analyzer-src" + }, + "locked": { + "lastModified": 1655533500, + "narHash": "sha256-qJJmLVoMYfDLywI9MNL7sb0W/GsKQF9HDatdHm1tSl0=", + "owner": "nix-community", + "repo": "fenix", + "rev": "b6630603af13df17d0dd4df8629e9a24e6ba0fbd", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "fenix", + "type": "github" + } + }, + "fenix_2": { + "inputs": { + "nixpkgs": "nixpkgs_5", + "rust-analyzer-src": "rust-analyzer-src_2" + }, + "locked": { + "lastModified": 1655533500, + "narHash": "sha256-qJJmLVoMYfDLywI9MNL7sb0W/GsKQF9HDatdHm1tSl0=", + "owner": "nix-community", + "repo": "fenix", + "rev": "b6630603af13df17d0dd4df8629e9a24e6ba0fbd", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "fenix", + "type": "github" + } + }, + "fenix_3": { + "inputs": { + "nixpkgs": [ + "purs-nix", + "statix", + "nixpkgs" + ], + "rust-analyzer-src": "rust-analyzer-src_3" + }, + "locked": { + "lastModified": 1645251813, + "narHash": "sha256-cQ66tGjnZclBCS3nD26mZ5fUH+3/HnysGffBiWXUSHk=", + "owner": "nix-community", + "repo": "fenix", + "rev": "9892337b588c38ec59466a1c89befce464aae7f8", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "fenix", + "type": "github" + } + }, + "flake-utils": { + "locked": { + "lastModified": 1618217525, + "narHash": "sha256-WGrhVczjXTiswQaoxQ+0PTfbLNeOQM6M36zvLn78AYg=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c6169a2772643c4a93a0b5ac1c61e296cba68544", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "locked": { + "lastModified": 1618217525, + "narHash": "sha256-WGrhVczjXTiswQaoxQ+0PTfbLNeOQM6M36zvLn78AYg=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c6169a2772643c4a93a0b5ac1c61e296cba68544", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_3": { + "locked": { + "lastModified": 1618217525, + "narHash": "sha256-WGrhVczjXTiswQaoxQ+0PTfbLNeOQM6M36zvLn78AYg=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c6169a2772643c4a93a0b5ac1c61e296cba68544", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "get-flake": { + "locked": { + "lastModified": 1644686428, + "narHash": "sha256-zkhYsURWFrvEZLkIoBeqFBzSu+cA2u5mo6M8vq9LN7M=", + "owner": "ursi", + "repo": "get-flake", + "rev": "703f15558daa56dfae19d1858bb3046afe68831a", + "type": "github" + }, + "original": { + "owner": "ursi", + "repo": "get-flake", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "purs-nix", + "statix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1635165013, + "narHash": "sha256-o/BdVjNwcB6jOmzZjOH703BesSkkS5O7ej3xhyO8hAY=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "5b9e0ff9d3b551234b4f3eb3983744fa354b17f1", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "make-shell": { + "locked": { + "lastModified": 1634940815, + "narHash": "sha256-P69OmveboXzS+es1vQGS4bt+ckwbeIExqxfGLjGuJqA=", + "owner": "ursi", + "repo": "nix-make-shell", + "rev": "8add91681170924e4d0591b22f294aee3f5516f9", + "type": "github" + }, + "original": { + "owner": "ursi", + "ref": "1", + "repo": "nix-make-shell", + "type": "github" + } + }, + "make-shell_2": { + "locked": { + "lastModified": 1634940815, + "narHash": "sha256-P69OmveboXzS+es1vQGS4bt+ckwbeIExqxfGLjGuJqA=", + "owner": "ursi", + "repo": "nix-make-shell", + "rev": "8add91681170924e4d0591b22f294aee3f5516f9", + "type": "github" + }, + "original": { + "owner": "ursi", + "ref": "1", + "repo": "nix-make-shell", + "type": "github" + } + }, + "naersk": { + "inputs": { + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1655042882, + "narHash": "sha256-9BX8Fuez5YJlN7cdPO63InoyBy7dm3VlJkkmTt6fS1A=", + "owner": "nix-community", + "repo": "naersk", + "rev": "cddffb5aa211f50c4b8750adbec0bbbdfb26bb9f", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "naersk", + "type": "github" + } + }, + "naersk_2": { + "inputs": { + "nixpkgs": "nixpkgs_6" + }, + "locked": { + "lastModified": 1655042882, + "narHash": "sha256-9BX8Fuez5YJlN7cdPO63InoyBy7dm3VlJkkmTt6fS1A=", + "owner": "nix-community", + "repo": "naersk", + "rev": "cddffb5aa211f50c4b8750adbec0bbbdfb26bb9f", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "naersk", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1655400192, + "narHash": "sha256-49OBVVRgb9H/PSmNT9W61+NRdDbuSJVuDDflwXlaUKU=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "3d7435c638baffaa826b85459df0fff47f12317d", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1655481042, + "narHash": "sha256-XHbcywq2vIQ5CeH1OK3TN793jkiNAAZsSctS1PFgseo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "103a4c0ae46afa9cf008c30744175315ca38e9f9", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1655481042, + "narHash": "sha256-XHbcywq2vIQ5CeH1OK3TN793jkiNAAZsSctS1PFgseo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "103a4c0ae46afa9cf008c30744175315ca38e9f9", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1646506091, + "narHash": "sha256-sWNAJE2m+HOh1jtXlHcnhxsj6/sXrHgbqVNcVRlveK4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "3e644bd62489b516292c816f70bf0052c693b3c7", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { + "locked": { + "lastModified": 1655400192, + "narHash": "sha256-49OBVVRgb9H/PSmNT9W61+NRdDbuSJVuDDflwXlaUKU=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "3d7435c638baffaa826b85459df0fff47f12317d", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_6": { + "locked": { + "lastModified": 1655481042, + "narHash": "sha256-XHbcywq2vIQ5CeH1OK3TN793jkiNAAZsSctS1PFgseo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "103a4c0ae46afa9cf008c30744175315ca38e9f9", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_7": { + "locked": { + "lastModified": 1655481042, + "narHash": "sha256-XHbcywq2vIQ5CeH1OK3TN793jkiNAAZsSctS1PFgseo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "103a4c0ae46afa9cf008c30744175315ca38e9f9", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_8": { + "locked": { + "lastModified": 1656549732, + "narHash": "sha256-eILutFZGjfk2bEzfim8S/qyYc//0S1KsCeO+OWbtoR0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "d3248619647234b5dc74a6921bcdf6dd8323eb22", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_9": { + "locked": { + "lastModified": 1645013224, + "narHash": "sha256-b7OEC8vwzJv3rsz9pwnTX2LQDkeOWz2DbKypkVvNHXc=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "b66b39216b1fef2d8c33cc7a5c72d8da80b79970", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "parsec": { + "locked": { + "lastModified": 1635533376, + "narHash": "sha256-/HrG0UPGnI5VdkhrNrpDiM2+nhdL6lD/bqyGtYv0QDE=", + "owner": "nprindle", + "repo": "nix-parsec", + "rev": "1bf25dd9c5de1257a1c67de3c81c96d05e8beb5e", + "type": "github" + }, + "original": { + "owner": "nprindle", + "repo": "nix-parsec", + "type": "github" + } + }, + "ps-tools": { + "inputs": { + "deadnix": "deadnix_2", + "make-shell": "make-shell_2", + "nixpkgs": "nixpkgs_8", + "utils": "utils_3" + }, + "locked": { + "lastModified": 1658374818, + "narHash": "sha256-WxbQ/BR4Ep8tBbaOikXechspyZlvwfL5XNmRNEnaOFo=", + "owner": "purs-nix", + "repo": "purescript-tools", + "rev": "c0f887f60ea2331dfdc5b0e8be2e732976887345", + "type": "github" + }, + "original": { + "owner": "purs-nix", + "repo": "purescript-tools", + "type": "github" + } + }, + "purs-nix": { + "inputs": { + "deadnix": "deadnix", + "docs-search": "docs-search", + "get-flake": "get-flake", + "make-shell": "make-shell", + "nixpkgs": "nixpkgs_4", + "parsec": "parsec", + "ps-tools": "ps-tools", + "statix": "statix", + "utils": "utils_4" + }, + "locked": { + "lastModified": 1673201902, + "narHash": "sha256-Ksisief6KeCiK2aAk3p704X7I0Yhs3szPFNcEp8uLA8=", + "owner": "purs-nix", + "repo": "purs-nix", + "rev": "96bc92023c9f062b8ee3744d5dcc2751b966fdc7", + "type": "github" + }, + "original": { + "owner": "purs-nix", + "repo": "purs-nix", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": [ + "purs-nix", + "nixpkgs" + ], + "purs-nix": "purs-nix", + "utils": "utils_5" + } + }, + "rust-analyzer-src": { + "flake": false, + "locked": { + "lastModified": 1655507737, + "narHash": "sha256-o+AqNsjL6o2RHh4InZHQVpkmqg570YFJL4Db8mKq+fs=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "12dd81092e37df28b7a3591cae9675e668927198", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + }, + "rust-analyzer-src_2": { + "flake": false, + "locked": { + "lastModified": 1655507737, + "narHash": "sha256-o+AqNsjL6o2RHh4InZHQVpkmqg570YFJL4Db8mKq+fs=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "12dd81092e37df28b7a3591cae9675e668927198", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + }, + "rust-analyzer-src_3": { + "flake": false, + "locked": { + "lastModified": 1645205556, + "narHash": "sha256-e4lZW3qRyOEJ+vLKFQP7m2Dxh5P44NrnekZYLxlucww=", + "owner": "rust-analyzer", + "repo": "rust-analyzer", + "rev": "acf5874b39f3dc5262317a6074d9fc7285081161", + "type": "github" + }, + "original": { + "owner": "rust-analyzer", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + }, + "statix": { + "inputs": { + "fenix": "fenix_3", + "gitignore": "gitignore", + "nixpkgs": "nixpkgs_9" + }, + "locked": { + "lastModified": 1657460333, + "narHash": "sha256-5o6zMBASEsGKtjKDb3SizJnN9A7qpOcbzWBXsacfMyc=", + "owner": "nerdypepper", + "repo": "statix", + "rev": "6422c959d365dee2fda5eda8858fefad31f17b25", + "type": "github" + }, + "original": { + "owner": "nerdypepper", + "repo": "statix", + "type": "github" + } + }, + "utils": { + "locked": { + "lastModified": 1653893745, + "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "utils_2": { + "locked": { + "lastModified": 1653893745, + "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "utils_3": { + "inputs": { + "flake-utils": "flake-utils" + }, + "locked": { + "lastModified": 1656044990, + "narHash": "sha256-f01BB7CaOyntOab9XnpH9HD63rGcnu2iyL4M2ubs5F8=", + "owner": "ursi", + "repo": "flake-utils", + "rev": "f53b674a2c90f6202a2f4cd491aba121775490b5", + "type": "github" + }, + "original": { + "owner": "ursi", + "ref": "8", + "repo": "flake-utils", + "type": "github" + } + }, + "utils_4": { + "inputs": { + "flake-utils": "flake-utils_2" + }, + "locked": { + "lastModified": 1656044990, + "narHash": "sha256-f01BB7CaOyntOab9XnpH9HD63rGcnu2iyL4M2ubs5F8=", + "owner": "ursi", + "repo": "flake-utils", + "rev": "f53b674a2c90f6202a2f4cd491aba121775490b5", + "type": "github" + }, + "original": { + "owner": "ursi", + "ref": "8", + "repo": "flake-utils", + "type": "github" + } + }, + "utils_5": { + "inputs": { + "flake-utils": "flake-utils_3" + }, + "locked": { + "lastModified": 1658606827, + "narHash": "sha256-3kSWTDpV4+uApt/Xd0kv2m7TR1Y6A7SgYUeX86/qYuU=", + "owner": "ursi", + "repo": "flake-utils", + "rev": "faec5f7431da6747a69957a9cd65e35b5173e10a", + "type": "github" + }, + "original": { + "owner": "ursi", + "repo": "flake-utils", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/purs-nix/flake.nix b/purs-nix/flake.nix new file mode 100644 index 0000000..31de9fb --- /dev/null +++ b/purs-nix/flake.nix @@ -0,0 +1,71 @@ +{ + inputs = { + purs-nix.url = "github:purs-nix/purs-nix"; + nixpkgs.follows = "purs-nix/nixpkgs"; + utils.url = "github:ursi/flake-utils"; + }; + + outputs = { self, utils, ... }@inputs: + let + # TODO add missing arm to match standard systems + # right now purs-nix is only compatible with x86_64-linux + systems = [ "x86_64-linux" ]; + in + utils.apply-systems + { inherit inputs systems; } + ({ system, pkgs, ... }: + let + purs-nix = inputs.purs-nix { inherit system; }; + ps = purs-nix.purs + { + # Project dir (src, test) + dir = ./.; + # Dependencies + dependencies = + with purs-nix.ps-pkgs; + [ + prelude + console + effect + ]; + # FFI dependencies + # foreign.Main.node_modules = []; + }; + ps-command = ps.command { }; + in + { + packages.default = ps.output { }; + + devShells.default = + pkgs.mkShell + { + packages = + with pkgs; + [ + ps-command + # optional devShell tools + # ps-tools.for-0_15.purescript-language-server + # purs-nix.esbuild + # purs-nix.purescript + # nodejs + ]; + }; + }); + + # --- Flake Local Nix Configuration ---------------------------- + nixConfig = { + # This sets the flake to use nix cache. + # Nix should ask for permission before using it, + # but remove it here if you do not want it to. + extra-substituters = [ + "https://cache.nixos.org" + "https://cache.iog.io" + "https://klarkc.cachix.org" + ]; + extra-trusted-public-keys = [ + "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" + "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" + "klarkc.cachix.org-1:R+z+m4Cq0hMgfZ7AQ42WRpGuHJumLLx3k0XhwpNFq9U=" + ]; + }; +} diff --git a/purs-nix/src/hello.purs b/purs-nix/src/hello.purs new file mode 100644 index 0000000..4d21771 --- /dev/null +++ b/purs-nix/src/hello.purs @@ -0,0 +1,9 @@ +module Main where + +import Prelude (Unit) + +import Effect (Effect) +import Effect.Console (log) + +main :: Effect Unit +main = log "Hello, World!"