File tree Expand file tree Collapse file tree 3 files changed +17
-2
lines changed
Expand file tree Collapse file tree 3 files changed +17
-2
lines changed Original file line number Diff line number Diff line change 2222
2323 instance enumBoolean :: Enum Boolean
2424
25+ instance enumChar :: Enum Char
26+
2527 instance enumMaybe :: (Enum a) => Enum (Maybe a)
2628
2729 instance enumTuple :: (Enum a, Enum b) => Enum (Tuple a b)
Original file line number Diff line number Diff line change 1818 " package.json"
1919 ],
2020 "dependencies" : {
21- "purescript-maybe" : " *" ,
22- "purescript-tuples" : " *"
21+ "purescript-maybe" : " ~0.2.1" ,
22+ "purescript-tuples" : " ~0.2.1" ,
23+ "purescript-strings" : " ~0.3.2"
2324 }
2425}
Original file line number Diff line number Diff line change @@ -13,6 +13,7 @@ module Data.Enum
1313
1414 import Data.Maybe
1515 import Data.Tuple
16+ import Data.Char
1617 import Data.Maybe.Unsafe
1718
1819 newtype Cardinality a = Cardinality Number
@@ -55,6 +56,17 @@ module Data.Enum
5556 maybeCardinality :: forall a. (Enum a ) => Cardinality a -> Cardinality (Maybe a )
5657 maybeCardinality c = Cardinality $ 1 + (runCardinality c )
5758
59+ instance enumChar :: Enum Char where
60+ cardinality = Cardinality (65535 + 1)
61+
62+ firstEnum = fromCharCode 0
63+
64+ lastEnum = fromCharCode 65535
65+
66+ succ c = if c == lastEnum then Nothing else Just $ (fromCharCode <<< ((+) 1) <<< toCharCode ) c
67+
68+ pred c = if c == firstEnum then Nothing else Just $ (fromCharCode <<< ((+) (-1)) <<< toCharCode ) c
69+
5870 instance enumMaybe :: (Enum a ) => Enum (Maybe a ) where
5971 cardinality = maybeCardinality cardinality
6072
You can’t perform that action at this time.
0 commit comments