module Spotify.Types.Internal.EnumJSON where

import Data.Aeson (FromJSON (parseJSON))

newtype EnumJSON a = EnumJSON a

instance (Enum a) => FromJSON (EnumJSON a) where
    parseJSON :: Value -> Parser (EnumJSON a)
parseJSON = forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (forall a. a -> EnumJSON a
EnumJSON forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Enum a => Int -> a
toEnum @a) forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. FromJSON a => Value -> Parser a
parseJSON