Initial commit
This commit is contained in:
commit
422d506c13
7
.envrc.example
Normal file
7
.envrc.example
Normal file
@ -0,0 +1,7 @@
|
||||
use_flake() {
|
||||
watch_file flake.nix
|
||||
watch_file flake.lock
|
||||
eval "$(nix print-dev-env --profile "$(direnv_layout_dir)/flake-profile")"
|
||||
}
|
||||
|
||||
use flake
|
14
.gitignore
vendored
Normal file
14
.gitignore
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
/bower_components/
|
||||
/node_modules/
|
||||
/.pulp-cache/
|
||||
/output/
|
||||
/.psci*
|
||||
/src/.webpack.js
|
||||
/setupPath.sh
|
||||
/.idea
|
||||
/.spago
|
||||
.psa-stash
|
||||
.psc-ide-port
|
||||
.direnv
|
||||
.envrc
|
||||
*.log
|
1
.pre-commit-config.yaml
Symbolic link
1
.pre-commit-config.yaml
Symbolic link
@ -0,0 +1 @@
|
||||
/nix/store/r7s3jvfc7xbn4vny6jrg0n8gayzs22f6-pre-commit-config.json
|
1
.purs-repl
Normal file
1
.purs-repl
Normal file
@ -0,0 +1 @@
|
||||
import Prelude
|
346
.tidyoperators
Normal file
346
.tidyoperators
Normal file
@ -0,0 +1,346 @@
|
||||
Control.Alt.($>) 4
|
||||
Control.Alt.(<#>) 1
|
||||
Control.Alt.(<$) 4
|
||||
Control.Alt.(<$>) 4
|
||||
Control.Alt.(<@>) 4
|
||||
Control.Alt.(<|>) 3
|
||||
Control.Alternative.($>) 4
|
||||
Control.Alternative.(*>) 4
|
||||
Control.Alternative.(<#>) 1
|
||||
Control.Alternative.(<$) 4
|
||||
Control.Alternative.(<$>) 4
|
||||
Control.Alternative.(<*) 4
|
||||
Control.Alternative.(<*>) 4
|
||||
Control.Alternative.(<@>) 4
|
||||
Control.Alternative.(<|>) 3
|
||||
Control.Applicative.($>) 4
|
||||
Control.Applicative.(*>) 4
|
||||
Control.Applicative.(<#>) 1
|
||||
Control.Applicative.(<$) 4
|
||||
Control.Applicative.(<$>) 4
|
||||
Control.Applicative.(<*) 4
|
||||
Control.Applicative.(<*>) 4
|
||||
Control.Applicative.(<@>) 4
|
||||
Control.Apply.($>) 4
|
||||
Control.Apply.(*>) 4
|
||||
Control.Apply.(<#>) 1
|
||||
Control.Apply.(<$) 4
|
||||
Control.Apply.(<$>) 4
|
||||
Control.Apply.(<*) 4
|
||||
Control.Apply.(<*>) 4
|
||||
Control.Apply.(<@>) 4
|
||||
Control.Biapply.(*>>) 4
|
||||
Control.Biapply.(<<$>>) 4
|
||||
Control.Biapply.(<<*) 4
|
||||
Control.Biapply.(<<*>>) 4
|
||||
Control.Bind.($>) 4
|
||||
Control.Bind.(*>) 4
|
||||
Control.Bind.(<#>) 1
|
||||
Control.Bind.(<$) 4
|
||||
Control.Bind.(<$>) 4
|
||||
Control.Bind.(<*) 4
|
||||
Control.Bind.(<*>) 4
|
||||
Control.Bind.(<=<) 1
|
||||
Control.Bind.(<@>) 4
|
||||
Control.Bind.(=<<) 1
|
||||
Control.Bind.(>=>) 1
|
||||
Control.Bind.(>>=) 1
|
||||
Control.Category.(<<<) 9
|
||||
Control.Category.(>>>) 9
|
||||
Control.Comonad.($>) 4
|
||||
Control.Comonad.(<#>) 1
|
||||
Control.Comonad.(<$) 4
|
||||
Control.Comonad.(<$>) 4
|
||||
Control.Comonad.(<<=) 1
|
||||
Control.Comonad.(<@>) 4
|
||||
Control.Comonad.(=<=) 1
|
||||
Control.Comonad.(=>=) 1
|
||||
Control.Comonad.(=>>) 1
|
||||
Control.Comonad.Cofree.(:<) 5
|
||||
Control.Extend.($>) 4
|
||||
Control.Extend.(<#>) 1
|
||||
Control.Extend.(<$) 4
|
||||
Control.Extend.(<$>) 4
|
||||
Control.Extend.(<<=) 1
|
||||
Control.Extend.(<@>) 4
|
||||
Control.Extend.(=<=) 1
|
||||
Control.Extend.(=>=) 1
|
||||
Control.Extend.(=>>) 1
|
||||
Control.Monad.($>) 4
|
||||
Control.Monad.(*>) 4
|
||||
Control.Monad.(<#>) 1
|
||||
Control.Monad.(<$) 4
|
||||
Control.Monad.(<$>) 4
|
||||
Control.Monad.(<*) 4
|
||||
Control.Monad.(<*>) 4
|
||||
Control.Monad.(<=<) 1
|
||||
Control.Monad.(<@>) 4
|
||||
Control.Monad.(=<<) 1
|
||||
Control.Monad.(>=>) 1
|
||||
Control.Monad.(>>=) 1
|
||||
Control.Monad.Morph.(<|<) 2
|
||||
Control.Monad.Morph.(=<|) 2
|
||||
Control.Monad.Morph.(>|>) 2
|
||||
Control.Monad.Morph.(|>=) 2
|
||||
Control.MonadPlus.($>) 4
|
||||
Control.MonadPlus.(*>) 4
|
||||
Control.MonadPlus.(<#>) 1
|
||||
Control.MonadPlus.(<$) 4
|
||||
Control.MonadPlus.(<$>) 4
|
||||
Control.MonadPlus.(<*) 4
|
||||
Control.MonadPlus.(<*>) 4
|
||||
Control.MonadPlus.(<=<) 1
|
||||
Control.MonadPlus.(<@>) 4
|
||||
Control.MonadPlus.(<|>) 3
|
||||
Control.MonadPlus.(=<<) 1
|
||||
Control.MonadPlus.(>=>) 1
|
||||
Control.MonadPlus.(>>=) 1
|
||||
Control.MonadZero.($>) 4
|
||||
Control.MonadZero.(*>) 4
|
||||
Control.MonadZero.(<#>) 1
|
||||
Control.MonadZero.(<$) 4
|
||||
Control.MonadZero.(<$>) 4
|
||||
Control.MonadZero.(<*) 4
|
||||
Control.MonadZero.(<*>) 4
|
||||
Control.MonadZero.(<=<) 1
|
||||
Control.MonadZero.(<@>) 4
|
||||
Control.MonadZero.(<|>) 3
|
||||
Control.MonadZero.(=<<) 1
|
||||
Control.MonadZero.(>=>) 1
|
||||
Control.MonadZero.(>>=) 1
|
||||
Control.Plus.($>) 4
|
||||
Control.Plus.(<#>) 1
|
||||
Control.Plus.(<$) 4
|
||||
Control.Plus.(<$>) 4
|
||||
Control.Plus.(<@>) 4
|
||||
Control.Plus.(<|>) 3
|
||||
Control.Semigroupoid.(<<<) 9
|
||||
Control.Semigroupoid.(>>>) 9
|
||||
Data.Argonaut.(.!=) 6
|
||||
Data.Argonaut.(.:) 7
|
||||
Data.Argonaut.(.:!) 7
|
||||
Data.Argonaut.(.:?) 7
|
||||
Data.Argonaut.(:=) 7
|
||||
Data.Argonaut.(:=?) 7
|
||||
Data.Argonaut.(~>) 6
|
||||
Data.Argonaut.(~>?) 6
|
||||
Data.Argonaut.Decode.(.!=) 6
|
||||
Data.Argonaut.Decode.(.:) 7
|
||||
Data.Argonaut.Decode.(.:!) 7
|
||||
Data.Argonaut.Decode.(.:?) 7
|
||||
Data.Argonaut.Decode.Combinators.(.!=) 6
|
||||
Data.Argonaut.Decode.Combinators.(.:) 7
|
||||
Data.Argonaut.Decode.Combinators.(.:!) 7
|
||||
Data.Argonaut.Decode.Combinators.(.:?) 7
|
||||
Data.Argonaut.Encode.(:=) 7
|
||||
Data.Argonaut.Encode.(:=?) 7
|
||||
Data.Argonaut.Encode.(~>) 6
|
||||
Data.Argonaut.Encode.(~>?) 6
|
||||
Data.Argonaut.Encode.Combinators.(:=) 7
|
||||
Data.Argonaut.Encode.Combinators.(:=?) 7
|
||||
Data.Argonaut.Encode.Combinators.(~>) 6
|
||||
Data.Argonaut.Encode.Combinators.(~>?) 6
|
||||
Data.Array.(!!) 8
|
||||
Data.Array.(..) 8
|
||||
Data.Array.(:) 6
|
||||
Data.Array.(\\) 5
|
||||
Data.Array.NonEmpty.(!!) 8
|
||||
Data.Array.NonEmpty.(..) 8
|
||||
Data.Array.NonEmpty.(:) 6
|
||||
Data.Array.NonEmpty.(\\) 5
|
||||
Data.BooleanAlgebra.(&&) 3
|
||||
Data.BooleanAlgebra.(||) 2
|
||||
Data.Bounded.(<) 4
|
||||
Data.Bounded.(<=) 4
|
||||
Data.Bounded.(>) 4
|
||||
Data.Bounded.(>=) 4
|
||||
Data.CommutativeRing.(*) 7
|
||||
Data.CommutativeRing.(+) 6
|
||||
Data.CommutativeRing.(-) 6
|
||||
Data.DivisionRing.(*) 7
|
||||
Data.DivisionRing.(+) 6
|
||||
Data.DivisionRing.(-) 6
|
||||
Data.Either.Nested.(\/) type 6
|
||||
Data.Either.Nested.(\/) 6
|
||||
Data.Eq.(/=) 4
|
||||
Data.Eq.(==) 4
|
||||
Data.EuclideanRing.(*) 7
|
||||
Data.EuclideanRing.(+) 6
|
||||
Data.EuclideanRing.(-) 6
|
||||
Data.EuclideanRing.(/) 7
|
||||
Data.Field.(*) 7
|
||||
Data.Field.(+) 6
|
||||
Data.Field.(-) 6
|
||||
Data.Field.(/) 7
|
||||
Data.Function.(#) 1
|
||||
Data.Function.($) 0
|
||||
Data.Function.(<<<) 9
|
||||
Data.Function.(>>>) 9
|
||||
Data.Functor.($>) 4
|
||||
Data.Functor.(<#>) 1
|
||||
Data.Functor.(<$) 4
|
||||
Data.Functor.(<$>) 4
|
||||
Data.Functor.(<@>) 4
|
||||
Data.Functor.Contravariant.(>#<) 4
|
||||
Data.Functor.Contravariant.(>$<) 4
|
||||
Data.Functor.Coproduct.Nested.(<\/>) type 6
|
||||
Data.Functor.Coproduct.Nested.(<\/>) 6
|
||||
Data.Functor.Product.Nested.(</\>) type 6
|
||||
Data.Functor.Product.Nested.(</\>) 6
|
||||
Data.HeytingAlgebra.(&&) 3
|
||||
Data.HeytingAlgebra.(||) 2
|
||||
Data.Int.Bits.(.&.) 10
|
||||
Data.Int.Bits.(.^.) 10
|
||||
Data.Int.Bits.(.|.) 10
|
||||
Data.Lens.(%=) 4
|
||||
Data.Lens.(%~) 4
|
||||
Data.Lens.(&&&) 3
|
||||
Data.Lens.(&&=) 4
|
||||
Data.Lens.(&&~) 4
|
||||
Data.Lens.(***) 3
|
||||
Data.Lens.(*=) 4
|
||||
Data.Lens.(*~) 4
|
||||
Data.Lens.(+++) 2
|
||||
Data.Lens.(+=) 4
|
||||
Data.Lens.(+~) 4
|
||||
Data.Lens.(-=) 4
|
||||
Data.Lens.(-~) 4
|
||||
Data.Lens.(.=) 4
|
||||
Data.Lens.(.~) 4
|
||||
Data.Lens.(//=) 4
|
||||
Data.Lens.(//~) 4
|
||||
Data.Lens.(<>=) 4
|
||||
Data.Lens.(<>~) 4
|
||||
Data.Lens.(?=) 4
|
||||
Data.Lens.(?~) 4
|
||||
Data.Lens.(^.) 8
|
||||
Data.Lens.(^..) 8
|
||||
Data.Lens.(^?) 8
|
||||
Data.Lens.(||=) 4
|
||||
Data.Lens.(|||) 2
|
||||
Data.Lens.(||~) 4
|
||||
Data.Lens.Common.(&&&) 3
|
||||
Data.Lens.Common.(***) 3
|
||||
Data.Lens.Common.(+++) 2
|
||||
Data.Lens.Common.(|||) 2
|
||||
Data.Lens.Fold.(^..) 8
|
||||
Data.Lens.Fold.(^?) 8
|
||||
Data.Lens.Fold.Partial.(^?!) 8
|
||||
Data.Lens.Fold.Partial.(^@?!) 8
|
||||
Data.Lens.Getter.(^.) 8
|
||||
Data.Lens.Lens.Tuple.(&&&) 3
|
||||
Data.Lens.Lens.Tuple.(***) 3
|
||||
Data.Lens.Prism.Either.(+++) 2
|
||||
Data.Lens.Prism.Either.(|||) 2
|
||||
Data.Lens.Setter.(%=) 4
|
||||
Data.Lens.Setter.(%~) 4
|
||||
Data.Lens.Setter.(&&=) 4
|
||||
Data.Lens.Setter.(&&~) 4
|
||||
Data.Lens.Setter.(*=) 4
|
||||
Data.Lens.Setter.(*~) 4
|
||||
Data.Lens.Setter.(+=) 4
|
||||
Data.Lens.Setter.(+~) 4
|
||||
Data.Lens.Setter.(-=) 4
|
||||
Data.Lens.Setter.(-~) 4
|
||||
Data.Lens.Setter.(.=) 4
|
||||
Data.Lens.Setter.(.~) 4
|
||||
Data.Lens.Setter.(//=) 4
|
||||
Data.Lens.Setter.(//~) 4
|
||||
Data.Lens.Setter.(<>=) 4
|
||||
Data.Lens.Setter.(<>~) 4
|
||||
Data.Lens.Setter.(?=) 4
|
||||
Data.Lens.Setter.(?~) 4
|
||||
Data.Lens.Setter.(||=) 4
|
||||
Data.Lens.Setter.(||~) 4
|
||||
Data.List.(!!) 8
|
||||
Data.List.(..) 8
|
||||
Data.List.(:) 6
|
||||
Data.List.(\\) 5
|
||||
Data.List.Lazy.(!!) 8
|
||||
Data.List.Lazy.(..) 8
|
||||
Data.List.Lazy.(:) 6
|
||||
Data.List.Lazy.(\\) 5
|
||||
Data.List.Lazy.NonEmpty.(:) 6
|
||||
Data.List.Lazy.Types.(:) 6
|
||||
Data.List.NonEmpty.(!!) 8
|
||||
Data.List.NonEmpty.(:) 6
|
||||
Data.List.Types.(:) 6
|
||||
Data.Monoid.(<>) 5
|
||||
Data.NaturalTransformation.(~>) type 4
|
||||
Data.NonEmpty.(:|) 5
|
||||
Data.Number.Approximate.(~=) 4
|
||||
Data.Number.Approximate.(≅) 4
|
||||
Data.Number.Approximate.(≇) 4
|
||||
Data.Ord.(<) 4
|
||||
Data.Ord.(<=) 4
|
||||
Data.Ord.(>) 4
|
||||
Data.Ord.(>=) 4
|
||||
Data.Profunctor.Choice.(+++) 2
|
||||
Data.Profunctor.Choice.(|||) 2
|
||||
Data.Profunctor.Strong.(&&&) 3
|
||||
Data.Profunctor.Strong.(***) 3
|
||||
Data.Ring.(*) 7
|
||||
Data.Ring.(+) 6
|
||||
Data.Ring.(-) 6
|
||||
Data.Semigroup.(<>) 5
|
||||
Data.Semiring.(*) 7
|
||||
Data.Semiring.(+) 6
|
||||
Data.Tuple.Nested.(/\) type 6
|
||||
Data.Tuple.Nested.(/\) 6
|
||||
Foreign.Index.(!) 9
|
||||
Math.(%) 7
|
||||
Pipes.(<-<) 7
|
||||
Pipes.(<~) 4
|
||||
Pipes.(>->) 7
|
||||
Pipes.(>~) 5
|
||||
Pipes.(~<) 5
|
||||
Pipes.(~>) 4
|
||||
Pipes.Core.(+>>) 6
|
||||
Pipes.Core.(//<) 4
|
||||
Pipes.Core.(//>) 4
|
||||
Pipes.Core.(/</) 4
|
||||
Pipes.Core.(/>/) 4
|
||||
Pipes.Core.(<+<) 7
|
||||
Pipes.Core.(<<+) 6
|
||||
Pipes.Core.(<\\) 3
|
||||
Pipes.Core.(<~<) 8
|
||||
Pipes.Core.(>+>) 7
|
||||
Pipes.Core.(>>~) 7
|
||||
Pipes.Core.(>\\) 5
|
||||
Pipes.Core.(>~>) 8
|
||||
Pipes.Core.(\<\) 4
|
||||
Pipes.Core.(\>\) 4
|
||||
Pipes.Core.(~<<) 7
|
||||
Prelude.(~>) type 4
|
||||
Prelude.(#) 1
|
||||
Prelude.($) 0
|
||||
Prelude.($>) 4
|
||||
Prelude.(&&) 3
|
||||
Prelude.(*) 7
|
||||
Prelude.(*>) 4
|
||||
Prelude.(+) 6
|
||||
Prelude.(-) 6
|
||||
Prelude.(/) 7
|
||||
Prelude.(/=) 4
|
||||
Prelude.(<) 4
|
||||
Prelude.(<#>) 1
|
||||
Prelude.(<$) 4
|
||||
Prelude.(<$>) 4
|
||||
Prelude.(<*) 4
|
||||
Prelude.(<*>) 4
|
||||
Prelude.(<<<) 9
|
||||
Prelude.(<=) 4
|
||||
Prelude.(<=<) 1
|
||||
Prelude.(<>) 5
|
||||
Prelude.(<@>) 4
|
||||
Prelude.(=<<) 1
|
||||
Prelude.(==) 4
|
||||
Prelude.(>) 4
|
||||
Prelude.(>=) 4
|
||||
Prelude.(>=>) 1
|
||||
Prelude.(>>=) 1
|
||||
Prelude.(>>>) 9
|
||||
Prelude.(||) 2
|
||||
Type.Function.($) type 0
|
||||
Type.Prelude.(+) type 0
|
||||
Type.Row.(+) type 0
|
10
.tidyrc.json
Normal file
10
.tidyrc.json
Normal file
@ -0,0 +1,10 @@
|
||||
{
|
||||
"importSort": "ide",
|
||||
"importWrap": "auto",
|
||||
"indent": 2,
|
||||
"operatorsFile": ".tidyoperators",
|
||||
"ribbon": 1,
|
||||
"typeArrowPlacement": "first",
|
||||
"unicode": "never",
|
||||
"width": 80
|
||||
}
|
21
LICENSE
Normal file
21
LICENSE
Normal file
@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015 PureScript Contrib
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
3
README.md
Normal file
3
README.md
Normal file
@ -0,0 +1,3 @@
|
||||
# purescript-unlift
|
||||
|
||||
MonadBase, MonadUnlift, MonadUnliftEffect, and MonadUnliftAff
|
188
flake.lock
Normal file
188
flake.lock
Normal file
@ -0,0 +1,188 @@
|
||||
{
|
||||
"nodes": {
|
||||
"easy-purescript-nix": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1646209831,
|
||||
"narHash": "sha256-or8Z6aMWdrqcmFA0hhjjb6FIiW14C0ruwXAqy+zYZ8g=",
|
||||
"owner": "justinwoo",
|
||||
"repo": "easy-purescript-nix",
|
||||
"rev": "aa72388ca0fb72ed64467f59a121db1f104897db",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "justinwoo",
|
||||
"repo": "easy-purescript-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"locked": {
|
||||
"lastModified": 1644229661,
|
||||
"narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"locked": {
|
||||
"lastModified": 1619345332,
|
||||
"narHash": "sha256-qHnQkEp1uklKTpx3MvKtY6xzgcqXDsz5nLilbbuL+3A=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "2ebf2558e5bf978c7fb8ea927dfaed8fefab2e28",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1646480205,
|
||||
"narHash": "sha256-kekOlTlu45vuK2L9nq8iVN17V3sB0WWPqTTW3a2SQG0=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "bff2832ec341cf30acb3a4d3e2e7f1f7b590116a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"naersk": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1639947939,
|
||||
"narHash": "sha256-pGsM8haJadVP80GFq4xhnSpNitYNQpaXk4cnA796Cso=",
|
||||
"owner": "nix-community",
|
||||
"repo": "naersk",
|
||||
"rev": "2fc8ce9d3c025d59fee349c1f80be9785049d653",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "naersk",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1647321545,
|
||||
"narHash": "sha256-alnh5Pc73jdXAiN17G9AfhYEf2aURsTMXa/DXLiA3MI=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "be872a7453a176df625c12190b8a6c10f6b21647",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1647321545,
|
||||
"narHash": "sha256-alnh5Pc73jdXAiN17G9AfhYEf2aURsTMXa/DXLiA3MI=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "be872a7453a176df625c12190b8a6c10f6b21647",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"pre-commit-hooks": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_2",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1646153636,
|
||||
"narHash": "sha256-AlWHMzK+xJ1mG267FdT8dCq/HvLCA6jwmx2ZUy5O8tY=",
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"rev": "b6bc0b21e1617e2b07d8205e7fae7224036dfa4b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"rnix-lsp": {
|
||||
"inputs": {
|
||||
"naersk": "naersk",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"utils": "utils"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1647240246,
|
||||
"narHash": "sha256-/MLdBWfFUN1C1eNVBYfaVAIcDiZKXpWEbzBC2pqVXj0=",
|
||||
"owner": "nix-community",
|
||||
"repo": "rnix-lsp",
|
||||
"rev": "4d1024ccfe1bc569811769d1ef52a2fc6c1d482d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "rnix-lsp",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"easy-purescript-nix": "easy-purescript-nix",
|
||||
"flake-utils": "flake-utils",
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"pre-commit-hooks": "pre-commit-hooks",
|
||||
"rnix-lsp": "rnix-lsp"
|
||||
}
|
||||
},
|
||||
"utils": {
|
||||
"locked": {
|
||||
"lastModified": 1638122382,
|
||||
"narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "74f7e4319258e287b0f9cb95426c9853b282730b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
175
flake.nix
Normal file
175
flake.nix
Normal file
@ -0,0 +1,175 @@
|
||||
{
|
||||
description = "MonadBase, MonadUnlift, MonadUnliftEffect, and MonadUnliftAff";
|
||||
|
||||
inputs = {
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||
pre-commit-hooks = {
|
||||
url = "github:cachix/pre-commit-hooks.nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
easy-purescript-nix = {
|
||||
url = "github:justinwoo/easy-purescript-nix";
|
||||
flake = false;
|
||||
};
|
||||
rnix-lsp = {
|
||||
url = "github:nix-community/rnix-lsp";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
gitignore = {
|
||||
url = "github:hercules-ci/gitignore.nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, pre-commit-hooks, flake-utils, easy-purescript-nix, rnix-lsp, gitignore }:
|
||||
flake-utils.lib.eachDefaultSystem
|
||||
(system:
|
||||
let
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
easy-ps = import easy-purescript-nix { inherit pkgs; };
|
||||
spagoPkgs = import ./spago-packages.nix { inherit pkgs; };
|
||||
|
||||
inherit (gitignore.lib) gitignoreSource;
|
||||
inherit (easy-ps) dhall-simple purs-tidy spago psa purs;
|
||||
inherit (pkgs) git writeShellScriptBin nodePackages mkShell nodejs nixpkgs-fmt;
|
||||
inherit (nodePackages) prettier;
|
||||
inherit (builtins) concatStringsSep;
|
||||
|
||||
src = gitignoreSource ./.;
|
||||
|
||||
|
||||
writeShellScriptBinInRepoRoot = name: script: writeShellScriptBin name ''
|
||||
cd `${git}/bin/git rev-parse --show-toplevel`
|
||||
${script}
|
||||
'';
|
||||
|
||||
extensionsToRegex = extensions: "\\.(${concatStringsSep "|" extensions})";
|
||||
|
||||
formatter = name: cmd: extensions: ''
|
||||
echo formatting with ${name}
|
||||
${git}/bin/git ls-files | grep -E '${extensionsToRegex extensions}' | xargs -d $'\\n' ${cmd}
|
||||
'';
|
||||
|
||||
dhall-batch = writeShellScriptBin "dhall" ''
|
||||
for f in "$@"; do ${dhall-simple}/bin/dhall format --inplace $f; done
|
||||
'';
|
||||
|
||||
purs-tidy-hook = {
|
||||
enable = true;
|
||||
name = "purs-tidy";
|
||||
entry = "${purs-tidy}/bin/purs-tidy format-in-place";
|
||||
files = "\\.purs$";
|
||||
language = "system";
|
||||
};
|
||||
|
||||
dhall-hook = {
|
||||
enable = true;
|
||||
name = "dhall";
|
||||
entry = "${dhall-batch}/bin/dhall";
|
||||
files = "\\.dhall$";
|
||||
language = "system";
|
||||
};
|
||||
|
||||
prettier-hook = {
|
||||
enable = true;
|
||||
types_or = [ "javascript" "css" "html" ];
|
||||
};
|
||||
|
||||
pre-commit-check = pre-commit-hooks.lib.${system}.run {
|
||||
inherit src;
|
||||
hooks = {
|
||||
nixpkgs-fmt = {
|
||||
enable = true;
|
||||
excludes = [ ".*spago-packages.nix$" ];
|
||||
};
|
||||
prettier = prettier-hook;
|
||||
inherit purs-tidy-hook dhall-hook;
|
||||
};
|
||||
};
|
||||
|
||||
clean = writeShellScriptBinInRepoRoot "clean" ''
|
||||
echo cleaning project...
|
||||
rm -rf .spago .spago2nix output .psa-stash
|
||||
echo removed .spago
|
||||
echo removed .spago2nix
|
||||
echo removed .psa-stash
|
||||
echo removed output
|
||||
echo done.
|
||||
'';
|
||||
|
||||
psa-args = "--strict --stash --censor-lib";
|
||||
|
||||
runSpago = cmd: ''
|
||||
${spago}/bin/spago ${cmd} --purs-args "${psa-args} --stash"
|
||||
'';
|
||||
|
||||
getGlob = { name, version, ... }: ''".spago/${name}/${version}/src/**/*.purs"'';
|
||||
|
||||
spagoSources =
|
||||
builtins.toString
|
||||
(builtins.map getGlob (builtins.attrValues spagoPkgs.inputs));
|
||||
|
||||
build = writeShellScriptBin "build" (runSpago "build");
|
||||
test = writeShellScriptBin "test" (runSpago "test");
|
||||
clean-build = writeShellScriptBin "clean-build" ''
|
||||
${clean}/bin/clean
|
||||
${build}/bin/build
|
||||
'';
|
||||
|
||||
format = writeShellScriptBin "format" ''
|
||||
set -e
|
||||
${formatter "purs-tidy" "${purs-tidy}/bin/purs-tidy format-in-place" ["purs"]}
|
||||
${formatter "dhall" "${dhall-batch}/bin/dhall" ["dhall"]}
|
||||
${formatter "prettier" "${prettier}/bin/prettier -w" ["js" "ts" "css" "html"]
|
||||
}
|
||||
echo done.
|
||||
'';
|
||||
|
||||
unlift =
|
||||
pkgs.stdenv.mkDerivation {
|
||||
name = "purescript-unlift";
|
||||
buildInputs = [
|
||||
spagoPkgs.installSpagoStyle
|
||||
];
|
||||
nativeBuildInputs = [ psa purs nodejs ];
|
||||
inherit src;
|
||||
unpackPhase = ''
|
||||
cp $src .
|
||||
install-spago-style
|
||||
'';
|
||||
buildPhase = ''
|
||||
set -e
|
||||
echo building project...
|
||||
psa compile ${psa-args} ${spagoSources} "./src/**/*.purs"
|
||||
echo done.
|
||||
'';
|
||||
installPhase = ''
|
||||
mkdir $out
|
||||
mv output $out/
|
||||
'';
|
||||
doCheck = true;
|
||||
checkPhase = ''
|
||||
psa compile ${psa-args} ${spagoSources} "./src/**/*.purs" "./test/**/*.purs"
|
||||
node ./test.js
|
||||
'';
|
||||
};
|
||||
|
||||
in
|
||||
{
|
||||
defaultPackage = unlift;
|
||||
devShell = mkShell {
|
||||
buildInputs = [
|
||||
build
|
||||
clean
|
||||
clean-build
|
||||
format
|
||||
nixpkgs-fmt
|
||||
rnix-lsp.defaultPackage."${system}"
|
||||
test
|
||||
] ++ easy-ps.buildInputs;
|
||||
inherit (pre-commit-check) shellHook;
|
||||
};
|
||||
}
|
||||
);
|
||||
}
|
4
packages.dhall
Normal file
4
packages.dhall
Normal file
@ -0,0 +1,4 @@
|
||||
let upstream =
|
||||
https://github.com/purescript/package-sets/releases/download/psc-0.14.7-20220303/packages.dhall sha256:d7cbc15ea16768e4a4f99baa58a54559dd2648c6c1362de2469d9e41c23b28c3
|
||||
|
||||
in upstream
|
5
spago.dhall
Normal file
5
spago.dhall
Normal file
@ -0,0 +1,5 @@
|
||||
{ name = "servant-support"
|
||||
, dependencies = []
|
||||
, packages = ./packages.dhall
|
||||
, sources = [ "src/**/*.purs" ]
|
||||
}
|
Loading…
Reference in New Issue
Block a user