From 48bd3a6a5b343b5526e8a4f758652515a061f9f1 Mon Sep 17 00:00:00 2001 From: Phil Freeman Date: Sun, 5 Mar 2017 16:38:29 -0800 Subject: [PATCH 1/2] Add effect kind --- src/Control/Monad/Eff.purs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/Control/Monad/Eff.purs b/src/Control/Monad/Eff.purs index 425407e..1149c3a 100644 --- a/src/Control/Monad/Eff.purs +++ b/src/Control/Monad/Eff.purs @@ -1,5 +1,6 @@ module Control.Monad.Eff - ( Eff + ( kind Effect + , Eff , Pure , runPure , untilE, whileE, forE, foreachE @@ -13,6 +14,17 @@ import Control.Monad (class Monad, ap) import Data.Functor (class Functor) import Data.Unit (Unit) +-- | The kind of all effect types. +-- | +-- | Declare new effect types using `foreign data` declarations, as follows: +-- | +-- | ```purescript +-- | import Control.Monad.Eff (kind Effect) +-- | +-- | foreign import data MyEffect :: Effect +-- | ``` +foreign import kind Effect + -- | The `Eff` type constructor is used to represent _native_ effects. -- | -- | See [Handling Native Effects with the Eff Monad](http://www.purescript.org/learn/eff/) @@ -21,7 +33,7 @@ import Data.Unit (Unit) -- | The first type parameter is a row of effects which represents the contexts -- | in which a computation can be run, and the second type parameter is the -- | return type. -foreign import data Eff :: # ! -> * -> * +foreign import data Eff :: # Effect -> Type -> Type instance functorEff :: Functor (Eff e) where map = liftA1 From 254502e8b42935c71623a3873ba84ca20e15f13d Mon Sep 17 00:00:00 2001 From: Gary Burgess Date: Sun, 12 Mar 2017 11:56:36 +0000 Subject: [PATCH 2/2] Update dependency --- .eslintrc.json | 28 ++++++++++++++++++++++++++++ .gitignore | 3 +-- .jscsrc | 17 ----------------- .jshintrc | 20 -------------------- .travis.yml | 2 +- bower.json | 2 +- package.json | 11 +++++------ 7 files changed, 36 insertions(+), 47 deletions(-) create mode 100644 .eslintrc.json delete mode 100644 .jscsrc delete mode 100644 .jshintrc diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..39963d3 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,28 @@ +{ + "parserOptions": { + "ecmaVersion": 5 + }, + "extends": "eslint:recommended", + "env": { + "commonjs": true + }, + "rules": { + "strict": [2, "global"], + "block-scoped-var": 2, + "consistent-return": 2, + "eqeqeq": [2, "smart"], + "guard-for-in": 2, + "no-caller": 2, + "no-extend-native": 2, + "no-loop-func": 2, + "no-new": 2, + "no-param-reassign": 2, + "no-return-assign": 2, + "no-unused-expressions": 2, + "no-use-before-define": 2, + "radix": [2, "always"], + "indent": [2, 2, { "SwitchCase": 1 }], + "quotes": [2, "double"], + "semi": [2, "always"] + } +} diff --git a/.gitignore b/.gitignore index e306283..7050558 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ /.* !/.gitignore -!/.jscsrc -!/.jshintrc +!/.eslintrc.json !/.travis.yml /bower_components/ /node_modules/ diff --git a/.jscsrc b/.jscsrc deleted file mode 100644 index 2561ce9..0000000 --- a/.jscsrc +++ /dev/null @@ -1,17 +0,0 @@ -{ - "preset": "grunt", - "disallowSpacesInFunctionExpression": null, - "requireSpacesInFunctionExpression": { - "beforeOpeningRoundBrace": true, - "beforeOpeningCurlyBrace": true - }, - "disallowSpacesInAnonymousFunctionExpression": null, - "requireSpacesInAnonymousFunctionExpression": { - "beforeOpeningRoundBrace": true, - "beforeOpeningCurlyBrace": true - }, - "disallowSpacesInsideObjectBrackets": null, - "requireSpacesInsideObjectBrackets": "all", - "validateQuoteMarks": "\"", - "requireCurlyBraces": null -} diff --git a/.jshintrc b/.jshintrc deleted file mode 100644 index 620d8d7..0000000 --- a/.jshintrc +++ /dev/null @@ -1,20 +0,0 @@ -{ - "bitwise": true, - "eqeqeq": true, - "forin": true, - "freeze": true, - "funcscope": true, - "futurehostile": true, - "strict": "global", - "latedef": true, - "maxparams": 1, - "noarg": true, - "nocomma": true, - "nonew": true, - "notypeof": true, - "singleGroups": true, - "undef": true, - "unused": true, - "eqnull": true, - "predef": ["exports"] -} diff --git a/.travis.yml b/.travis.yml index f9843c2..27b95cd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ language: node_js dist: trusty sudo: required -node_js: 6 +node_js: stable env: - PATH=$HOME/purescript:$PATH install: diff --git a/bower.json b/bower.json index 2fc2582..b92f6fd 100644 --- a/bower.json +++ b/bower.json @@ -17,6 +17,6 @@ "package.json" ], "dependencies": { - "purescript-prelude": "^2.1.0" + "purescript-prelude": "^3.0.0" } } diff --git a/package.json b/package.json index b4cf24e..26d81a7 100644 --- a/package.json +++ b/package.json @@ -2,13 +2,12 @@ "private": true, "scripts": { "clean": "rimraf output && rimraf .pulp-cache", - "build": "jshint src && jscs src && pulp build --censor-lib --strict" + "build": "eslint src && pulp build -- --censor-lib --strict" }, "devDependencies": { - "jscs": "^2.8.0", - "jshint": "^2.9.1", - "pulp": "^9.0.1", - "purescript-psa": "^0.3.9", - "rimraf": "^2.5.0" + "eslint": "^3.17.1", + "pulp": "^10.0.4", + "purescript-psa": "^0.5.0-rc.1", + "rimraf": "^2.6.1" } }