diff --git a/.gitignore b/.gitignore index 307f9c0..b215c44 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ /bower_components/ /node_modules/ /output/ +package-lock.json diff --git a/LICENSE b/LICENSE index 58b0299..311379c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,20 +1,26 @@ -The MIT License (MIT) +Copyright 2018 PureScript -Copyright (c) 2014 PureScript +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: -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: +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. -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. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/bower.json b/bower.json index 1cf3587..3f8098d 100644 --- a/bower.json +++ b/bower.json @@ -1,8 +1,7 @@ { "name": "purescript-control", "homepage": "https://github.com/purescript/purescript-control", - "description": "Common control classes and utility functions", - "license": "MIT", + "license": "BSD-3-Clause", "repository": { "type": "git", "url": "git://github.com/purescript/purescript-control.git" @@ -17,9 +16,9 @@ "package.json" ], "dependencies": { - "purescript-prelude": "^3.0.0" + "purescript-prelude": "^4.0.0" }, "devDependencies": { - "purescript-eff": "^3.1.0" + "purescript-effect": "^2.0.0" } } diff --git a/package.json b/package.json index c3124b2..5a4bff0 100644 --- a/package.json +++ b/package.json @@ -6,8 +6,8 @@ "test": "pulp test" }, "devDependencies": { - "pulp": "^12.0.1", - "purescript-psa": "^0.5.0-rc.1", - "rimraf": "^2.6.1" + "pulp": "^12.2.0", + "purescript-psa": "^0.6.0", + "rimraf": "^2.6.2" } } diff --git a/src/Control/Extend.purs b/src/Control/Extend.purs index 28e1523..367ccd5 100644 --- a/src/Control/Extend.purs +++ b/src/Control/Extend.purs @@ -6,7 +6,7 @@ module Control.Extend , module Data.Functor ) where -import Control.Category (id) +import Control.Category (identity) import Data.Functor (class Functor, map, void, ($>), (<#>), (<$), (<$>)) import Data.Semigroup (class Semigroup, (<>)) @@ -56,4 +56,4 @@ infixr 1 composeCoKleisliFlipped as =<= -- | -- | `duplicate` is dual to `Control.Bind.join`. duplicate :: forall a w. Extend w => w a -> w (w a) -duplicate = extend id +duplicate = extend identity diff --git a/src/Control/Lazy.purs b/src/Control/Lazy.purs index 5d51cb7..3434d09 100644 --- a/src/Control/Lazy.purs +++ b/src/Control/Lazy.purs @@ -20,4 +20,6 @@ instance lazyUnit :: Lazy Unit where -- | -- | The `Lazy` instance allows us to generate the result lazily. fix :: forall l. Lazy l => (l -> l) -> l -fix f = defer (\_ -> f (fix f)) +fix f = go + where + go = defer \_ -> f go diff --git a/test/Test/Control/Lazy.purs b/test/Test/Control/Lazy.purs index 9cb8ad9..632ca61 100644 --- a/test/Test/Control/Lazy.purs +++ b/test/Test/Control/Lazy.purs @@ -1,9 +1,9 @@ module Test.Control.Lazy (testLazy) where import Control.Applicative (pure) -import Control.Monad.Eff (Eff) import Control.Lazy (fix) import Data.Unit (Unit, unit) +import Effect (Effect) foo :: forall a. a -> Unit foo _ = unit @@ -15,5 +15,5 @@ foo' :: forall a. a -> Unit foo' = fix foofoo -- the idea here is that foo and foo' are the same function -testLazy :: Eff () Unit +testLazy :: Effect Unit testLazy = pure (foo' unit) diff --git a/test/Test/Main.purs b/test/Test/Main.purs index daeea6e..32756eb 100644 --- a/test/Test/Main.purs +++ b/test/Test/Main.purs @@ -1,9 +1,9 @@ module Test.Main (main) where -import Control.Monad.Eff (Eff) +import Effect (Effect) import Data.Unit (Unit) import Test.Control.Lazy (testLazy) -main :: Eff () Unit +main :: Effect Unit main = testLazy