diff --git a/bower.json b/bower.json index 1702a87..1941df7 100644 --- a/bower.json +++ b/bower.json @@ -19,6 +19,7 @@ "purescript-bifunctors": "master", "purescript-control": "master", "purescript-foldable-traversable": "master", + "purescript-generics-rep": "master", "purescript-invariant": "master", "purescript-maybe": "master", "purescript-prelude": "master" diff --git a/src/Data/Either.purs b/src/Data/Either.purs index 65cc805..11a795b 100644 --- a/src/Data/Either.purs +++ b/src/Data/Either.purs @@ -12,6 +12,7 @@ import Data.Foldable (class Foldable) import Data.FoldableWithIndex (class FoldableWithIndex) import Data.Functor.Invariant (class Invariant, imapF) import Data.FunctorWithIndex (class FunctorWithIndex) +import Data.Generic.Rep (class Generic) import Data.Maybe (Maybe(..), maybe, maybe') import Data.Ord (class Ord1) import Data.Traversable (class Traversable) @@ -40,6 +41,8 @@ derive instance functorEither :: Functor (Either a) instance functorWithIndexEither :: FunctorWithIndex Unit (Either a) where mapWithIndex f = map $ f unit +derive instance genericEither :: Generic (Either a b) _ + instance invariantEither :: Invariant (Either a) where imap = imapF