Skip to content

Commit c3cd333

Browse files
authored
Merge pull request #18 from purescript/bump
Prepare for 2.0 release
2 parents 5f584f2 + 38a655c commit c3cd333

File tree

2 files changed

+18
-14
lines changed

2 files changed

+18
-14
lines changed

bower.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@
1818
"package.json"
1919
],
2020
"dependencies": {
21-
"purescript-either": "^1.0.0",
22-
"purescript-strings": "^1.0.0",
23-
"purescript-unfoldable": "^1.0.0"
21+
"purescript-either": "^2.0.0",
22+
"purescript-strings": "^2.0.0",
23+
"purescript-unfoldable": "^2.0.0"
2424
},
2525
"devDependencies": {
26-
"purescript-assert": "^1.0.0",
27-
"purescript-console": "^1.0.0"
26+
"purescript-assert": "^2.0.0",
27+
"purescript-console": "^2.0.0"
2828
}
2929
}

src/Data/Enum.purs

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ module Data.Enum
66
, enumFromThenTo
77
, upFrom
88
, downFrom
9-
, Cardinality(..), runCardinality
9+
, Cardinality(..)
1010
, class BoundedEnum, cardinality, toEnum, fromEnum, toEnumWithDefaults
1111
, defaultCardinality
1212
, defaultToEnum
@@ -20,15 +20,19 @@ import Control.MonadPlus (guard)
2020
import Data.Char (fromCharCode, toCharCode)
2121
import Data.Either (Either(..))
2222
import Data.Maybe (Maybe(..), maybe, fromJust)
23+
import Data.Newtype (class Newtype, unwrap)
2324
import Data.Tuple (Tuple(..))
2425
import Data.Unfoldable (class Unfoldable, unfoldr)
2526

2627
import Partial.Unsafe (unsafePartial)
2728

2829
newtype Cardinality a = Cardinality Int
2930

30-
runCardinality :: forall a. Cardinality a -> Int
31-
runCardinality (Cardinality a) = a
31+
derive instance newtypeCardinality :: Newtype (Cardinality a) _
32+
33+
derive newtype instance eqCardinality :: Eq (Cardinality a)
34+
35+
derive newtype instance ordCardinality :: Ord (Cardinality a)
3236

3337
-- | Type class for enumerations.
3438
-- |
@@ -188,7 +192,7 @@ instance boundedEnumOrdering :: BoundedEnum Ordering where
188192
fromEnum GT = 2
189193

190194
instance boundedEnumMaybe :: BoundedEnum a => BoundedEnum (Maybe a) where
191-
cardinality = Cardinality $ runCardinality (cardinality :: Cardinality a) + 1
195+
cardinality = Cardinality $ unwrap (cardinality :: Cardinality a) + 1
192196
toEnum = to cardinality
193197
where
194198
to :: Cardinality a -> Int -> Maybe (Maybe a)
@@ -201,8 +205,8 @@ instance boundedEnumMaybe :: BoundedEnum a => BoundedEnum (Maybe a) where
201205
instance boundedEnumEither :: (BoundedEnum a, BoundedEnum b) => BoundedEnum (Either a b) where
202206
cardinality =
203207
Cardinality
204-
$ runCardinality (cardinality :: Cardinality a)
205-
+ runCardinality (cardinality :: Cardinality b)
208+
$ unwrap (cardinality :: Cardinality a)
209+
+ unwrap (cardinality :: Cardinality b)
206210
toEnum = to cardinality cardinality
207211
where
208212
to :: Cardinality a -> Cardinality (Either a b) -> Int -> Maybe (Either a b)
@@ -211,13 +215,13 @@ instance boundedEnumEither :: (BoundedEnum a, BoundedEnum b) => BoundedEnum (Eit
211215
| n >= ca && n < cab = Right <$> toEnum (n - ca)
212216
| otherwise = Nothing
213217
fromEnum (Left a) = fromEnum a
214-
fromEnum (Right b) = fromEnum b + runCardinality (cardinality :: Cardinality a)
218+
fromEnum (Right b) = fromEnum b + unwrap (cardinality :: Cardinality a)
215219

216220
instance boundedEnumTuple :: (BoundedEnum a, BoundedEnum b) => BoundedEnum (Tuple a b) where
217221
cardinality =
218222
Cardinality
219-
$ runCardinality (cardinality :: Cardinality a)
220-
* runCardinality (cardinality :: Cardinality b)
223+
$ unwrap (cardinality :: Cardinality a)
224+
* unwrap (cardinality :: Cardinality b)
221225
toEnum = to cardinality
222226
where
223227
to :: Cardinality b -> Int -> Maybe (Tuple a b)

0 commit comments

Comments
 (0)