module Mpv.Data.SubFps where

import Polysemy.Time.Json (json)

newtype SubFps =
  SubFps { SubFps -> Double
unSubFps :: Double }
  deriving stock (SubFps -> SubFps -> Bool
(SubFps -> SubFps -> Bool)
-> (SubFps -> SubFps -> Bool) -> Eq SubFps
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SubFps -> SubFps -> Bool
$c/= :: SubFps -> SubFps -> Bool
== :: SubFps -> SubFps -> Bool
$c== :: SubFps -> SubFps -> Bool
Eq, Int -> SubFps -> ShowS
[SubFps] -> ShowS
SubFps -> String
(Int -> SubFps -> ShowS)
-> (SubFps -> String) -> ([SubFps] -> ShowS) -> Show SubFps
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SubFps] -> ShowS
$cshowList :: [SubFps] -> ShowS
show :: SubFps -> String
$cshow :: SubFps -> String
showsPrec :: Int -> SubFps -> ShowS
$cshowsPrec :: Int -> SubFps -> ShowS
Show, (forall x. SubFps -> Rep SubFps x)
-> (forall x. Rep SubFps x -> SubFps) -> Generic SubFps
forall x. Rep SubFps x -> SubFps
forall x. SubFps -> Rep SubFps x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep SubFps x -> SubFps
$cfrom :: forall x. SubFps -> Rep SubFps x
Generic)
  deriving newtype (Integer -> SubFps
SubFps -> SubFps
SubFps -> SubFps -> SubFps
(SubFps -> SubFps -> SubFps)
-> (SubFps -> SubFps -> SubFps)
-> (SubFps -> SubFps -> SubFps)
-> (SubFps -> SubFps)
-> (SubFps -> SubFps)
-> (SubFps -> SubFps)
-> (Integer -> SubFps)
-> Num SubFps
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
fromInteger :: Integer -> SubFps
$cfromInteger :: Integer -> SubFps
signum :: SubFps -> SubFps
$csignum :: SubFps -> SubFps
abs :: SubFps -> SubFps
$cabs :: SubFps -> SubFps
negate :: SubFps -> SubFps
$cnegate :: SubFps -> SubFps
* :: SubFps -> SubFps -> SubFps
$c* :: SubFps -> SubFps -> SubFps
- :: SubFps -> SubFps -> SubFps
$c- :: SubFps -> SubFps -> SubFps
+ :: SubFps -> SubFps -> SubFps
$c+ :: SubFps -> SubFps -> SubFps
Num, Eq SubFps
Eq SubFps
-> (SubFps -> SubFps -> Ordering)
-> (SubFps -> SubFps -> Bool)
-> (SubFps -> SubFps -> Bool)
-> (SubFps -> SubFps -> Bool)
-> (SubFps -> SubFps -> Bool)
-> (SubFps -> SubFps -> SubFps)
-> (SubFps -> SubFps -> SubFps)
-> Ord SubFps
SubFps -> SubFps -> Bool
SubFps -> SubFps -> Ordering
SubFps -> SubFps -> SubFps
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 :: SubFps -> SubFps -> SubFps
$cmin :: SubFps -> SubFps -> SubFps
max :: SubFps -> SubFps -> SubFps
$cmax :: SubFps -> SubFps -> SubFps
>= :: SubFps -> SubFps -> Bool
$c>= :: SubFps -> SubFps -> Bool
> :: SubFps -> SubFps -> Bool
$c> :: SubFps -> SubFps -> Bool
<= :: SubFps -> SubFps -> Bool
$c<= :: SubFps -> SubFps -> Bool
< :: SubFps -> SubFps -> Bool
$c< :: SubFps -> SubFps -> Bool
compare :: SubFps -> SubFps -> Ordering
$ccompare :: SubFps -> SubFps -> Ordering
Ord, Int -> SubFps
SubFps -> Int
SubFps -> [SubFps]
SubFps -> SubFps
SubFps -> SubFps -> [SubFps]
SubFps -> SubFps -> SubFps -> [SubFps]
(SubFps -> SubFps)
-> (SubFps -> SubFps)
-> (Int -> SubFps)
-> (SubFps -> Int)
-> (SubFps -> [SubFps])
-> (SubFps -> SubFps -> [SubFps])
-> (SubFps -> SubFps -> [SubFps])
-> (SubFps -> SubFps -> SubFps -> [SubFps])
-> Enum SubFps
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 :: SubFps -> SubFps -> SubFps -> [SubFps]
$cenumFromThenTo :: SubFps -> SubFps -> SubFps -> [SubFps]
enumFromTo :: SubFps -> SubFps -> [SubFps]
$cenumFromTo :: SubFps -> SubFps -> [SubFps]
enumFromThen :: SubFps -> SubFps -> [SubFps]
$cenumFromThen :: SubFps -> SubFps -> [SubFps]
enumFrom :: SubFps -> [SubFps]
$cenumFrom :: SubFps -> [SubFps]
fromEnum :: SubFps -> Int
$cfromEnum :: SubFps -> Int
toEnum :: Int -> SubFps
$ctoEnum :: Int -> SubFps
pred :: SubFps -> SubFps
$cpred :: SubFps -> SubFps
succ :: SubFps -> SubFps
$csucc :: SubFps -> SubFps
Enum, Num SubFps
Ord SubFps
Num SubFps -> Ord SubFps -> (SubFps -> Rational) -> Real SubFps
SubFps -> Rational
forall a. Num a -> Ord a -> (a -> Rational) -> Real a
toRational :: SubFps -> Rational
$ctoRational :: SubFps -> Rational
Real, Num SubFps
Num SubFps
-> (SubFps -> SubFps -> SubFps)
-> (SubFps -> SubFps)
-> (Rational -> SubFps)
-> Fractional SubFps
Rational -> SubFps
SubFps -> SubFps
SubFps -> SubFps -> SubFps
forall a.
Num a
-> (a -> a -> a) -> (a -> a) -> (Rational -> a) -> Fractional a
fromRational :: Rational -> SubFps
$cfromRational :: Rational -> SubFps
recip :: SubFps -> SubFps
$crecip :: SubFps -> SubFps
/ :: SubFps -> SubFps -> SubFps
$c/ :: SubFps -> SubFps -> SubFps
Fractional)

json ''SubFps