module Mpv.Data.VideoId where import Polysemy.Time.Json (json) newtype VideoId = VideoId { VideoId -> Int unVideoId :: Int } deriving stock (VideoId -> VideoId -> Bool (VideoId -> VideoId -> Bool) -> (VideoId -> VideoId -> Bool) -> Eq VideoId forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: VideoId -> VideoId -> Bool $c/= :: VideoId -> VideoId -> Bool == :: VideoId -> VideoId -> Bool $c== :: VideoId -> VideoId -> Bool Eq, Int -> VideoId -> ShowS [VideoId] -> ShowS VideoId -> String (Int -> VideoId -> ShowS) -> (VideoId -> String) -> ([VideoId] -> ShowS) -> Show VideoId forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [VideoId] -> ShowS $cshowList :: [VideoId] -> ShowS show :: VideoId -> String $cshow :: VideoId -> String showsPrec :: Int -> VideoId -> ShowS $cshowsPrec :: Int -> VideoId -> ShowS Show, (forall x. VideoId -> Rep VideoId x) -> (forall x. Rep VideoId x -> VideoId) -> Generic VideoId forall x. Rep VideoId x -> VideoId forall x. VideoId -> Rep VideoId x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep VideoId x -> VideoId $cfrom :: forall x. VideoId -> Rep VideoId x Generic) deriving newtype (Integer -> VideoId VideoId -> VideoId VideoId -> VideoId -> VideoId (VideoId -> VideoId -> VideoId) -> (VideoId -> VideoId -> VideoId) -> (VideoId -> VideoId -> VideoId) -> (VideoId -> VideoId) -> (VideoId -> VideoId) -> (VideoId -> VideoId) -> (Integer -> VideoId) -> Num VideoId forall a. (a -> a -> a) -> (a -> a -> a) -> (a -> a -> a) -> (a -> a) -> (a -> a) -> (a -> a) -> (Integer -> a) -> Num a fromInteger :: Integer -> VideoId $cfromInteger :: Integer -> VideoId signum :: VideoId -> VideoId $csignum :: VideoId -> VideoId abs :: VideoId -> VideoId $cabs :: VideoId -> VideoId negate :: VideoId -> VideoId $cnegate :: VideoId -> VideoId * :: VideoId -> VideoId -> VideoId $c* :: VideoId -> VideoId -> VideoId - :: VideoId -> VideoId -> VideoId $c- :: VideoId -> VideoId -> VideoId + :: VideoId -> VideoId -> VideoId $c+ :: VideoId -> VideoId -> VideoId Num, Num VideoId Ord VideoId Num VideoId -> Ord VideoId -> (VideoId -> Rational) -> Real VideoId VideoId -> Rational forall a. Num a -> Ord a -> (a -> Rational) -> Real a toRational :: VideoId -> Rational $ctoRational :: VideoId -> Rational Real, Int -> VideoId VideoId -> Int VideoId -> [VideoId] VideoId -> VideoId VideoId -> VideoId -> [VideoId] VideoId -> VideoId -> VideoId -> [VideoId] (VideoId -> VideoId) -> (VideoId -> VideoId) -> (Int -> VideoId) -> (VideoId -> Int) -> (VideoId -> [VideoId]) -> (VideoId -> VideoId -> [VideoId]) -> (VideoId -> VideoId -> [VideoId]) -> (VideoId -> VideoId -> VideoId -> [VideoId]) -> Enum VideoId forall a. (a -> a) -> (a -> a) -> (Int -> a) -> (a -> Int) -> (a -> [a]) -> (a -> a -> [a]) -> (a -> a -> [a]) -> (a -> a -> a -> [a]) -> Enum a enumFromThenTo :: VideoId -> VideoId -> VideoId -> [VideoId] $cenumFromThenTo :: VideoId -> VideoId -> VideoId -> [VideoId] enumFromTo :: VideoId -> VideoId -> [VideoId] $cenumFromTo :: VideoId -> VideoId -> [VideoId] enumFromThen :: VideoId -> VideoId -> [VideoId] $cenumFromThen :: VideoId -> VideoId -> [VideoId] enumFrom :: VideoId -> [VideoId] $cenumFrom :: VideoId -> [VideoId] fromEnum :: VideoId -> Int $cfromEnum :: VideoId -> Int toEnum :: Int -> VideoId $ctoEnum :: Int -> VideoId pred :: VideoId -> VideoId $cpred :: VideoId -> VideoId succ :: VideoId -> VideoId $csucc :: VideoId -> VideoId Enum, Enum VideoId Real VideoId Real VideoId -> Enum VideoId -> (VideoId -> VideoId -> VideoId) -> (VideoId -> VideoId -> VideoId) -> (VideoId -> VideoId -> VideoId) -> (VideoId -> VideoId -> VideoId) -> (VideoId -> VideoId -> (VideoId, VideoId)) -> (VideoId -> VideoId -> (VideoId, VideoId)) -> (VideoId -> Integer) -> Integral VideoId VideoId -> Integer VideoId -> VideoId -> (VideoId, VideoId) VideoId -> VideoId -> VideoId forall a. Real a -> Enum a -> (a -> a -> a) -> (a -> a -> a) -> (a -> a -> a) -> (a -> a -> a) -> (a -> a -> (a, a)) -> (a -> a -> (a, a)) -> (a -> Integer) -> Integral a toInteger :: VideoId -> Integer $ctoInteger :: VideoId -> Integer divMod :: VideoId -> VideoId -> (VideoId, VideoId) $cdivMod :: VideoId -> VideoId -> (VideoId, VideoId) quotRem :: VideoId -> VideoId -> (VideoId, VideoId) $cquotRem :: VideoId -> VideoId -> (VideoId, VideoId) mod :: VideoId -> VideoId -> VideoId $cmod :: VideoId -> VideoId -> VideoId div :: VideoId -> VideoId -> VideoId $cdiv :: VideoId -> VideoId -> VideoId rem :: VideoId -> VideoId -> VideoId $crem :: VideoId -> VideoId -> VideoId quot :: VideoId -> VideoId -> VideoId $cquot :: VideoId -> VideoId -> VideoId Integral, Eq VideoId Eq VideoId -> (VideoId -> VideoId -> Ordering) -> (VideoId -> VideoId -> Bool) -> (VideoId -> VideoId -> Bool) -> (VideoId -> VideoId -> Bool) -> (VideoId -> VideoId -> Bool) -> (VideoId -> VideoId -> VideoId) -> (VideoId -> VideoId -> VideoId) -> Ord VideoId VideoId -> VideoId -> Bool VideoId -> VideoId -> Ordering VideoId -> VideoId -> VideoId forall a. Eq a -> (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a min :: VideoId -> VideoId -> VideoId $cmin :: VideoId -> VideoId -> VideoId max :: VideoId -> VideoId -> VideoId $cmax :: VideoId -> VideoId -> VideoId >= :: VideoId -> VideoId -> Bool $c>= :: VideoId -> VideoId -> Bool > :: VideoId -> VideoId -> Bool $c> :: VideoId -> VideoId -> Bool <= :: VideoId -> VideoId -> Bool $c<= :: VideoId -> VideoId -> Bool < :: VideoId -> VideoId -> Bool $c< :: VideoId -> VideoId -> Bool compare :: VideoId -> VideoId -> Ordering $ccompare :: VideoId -> VideoId -> Ordering Ord) json ''VideoId