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