From 0bd5649ec6d6ca5874c2197060eb83da299c2ba2 Mon Sep 17 00:00:00 2001 From: Konstantin Zudov Date: Mon, 17 Oct 2016 21:11:59 +0300 Subject: [PATCH 1/6] Update dependencies --- bower.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/bower.json b/bower.json index 37eb943..d7d240a 100644 --- a/bower.json +++ b/bower.json @@ -14,11 +14,11 @@ "package.json" ], "dependencies": { - "purescript-prelude": "^1.0.1", - "purescript-globals": "^1.0.0", - "purescript-generics": "^1.0.0", - "purescript-maybe": "^1.0.0", - "purescript-strings": "^1.0.0", - "purescript-tuples": "^1.0.0" + "purescript-prelude": "^2.0.0", + "purescript-globals": "^2.0.0", + "purescript-generics": "^3.0.0", + "purescript-maybe": "^2.0.0", + "purescript-strings": "^2.0.0", + "purescript-tuples": "^3.0.0" } } From 9eb35f1b717a7f87769a9168fac8ceaca84a2019 Mon Sep 17 00:00:00 2001 From: Konstantin Zudov Date: Mon, 17 Oct 2016 21:14:44 +0300 Subject: [PATCH 2/6] Define instances using newtype deriving --- src/Data/FormURLEncoded.purs | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/src/Data/FormURLEncoded.purs b/src/Data/FormURLEncoded.purs index 0965f42..132b7aa 100644 --- a/src/Data/FormURLEncoded.purs +++ b/src/Data/FormURLEncoded.purs @@ -5,11 +5,11 @@ module Data.FormURLEncoded , encode ) where -import Prelude (class Show, class Ord, class Eq, map, (<<<), (<>), compare, eq) +import Prelude (class Show, class Ord, class Eq, map, (<<<), (<>)) import Data.String (joinWith) as String import Data.Maybe (Maybe(..)) import Data.Tuple (Tuple(..)) -import Data.Generic (class Generic, gShow) +import Data.Generic (class Generic) import Global (encodeURIComponent) @@ -27,15 +27,9 @@ toArray :: FormURLEncoded -> Array (Tuple String (Maybe String)) toArray (FormURLEncoded a) = a derive instance genericFormUrlEncoded :: Generic FormURLEncoded - -instance eqFormUrlEncoded :: Eq FormURLEncoded where - eq (FormURLEncoded a) (FormURLEncoded b) = eq a b - -instance ordFormUrlEncoded :: Ord FormURLEncoded where - compare (FormURLEncoded a) (FormURLEncoded b) = compare a b - -instance showFormUrlEncoded :: Show FormURLEncoded where - show = gShow +derive newtype instance eqFormUrlEncoded :: Eq FormURLEncoded +derive newtype instance ordFormUrlEncoded :: Ord FormURLEncoded +derive newtype instance showFormUrlEncoded :: Show FormURLEncoded -- | Encode `FormURLEncoded` as `application/x-www-form-urlencoded`. encode :: FormURLEncoded -> String From 429d535c5fc4274339ca2f70c2e0fd9fcf09398b Mon Sep 17 00:00:00 2001 From: Konstantin Zudov Date: Mon, 17 Oct 2016 21:24:27 +0300 Subject: [PATCH 3/6] Derive Semigroup and Monoid --- src/Data/FormURLEncoded.purs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/Data/FormURLEncoded.purs b/src/Data/FormURLEncoded.purs index 132b7aa..5657e28 100644 --- a/src/Data/FormURLEncoded.purs +++ b/src/Data/FormURLEncoded.purs @@ -5,13 +5,14 @@ module Data.FormURLEncoded , encode ) where -import Prelude (class Show, class Ord, class Eq, map, (<<<), (<>)) -import Data.String (joinWith) as String +import Data.Generic (class Generic) import Data.Maybe (Maybe(..)) +import Data.Monoid (class Monoid) +import Data.Semigroup (class Semigroup) +import Data.String (joinWith) as String import Data.Tuple (Tuple(..)) -import Data.Generic (class Generic) - import Global (encodeURIComponent) +import Prelude (class Show, class Ord, class Eq, map, (<<<), (<>)) -- | `FormURLEncoded` is an ordered list of key-value pairs with possible duplicates. newtype FormURLEncoded @@ -30,6 +31,8 @@ derive instance genericFormUrlEncoded :: Generic FormURLEncoded derive newtype instance eqFormUrlEncoded :: Eq FormURLEncoded derive newtype instance ordFormUrlEncoded :: Ord FormURLEncoded derive newtype instance showFormUrlEncoded :: Show FormURLEncoded +derive newtype instance semigroupFormUrlEncoded :: Semigroup FormURLEncoded +derive newtype instance monoidFormUrlEncoded :: Monoid FormURLEncoded -- | Encode `FormURLEncoded` as `application/x-www-form-urlencoded`. encode :: FormURLEncoded -> String From 30d280af7f283bb01579115db0627fd51d4517d0 Mon Sep 17 00:00:00 2001 From: Konstantin Zudov Date: Mon, 17 Oct 2016 21:33:05 +0300 Subject: [PATCH 4/6] Update npm's devDependencies --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8212e00..1a81173 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "devDependencies": { "pulp": "^9.0.0", "purescript-psa": "^0.3.9", - "purescript": "^0.9.1", + "purescript": "^0.10.1", "rimraf": "^2.5.0" } } From a013ecba49d620a690ae00dfe56dcc4c8ae18173 Mon Sep 17 00:00:00 2001 From: Konstantin Zudov Date: Tue, 18 Oct 2016 23:26:23 +0300 Subject: [PATCH 5/6] Add `Newtype` instance --- src/Data/FormURLEncoded.purs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Data/FormURLEncoded.purs b/src/Data/FormURLEncoded.purs index 5657e28..4572ad0 100644 --- a/src/Data/FormURLEncoded.purs +++ b/src/Data/FormURLEncoded.purs @@ -5,6 +5,7 @@ module Data.FormURLEncoded , encode ) where +import Data.Newtype (class Newtype) import Data.Generic (class Generic) import Data.Maybe (Maybe(..)) import Data.Monoid (class Monoid) @@ -28,6 +29,7 @@ toArray :: FormURLEncoded -> Array (Tuple String (Maybe String)) toArray (FormURLEncoded a) = a derive instance genericFormUrlEncoded :: Generic FormURLEncoded +derive instance newtypeFormUrlEncoded :: Newtype FormURLEncoded _ derive newtype instance eqFormUrlEncoded :: Eq FormURLEncoded derive newtype instance ordFormUrlEncoded :: Ord FormURLEncoded derive newtype instance showFormUrlEncoded :: Show FormURLEncoded From ab3849e43c092200255239640a1658972a9c4506 Mon Sep 17 00:00:00 2001 From: Konstantin Zudov Date: Thu, 27 Oct 2016 18:44:06 +0300 Subject: [PATCH 6/6] Expose `FormURLEncoded` constructor. Since we expose the newtype internals through the `Newtype` instance it makes sense to expose the constructor too. --- src/Data/FormURLEncoded.purs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Data/FormURLEncoded.purs b/src/Data/FormURLEncoded.purs index 4572ad0..2421576 100644 --- a/src/Data/FormURLEncoded.purs +++ b/src/Data/FormURLEncoded.purs @@ -1,5 +1,5 @@ module Data.FormURLEncoded - ( FormURLEncoded() + ( FormURLEncoded(FormURLEncoded) , fromArray , toArray , encode