From 73e6c20e390dba5c0398b3b06549af8aea45fcf8 Mon Sep 17 00:00:00 2001 From: Liam Goodacre Date: Thu, 10 Nov 2016 23:27:01 +0000 Subject: [PATCH] Simplify toEnum for Either instance. --- src/Data/Enum.purs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/Data/Enum.purs b/src/Data/Enum.purs index a639be7..d7f9577 100644 --- a/src/Data/Enum.purs +++ b/src/Data/Enum.purs @@ -203,13 +203,12 @@ instance boundedEnumEither :: (BoundedEnum a, BoundedEnum b) => BoundedEnum (Eit Cardinality $ unwrap (cardinality :: Cardinality a) + unwrap (cardinality :: Cardinality b) - toEnum n = to cardinality cardinality + toEnum n = to cardinality where - to :: Cardinality a -> Cardinality (Either a b) -> Maybe (Either a b) - to (Cardinality ca) (Cardinality cab) + to :: Cardinality a -> Maybe (Either a b) + to (Cardinality ca) | n >= 0 && n < ca = Left <$> toEnum n - | n >= ca && n < cab = Right <$> toEnum (n - ca) - | otherwise = Nothing + | otherwise = Right <$> toEnum (n - ca) fromEnum (Left a) = fromEnum a fromEnum (Right b) = fromEnum b + unwrap (cardinality :: Cardinality a)