-- | Indicate that something is `Updated`.
module NewtypeZoo.Updated
  ( Updated(Updated)
  , _theUpdated
  , theUpdated
  ) where

import           Control.DeepSeq (NFData)
import           Control.Monad.Fix (MonadFix)
import           Control.Monad.Zip (MonadZip)
import           Data.Bits       (Bits,FiniteBits)
import           Data.Copointed  (Copointed)
import           Data.Default    (Default)
import           Data.Functor.Classes (Eq1, Ord1, Read1, Show1)
import           Data.Functor.Identity
import           Data.Ix         (Ix)
import           Data.Profunctor (Profunctor, dimap)
import           Data.Pointed    (Pointed)
import           Data.String     (IsString)
import           Data.Typeable   (Typeable)
import           Foreign.Storable (Storable)
import           GHC.Generics    (Generic, Generic1)
import           System.Random   (Random)
import           Test.QuickCheck (Arbitrary)

newtype Updated a = Updated a
  deriving ( Updated a -> Updated a -> Bool
(Updated a -> Updated a -> Bool)
-> (Updated a -> Updated a -> Bool) -> Eq (Updated a)
forall a. Eq a => Updated a -> Updated a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Updated a -> Updated a -> Bool
$c/= :: forall a. Eq a => Updated a -> Updated a -> Bool
== :: Updated a -> Updated a -> Bool
$c== :: forall a. Eq a => Updated a -> Updated a -> Bool
Eq
           , Eq (Updated a)
Eq (Updated a)
-> (Updated a -> Updated a -> Ordering)
-> (Updated a -> Updated a -> Bool)
-> (Updated a -> Updated a -> Bool)
-> (Updated a -> Updated a -> Bool)
-> (Updated a -> Updated a -> Bool)
-> (Updated a -> Updated a -> Updated a)
-> (Updated a -> Updated a -> Updated a)
-> Ord (Updated a)
Updated a -> Updated a -> Bool
Updated a -> Updated a -> Ordering
Updated a -> Updated a -> Updated a
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
forall a. Ord a => Eq (Updated a)
forall a. Ord a => Updated a -> Updated a -> Bool
forall a. Ord a => Updated a -> Updated a -> Ordering
forall a. Ord a => Updated a -> Updated a -> Updated a
min :: Updated a -> Updated a -> Updated a
$cmin :: forall a. Ord a => Updated a -> Updated a -> Updated a
max :: Updated a -> Updated a -> Updated a
$cmax :: forall a. Ord a => Updated a -> Updated a -> Updated a
>= :: Updated a -> Updated a -> Bool
$c>= :: forall a. Ord a => Updated a -> Updated a -> Bool
> :: Updated a -> Updated a -> Bool
$c> :: forall a. Ord a => Updated a -> Updated a -> Bool
<= :: Updated a -> Updated a -> Bool
$c<= :: forall a. Ord a => Updated a -> Updated a -> Bool
< :: Updated a -> Updated a -> Bool
$c< :: forall a. Ord a => Updated a -> Updated a -> Bool
compare :: Updated a -> Updated a -> Ordering
$ccompare :: forall a. Ord a => Updated a -> Updated a -> Ordering
$cp1Ord :: forall a. Ord a => Eq (Updated a)
Ord
           , ReadPrec [Updated a]
ReadPrec (Updated a)
Int -> ReadS (Updated a)
ReadS [Updated a]
(Int -> ReadS (Updated a))
-> ReadS [Updated a]
-> ReadPrec (Updated a)
-> ReadPrec [Updated a]
-> Read (Updated a)
forall a. Read a => ReadPrec [Updated a]
forall a. Read a => ReadPrec (Updated a)
forall a. Read a => Int -> ReadS (Updated a)
forall a. Read a => ReadS [Updated a]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Updated a]
$creadListPrec :: forall a. Read a => ReadPrec [Updated a]
readPrec :: ReadPrec (Updated a)
$creadPrec :: forall a. Read a => ReadPrec (Updated a)
readList :: ReadS [Updated a]
$creadList :: forall a. Read a => ReadS [Updated a]
readsPrec :: Int -> ReadS (Updated a)
$creadsPrec :: forall a. Read a => Int -> ReadS (Updated a)
Read
           , Int -> Updated a -> ShowS
[Updated a] -> ShowS
Updated a -> String
(Int -> Updated a -> ShowS)
-> (Updated a -> String)
-> ([Updated a] -> ShowS)
-> Show (Updated a)
forall a. Show a => Int -> Updated a -> ShowS
forall a. Show a => [Updated a] -> ShowS
forall a. Show a => Updated a -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Updated a] -> ShowS
$cshowList :: forall a. Show a => [Updated a] -> ShowS
show :: Updated a -> String
$cshow :: forall a. Show a => Updated a -> String
showsPrec :: Int -> Updated a -> ShowS
$cshowsPrec :: forall a. Show a => Int -> Updated a -> ShowS
Show
           , Updated a -> ()
(Updated a -> ()) -> NFData (Updated a)
forall a. NFData a => Updated a -> ()
forall a. (a -> ()) -> NFData a
rnf :: Updated a -> ()
$crnf :: forall a. NFData a => Updated a -> ()
NFData
           , Updated a -> Bool
(a -> m) -> Updated a -> m
(a -> b -> b) -> b -> Updated a -> b
(forall m. Monoid m => Updated m -> m)
-> (forall m a. Monoid m => (a -> m) -> Updated a -> m)
-> (forall m a. Monoid m => (a -> m) -> Updated a -> m)
-> (forall a b. (a -> b -> b) -> b -> Updated a -> b)
-> (forall a b. (a -> b -> b) -> b -> Updated a -> b)
-> (forall b a. (b -> a -> b) -> b -> Updated a -> b)
-> (forall b a. (b -> a -> b) -> b -> Updated a -> b)
-> (forall a. (a -> a -> a) -> Updated a -> a)
-> (forall a. (a -> a -> a) -> Updated a -> a)
-> (forall a. Updated a -> [a])
-> (forall a. Updated a -> Bool)
-> (forall a. Updated a -> Int)
-> (forall a. Eq a => a -> Updated a -> Bool)
-> (forall a. Ord a => Updated a -> a)
-> (forall a. Ord a => Updated a -> a)
-> (forall a. Num a => Updated a -> a)
-> (forall a. Num a => Updated a -> a)
-> Foldable Updated
forall a. Eq a => a -> Updated a -> Bool
forall a. Num a => Updated a -> a
forall a. Ord a => Updated a -> a
forall m. Monoid m => Updated m -> m
forall a. Updated a -> Bool
forall a. Updated a -> Int
forall a. Updated a -> [a]
forall a. (a -> a -> a) -> Updated a -> a
forall m a. Monoid m => (a -> m) -> Updated a -> m
forall b a. (b -> a -> b) -> b -> Updated a -> b
forall a b. (a -> b -> b) -> b -> Updated a -> b
forall (t :: * -> *).
(forall m. Monoid m => t m -> m)
-> (forall m a. Monoid m => (a -> m) -> t a -> m)
-> (forall m a. Monoid m => (a -> m) -> t a -> m)
-> (forall a b. (a -> b -> b) -> b -> t a -> b)
-> (forall a b. (a -> b -> b) -> b -> t a -> b)
-> (forall b a. (b -> a -> b) -> b -> t a -> b)
-> (forall b a. (b -> a -> b) -> b -> t a -> b)
-> (forall a. (a -> a -> a) -> t a -> a)
-> (forall a. (a -> a -> a) -> t a -> a)
-> (forall a. t a -> [a])
-> (forall a. t a -> Bool)
-> (forall a. t a -> Int)
-> (forall a. Eq a => a -> t a -> Bool)
-> (forall a. Ord a => t a -> a)
-> (forall a. Ord a => t a -> a)
-> (forall a. Num a => t a -> a)
-> (forall a. Num a => t a -> a)
-> Foldable t
product :: Updated a -> a
$cproduct :: forall a. Num a => Updated a -> a
sum :: Updated a -> a
$csum :: forall a. Num a => Updated a -> a
minimum :: Updated a -> a
$cminimum :: forall a. Ord a => Updated a -> a
maximum :: Updated a -> a
$cmaximum :: forall a. Ord a => Updated a -> a
elem :: a -> Updated a -> Bool
$celem :: forall a. Eq a => a -> Updated a -> Bool
length :: Updated a -> Int
$clength :: forall a. Updated a -> Int
null :: Updated a -> Bool
$cnull :: forall a. Updated a -> Bool
toList :: Updated a -> [a]
$ctoList :: forall a. Updated a -> [a]
foldl1 :: (a -> a -> a) -> Updated a -> a
$cfoldl1 :: forall a. (a -> a -> a) -> Updated a -> a
foldr1 :: (a -> a -> a) -> Updated a -> a
$cfoldr1 :: forall a. (a -> a -> a) -> Updated a -> a
foldl' :: (b -> a -> b) -> b -> Updated a -> b
$cfoldl' :: forall b a. (b -> a -> b) -> b -> Updated a -> b
foldl :: (b -> a -> b) -> b -> Updated a -> b
$cfoldl :: forall b a. (b -> a -> b) -> b -> Updated a -> b
foldr' :: (a -> b -> b) -> b -> Updated a -> b
$cfoldr' :: forall a b. (a -> b -> b) -> b -> Updated a -> b
foldr :: (a -> b -> b) -> b -> Updated a -> b
$cfoldr :: forall a b. (a -> b -> b) -> b -> Updated a -> b
foldMap' :: (a -> m) -> Updated a -> m
$cfoldMap' :: forall m a. Monoid m => (a -> m) -> Updated a -> m
foldMap :: (a -> m) -> Updated a -> m
$cfoldMap :: forall m a. Monoid m => (a -> m) -> Updated a -> m
fold :: Updated m -> m
$cfold :: forall m. Monoid m => Updated m -> m
Foldable
           , Functor Updated
Foldable Updated
Functor Updated
-> Foldable Updated
-> (forall (f :: * -> *) a b.
    Applicative f =>
    (a -> f b) -> Updated a -> f (Updated b))
-> (forall (f :: * -> *) a.
    Applicative f =>
    Updated (f a) -> f (Updated a))
-> (forall (m :: * -> *) a b.
    Monad m =>
    (a -> m b) -> Updated a -> m (Updated b))
-> (forall (m :: * -> *) a.
    Monad m =>
    Updated (m a) -> m (Updated a))
-> Traversable Updated
(a -> f b) -> Updated a -> f (Updated b)
forall (t :: * -> *).
Functor t
-> Foldable t
-> (forall (f :: * -> *) a b.
    Applicative f =>
    (a -> f b) -> t a -> f (t b))
-> (forall (f :: * -> *) a. Applicative f => t (f a) -> f (t a))
-> (forall (m :: * -> *) a b.
    Monad m =>
    (a -> m b) -> t a -> m (t b))
-> (forall (m :: * -> *) a. Monad m => t (m a) -> m (t a))
-> Traversable t
forall (m :: * -> *) a. Monad m => Updated (m a) -> m (Updated a)
forall (f :: * -> *) a.
Applicative f =>
Updated (f a) -> f (Updated a)
forall (m :: * -> *) a b.
Monad m =>
(a -> m b) -> Updated a -> m (Updated b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> Updated a -> f (Updated b)
sequence :: Updated (m a) -> m (Updated a)
$csequence :: forall (m :: * -> *) a. Monad m => Updated (m a) -> m (Updated a)
mapM :: (a -> m b) -> Updated a -> m (Updated b)
$cmapM :: forall (m :: * -> *) a b.
Monad m =>
(a -> m b) -> Updated a -> m (Updated b)
sequenceA :: Updated (f a) -> f (Updated a)
$csequenceA :: forall (f :: * -> *) a.
Applicative f =>
Updated (f a) -> f (Updated a)
traverse :: (a -> f b) -> Updated a -> f (Updated b)
$ctraverse :: forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> Updated a -> f (Updated b)
$cp2Traversable :: Foldable Updated
$cp1Traversable :: Functor Updated
Traversable
           , a -> Updated b -> Updated a
(a -> b) -> Updated a -> Updated b
(forall a b. (a -> b) -> Updated a -> Updated b)
-> (forall a b. a -> Updated b -> Updated a) -> Functor Updated
forall a b. a -> Updated b -> Updated a
forall a b. (a -> b) -> Updated a -> Updated b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
<$ :: a -> Updated b -> Updated a
$c<$ :: forall a b. a -> Updated b -> Updated a
fmap :: (a -> b) -> Updated a -> Updated b
$cfmap :: forall a b. (a -> b) -> Updated a -> Updated b
Functor
           , Updated a
Updated a -> Default (Updated a)
forall a. a -> Default a
forall a. Default a => Updated a
def :: Updated a
$cdef :: forall a. Default a => Updated a
Default
           , Semigroup (Updated a)
Updated a
Semigroup (Updated a)
-> Updated a
-> (Updated a -> Updated a -> Updated a)
-> ([Updated a] -> Updated a)
-> Monoid (Updated a)
[Updated a] -> Updated a
Updated a -> Updated a -> Updated a
forall a.
Semigroup a -> a -> (a -> a -> a) -> ([a] -> a) -> Monoid a
forall a. Monoid a => Semigroup (Updated a)
forall a. Monoid a => Updated a
forall a. Monoid a => [Updated a] -> Updated a
forall a. Monoid a => Updated a -> Updated a -> Updated a
mconcat :: [Updated a] -> Updated a
$cmconcat :: forall a. Monoid a => [Updated a] -> Updated a
mappend :: Updated a -> Updated a -> Updated a
$cmappend :: forall a. Monoid a => Updated a -> Updated a -> Updated a
mempty :: Updated a
$cmempty :: forall a. Monoid a => Updated a
$cp1Monoid :: forall a. Monoid a => Semigroup (Updated a)
Monoid
           , b -> Updated a -> Updated a
NonEmpty (Updated a) -> Updated a
Updated a -> Updated a -> Updated a
(Updated a -> Updated a -> Updated a)
-> (NonEmpty (Updated a) -> Updated a)
-> (forall b. Integral b => b -> Updated a -> Updated a)
-> Semigroup (Updated a)
forall b. Integral b => b -> Updated a -> Updated a
forall a. Semigroup a => NonEmpty (Updated a) -> Updated a
forall a. Semigroup a => Updated a -> Updated a -> Updated a
forall a b.
(Semigroup a, Integral b) =>
b -> Updated a -> Updated a
forall a.
(a -> a -> a)
-> (NonEmpty a -> a)
-> (forall b. Integral b => b -> a -> a)
-> Semigroup a
stimes :: b -> Updated a -> Updated a
$cstimes :: forall a b.
(Semigroup a, Integral b) =>
b -> Updated a -> Updated a
sconcat :: NonEmpty (Updated a) -> Updated a
$csconcat :: forall a. Semigroup a => NonEmpty (Updated a) -> Updated a
<> :: Updated a -> Updated a -> Updated a
$c<> :: forall a. Semigroup a => Updated a -> Updated a -> Updated a
Semigroup
           , Typeable
           , (forall x. Updated a -> Rep (Updated a) x)
-> (forall x. Rep (Updated a) x -> Updated a)
-> Generic (Updated a)
forall x. Rep (Updated a) x -> Updated a
forall x. Updated a -> Rep (Updated a) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall a x. Rep (Updated a) x -> Updated a
forall a x. Updated a -> Rep (Updated a) x
$cto :: forall a x. Rep (Updated a) x -> Updated a
$cfrom :: forall a x. Updated a -> Rep (Updated a) x
Generic
           , (forall a. Updated a -> Rep1 Updated a)
-> (forall a. Rep1 Updated a -> Updated a) -> Generic1 Updated
forall a. Rep1 Updated a -> Updated a
forall a. Updated a -> Rep1 Updated a
forall k (f :: k -> *).
(forall (a :: k). f a -> Rep1 f a)
-> (forall (a :: k). Rep1 f a -> f a) -> Generic1 f
$cto1 :: forall a. Rep1 Updated a -> Updated a
$cfrom1 :: forall a. Updated a -> Rep1 Updated a
Generic1
           , g -> (Updated a, g)
g -> [Updated a]
(Updated a, Updated a) -> g -> (Updated a, g)
(Updated a, Updated a) -> g -> [Updated a]
(forall g.
 RandomGen g =>
 (Updated a, Updated a) -> g -> (Updated a, g))
-> (forall g. RandomGen g => g -> (Updated a, g))
-> (forall g.
    RandomGen g =>
    (Updated a, Updated a) -> g -> [Updated a])
-> (forall g. RandomGen g => g -> [Updated a])
-> Random (Updated a)
forall a g. (Random a, RandomGen g) => g -> [Updated a]
forall a g. (Random a, RandomGen g) => g -> (Updated a, g)
forall a g.
(Random a, RandomGen g) =>
(Updated a, Updated a) -> g -> [Updated a]
forall a g.
(Random a, RandomGen g) =>
(Updated a, Updated a) -> g -> (Updated a, g)
forall g. RandomGen g => g -> [Updated a]
forall g. RandomGen g => g -> (Updated a, g)
forall g. RandomGen g => (Updated a, Updated a) -> g -> [Updated a]
forall g.
RandomGen g =>
(Updated a, Updated a) -> g -> (Updated a, g)
forall a.
(forall g. RandomGen g => (a, a) -> g -> (a, g))
-> (forall g. RandomGen g => g -> (a, g))
-> (forall g. RandomGen g => (a, a) -> g -> [a])
-> (forall g. RandomGen g => g -> [a])
-> Random a
randoms :: g -> [Updated a]
$crandoms :: forall a g. (Random a, RandomGen g) => g -> [Updated a]
randomRs :: (Updated a, Updated a) -> g -> [Updated a]
$crandomRs :: forall a g.
(Random a, RandomGen g) =>
(Updated a, Updated a) -> g -> [Updated a]
random :: g -> (Updated a, g)
$crandom :: forall a g. (Random a, RandomGen g) => g -> (Updated a, g)
randomR :: (Updated a, Updated a) -> g -> (Updated a, g)
$crandomR :: forall a g.
(Random a, RandomGen g) =>
(Updated a, Updated a) -> g -> (Updated a, g)
Random
           , Gen (Updated a)
Gen (Updated a)
-> (Updated a -> [Updated a]) -> Arbitrary (Updated a)
Updated a -> [Updated a]
forall a. Arbitrary a => Gen (Updated a)
forall a. Arbitrary a => Updated a -> [Updated a]
forall a. Gen a -> (a -> [a]) -> Arbitrary a
shrink :: Updated a -> [Updated a]
$cshrink :: forall a. Arbitrary a => Updated a -> [Updated a]
arbitrary :: Gen (Updated a)
$carbitrary :: forall a. Arbitrary a => Gen (Updated a)
Arbitrary
           , Updated a
Updated a -> Updated a -> Bounded (Updated a)
forall a. a -> a -> Bounded a
forall a. Bounded a => Updated a
maxBound :: Updated a
$cmaxBound :: forall a. Bounded a => Updated a
minBound :: Updated a
$cminBound :: forall a. Bounded a => Updated a
Bounded
           , Int -> Updated a
Updated a -> Int
Updated a -> [Updated a]
Updated a -> Updated a
Updated a -> Updated a -> [Updated a]
Updated a -> Updated a -> Updated a -> [Updated a]
(Updated a -> Updated a)
-> (Updated a -> Updated a)
-> (Int -> Updated a)
-> (Updated a -> Int)
-> (Updated a -> [Updated a])
-> (Updated a -> Updated a -> [Updated a])
-> (Updated a -> Updated a -> [Updated a])
-> (Updated a -> Updated a -> Updated a -> [Updated a])
-> Enum (Updated a)
forall a. Enum a => Int -> Updated a
forall a. Enum a => Updated a -> Int
forall a. Enum a => Updated a -> [Updated a]
forall a. Enum a => Updated a -> Updated a
forall a. Enum a => Updated a -> Updated a -> [Updated a]
forall a.
Enum a =>
Updated a -> Updated a -> Updated a -> [Updated a]
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 :: Updated a -> Updated a -> Updated a -> [Updated a]
$cenumFromThenTo :: forall a.
Enum a =>
Updated a -> Updated a -> Updated a -> [Updated a]
enumFromTo :: Updated a -> Updated a -> [Updated a]
$cenumFromTo :: forall a. Enum a => Updated a -> Updated a -> [Updated a]
enumFromThen :: Updated a -> Updated a -> [Updated a]
$cenumFromThen :: forall a. Enum a => Updated a -> Updated a -> [Updated a]
enumFrom :: Updated a -> [Updated a]
$cenumFrom :: forall a. Enum a => Updated a -> [Updated a]
fromEnum :: Updated a -> Int
$cfromEnum :: forall a. Enum a => Updated a -> Int
toEnum :: Int -> Updated a
$ctoEnum :: forall a. Enum a => Int -> Updated a
pred :: Updated a -> Updated a
$cpred :: forall a. Enum a => Updated a -> Updated a
succ :: Updated a -> Updated a
$csucc :: forall a. Enum a => Updated a -> Updated a
Enum
           , Fractional (Updated a)
Updated a
Fractional (Updated a)
-> Updated a
-> (Updated a -> Updated a)
-> (Updated a -> Updated a)
-> (Updated a -> Updated a)
-> (Updated a -> Updated a -> Updated a)
-> (Updated a -> Updated a -> Updated a)
-> (Updated a -> Updated a)
-> (Updated a -> Updated a)
-> (Updated a -> Updated a)
-> (Updated a -> Updated a)
-> (Updated a -> Updated a)
-> (Updated a -> Updated a)
-> (Updated a -> Updated a)
-> (Updated a -> Updated a)
-> (Updated a -> Updated a)
-> (Updated a -> Updated a)
-> (Updated a -> Updated a)
-> (Updated a -> Updated a)
-> (Updated a -> Updated a)
-> (Updated a -> Updated a)
-> (Updated a -> Updated a)
-> (Updated a -> Updated a)
-> Floating (Updated a)
Updated a -> Updated a
Updated a -> Updated a -> Updated a
forall a. Floating a => Fractional (Updated a)
forall a. Floating a => Updated a
forall a. Floating a => Updated a -> Updated a
forall a. Floating a => Updated a -> Updated a -> Updated a
forall a.
Fractional a
-> a
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> Floating a
log1mexp :: Updated a -> Updated a
$clog1mexp :: forall a. Floating a => Updated a -> Updated a
log1pexp :: Updated a -> Updated a
$clog1pexp :: forall a. Floating a => Updated a -> Updated a
expm1 :: Updated a -> Updated a
$cexpm1 :: forall a. Floating a => Updated a -> Updated a
log1p :: Updated a -> Updated a
$clog1p :: forall a. Floating a => Updated a -> Updated a
atanh :: Updated a -> Updated a
$catanh :: forall a. Floating a => Updated a -> Updated a
acosh :: Updated a -> Updated a
$cacosh :: forall a. Floating a => Updated a -> Updated a
asinh :: Updated a -> Updated a
$casinh :: forall a. Floating a => Updated a -> Updated a
tanh :: Updated a -> Updated a
$ctanh :: forall a. Floating a => Updated a -> Updated a
cosh :: Updated a -> Updated a
$ccosh :: forall a. Floating a => Updated a -> Updated a
sinh :: Updated a -> Updated a
$csinh :: forall a. Floating a => Updated a -> Updated a
atan :: Updated a -> Updated a
$catan :: forall a. Floating a => Updated a -> Updated a
acos :: Updated a -> Updated a
$cacos :: forall a. Floating a => Updated a -> Updated a
asin :: Updated a -> Updated a
$casin :: forall a. Floating a => Updated a -> Updated a
tan :: Updated a -> Updated a
$ctan :: forall a. Floating a => Updated a -> Updated a
cos :: Updated a -> Updated a
$ccos :: forall a. Floating a => Updated a -> Updated a
sin :: Updated a -> Updated a
$csin :: forall a. Floating a => Updated a -> Updated a
logBase :: Updated a -> Updated a -> Updated a
$clogBase :: forall a. Floating a => Updated a -> Updated a -> Updated a
** :: Updated a -> Updated a -> Updated a
$c** :: forall a. Floating a => Updated a -> Updated a -> Updated a
sqrt :: Updated a -> Updated a
$csqrt :: forall a. Floating a => Updated a -> Updated a
log :: Updated a -> Updated a
$clog :: forall a. Floating a => Updated a -> Updated a
exp :: Updated a -> Updated a
$cexp :: forall a. Floating a => Updated a -> Updated a
pi :: Updated a
$cpi :: forall a. Floating a => Updated a
$cp1Floating :: forall a. Floating a => Fractional (Updated a)
Floating
           , Num (Updated a)
Num (Updated a)
-> (Updated a -> Updated a -> Updated a)
-> (Updated a -> Updated a)
-> (Rational -> Updated a)
-> Fractional (Updated a)
Rational -> Updated a
Updated a -> Updated a
Updated a -> Updated a -> Updated a
forall a. Fractional a => Num (Updated a)
forall a. Fractional a => Rational -> Updated a
forall a. Fractional a => Updated a -> Updated a
forall a. Fractional a => Updated a -> Updated a -> Updated a
forall a.
Num a
-> (a -> a -> a) -> (a -> a) -> (Rational -> a) -> Fractional a
fromRational :: Rational -> Updated a
$cfromRational :: forall a. Fractional a => Rational -> Updated a
recip :: Updated a -> Updated a
$crecip :: forall a. Fractional a => Updated a -> Updated a
/ :: Updated a -> Updated a -> Updated a
$c/ :: forall a. Fractional a => Updated a -> Updated a -> Updated a
$cp1Fractional :: forall a. Fractional a => Num (Updated a)
Fractional
           , Enum (Updated a)
Real (Updated a)
Real (Updated a)
-> Enum (Updated a)
-> (Updated a -> Updated a -> Updated a)
-> (Updated a -> Updated a -> Updated a)
-> (Updated a -> Updated a -> Updated a)
-> (Updated a -> Updated a -> Updated a)
-> (Updated a -> Updated a -> (Updated a, Updated a))
-> (Updated a -> Updated a -> (Updated a, Updated a))
-> (Updated a -> Integer)
-> Integral (Updated a)
Updated a -> Integer
Updated a -> Updated a -> (Updated a, Updated a)
Updated a -> Updated a -> Updated a
forall a. Integral a => Enum (Updated a)
forall a. Integral a => Real (Updated a)
forall a. Integral a => Updated a -> Integer
forall a.
Integral a =>
Updated a -> Updated a -> (Updated a, Updated a)
forall a. Integral a => Updated a -> Updated a -> Updated a
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 :: Updated a -> Integer
$ctoInteger :: forall a. Integral a => Updated a -> Integer
divMod :: Updated a -> Updated a -> (Updated a, Updated a)
$cdivMod :: forall a.
Integral a =>
Updated a -> Updated a -> (Updated a, Updated a)
quotRem :: Updated a -> Updated a -> (Updated a, Updated a)
$cquotRem :: forall a.
Integral a =>
Updated a -> Updated a -> (Updated a, Updated a)
mod :: Updated a -> Updated a -> Updated a
$cmod :: forall a. Integral a => Updated a -> Updated a -> Updated a
div :: Updated a -> Updated a -> Updated a
$cdiv :: forall a. Integral a => Updated a -> Updated a -> Updated a
rem :: Updated a -> Updated a -> Updated a
$crem :: forall a. Integral a => Updated a -> Updated a -> Updated a
quot :: Updated a -> Updated a -> Updated a
$cquot :: forall a. Integral a => Updated a -> Updated a -> Updated a
$cp2Integral :: forall a. Integral a => Enum (Updated a)
$cp1Integral :: forall a. Integral a => Real (Updated a)
Integral
           , Integer -> Updated a
Updated a -> Updated a
Updated a -> Updated a -> Updated a
(Updated a -> Updated a -> Updated a)
-> (Updated a -> Updated a -> Updated a)
-> (Updated a -> Updated a -> Updated a)
-> (Updated a -> Updated a)
-> (Updated a -> Updated a)
-> (Updated a -> Updated a)
-> (Integer -> Updated a)
-> Num (Updated a)
forall a. Num a => Integer -> Updated a
forall a. Num a => Updated a -> Updated a
forall a. Num a => Updated a -> Updated a -> Updated a
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
fromInteger :: Integer -> Updated a
$cfromInteger :: forall a. Num a => Integer -> Updated a
signum :: Updated a -> Updated a
$csignum :: forall a. Num a => Updated a -> Updated a
abs :: Updated a -> Updated a
$cabs :: forall a. Num a => Updated a -> Updated a
negate :: Updated a -> Updated a
$cnegate :: forall a. Num a => Updated a -> Updated a
* :: Updated a -> Updated a -> Updated a
$c* :: forall a. Num a => Updated a -> Updated a -> Updated a
- :: Updated a -> Updated a -> Updated a
$c- :: forall a. Num a => Updated a -> Updated a -> Updated a
+ :: Updated a -> Updated a -> Updated a
$c+ :: forall a. Num a => Updated a -> Updated a -> Updated a
Num
           , Num (Updated a)
Ord (Updated a)
Num (Updated a)
-> Ord (Updated a) -> (Updated a -> Rational) -> Real (Updated a)
Updated a -> Rational
forall a. Num a -> Ord a -> (a -> Rational) -> Real a
forall a. Real a => Num (Updated a)
forall a. Real a => Ord (Updated a)
forall a. Real a => Updated a -> Rational
toRational :: Updated a -> Rational
$ctoRational :: forall a. Real a => Updated a -> Rational
$cp2Real :: forall a. Real a => Ord (Updated a)
$cp1Real :: forall a. Real a => Num (Updated a)
Real
           , Floating (Updated a)
RealFrac (Updated a)
RealFrac (Updated a)
-> Floating (Updated a)
-> (Updated a -> Integer)
-> (Updated a -> Int)
-> (Updated a -> (Int, Int))
-> (Updated a -> (Integer, Int))
-> (Integer -> Int -> Updated a)
-> (Updated a -> Int)
-> (Updated a -> Updated a)
-> (Int -> Updated a -> Updated a)
-> (Updated a -> Bool)
-> (Updated a -> Bool)
-> (Updated a -> Bool)
-> (Updated a -> Bool)
-> (Updated a -> Bool)
-> (Updated a -> Updated a -> Updated a)
-> RealFloat (Updated a)
Int -> Updated a -> Updated a
Integer -> Int -> Updated a
Updated a -> Bool
Updated a -> Int
Updated a -> Integer
Updated a -> (Int, Int)
Updated a -> (Integer, Int)
Updated a -> Updated a
Updated a -> Updated a -> Updated a
forall a. RealFloat a => Floating (Updated a)
forall a. RealFloat a => RealFrac (Updated a)
forall a. RealFloat a => Int -> Updated a -> Updated a
forall a. RealFloat a => Integer -> Int -> Updated a
forall a. RealFloat a => Updated a -> Bool
forall a. RealFloat a => Updated a -> Int
forall a. RealFloat a => Updated a -> Integer
forall a. RealFloat a => Updated a -> (Int, Int)
forall a. RealFloat a => Updated a -> (Integer, Int)
forall a. RealFloat a => Updated a -> Updated a
forall a. RealFloat a => Updated a -> Updated a -> Updated a
forall a.
RealFrac a
-> Floating a
-> (a -> Integer)
-> (a -> Int)
-> (a -> (Int, Int))
-> (a -> (Integer, Int))
-> (Integer -> Int -> a)
-> (a -> Int)
-> (a -> a)
-> (Int -> a -> a)
-> (a -> Bool)
-> (a -> Bool)
-> (a -> Bool)
-> (a -> Bool)
-> (a -> Bool)
-> (a -> a -> a)
-> RealFloat a
atan2 :: Updated a -> Updated a -> Updated a
$catan2 :: forall a. RealFloat a => Updated a -> Updated a -> Updated a
isIEEE :: Updated a -> Bool
$cisIEEE :: forall a. RealFloat a => Updated a -> Bool
isNegativeZero :: Updated a -> Bool
$cisNegativeZero :: forall a. RealFloat a => Updated a -> Bool
isDenormalized :: Updated a -> Bool
$cisDenormalized :: forall a. RealFloat a => Updated a -> Bool
isInfinite :: Updated a -> Bool
$cisInfinite :: forall a. RealFloat a => Updated a -> Bool
isNaN :: Updated a -> Bool
$cisNaN :: forall a. RealFloat a => Updated a -> Bool
scaleFloat :: Int -> Updated a -> Updated a
$cscaleFloat :: forall a. RealFloat a => Int -> Updated a -> Updated a
significand :: Updated a -> Updated a
$csignificand :: forall a. RealFloat a => Updated a -> Updated a
exponent :: Updated a -> Int
$cexponent :: forall a. RealFloat a => Updated a -> Int
encodeFloat :: Integer -> Int -> Updated a
$cencodeFloat :: forall a. RealFloat a => Integer -> Int -> Updated a
decodeFloat :: Updated a -> (Integer, Int)
$cdecodeFloat :: forall a. RealFloat a => Updated a -> (Integer, Int)
floatRange :: Updated a -> (Int, Int)
$cfloatRange :: forall a. RealFloat a => Updated a -> (Int, Int)
floatDigits :: Updated a -> Int
$cfloatDigits :: forall a. RealFloat a => Updated a -> Int
floatRadix :: Updated a -> Integer
$cfloatRadix :: forall a. RealFloat a => Updated a -> Integer
$cp2RealFloat :: forall a. RealFloat a => Floating (Updated a)
$cp1RealFloat :: forall a. RealFloat a => RealFrac (Updated a)
RealFloat
           , Fractional (Updated a)
Real (Updated a)
Real (Updated a)
-> Fractional (Updated a)
-> (forall b. Integral b => Updated a -> (b, Updated a))
-> (forall b. Integral b => Updated a -> b)
-> (forall b. Integral b => Updated a -> b)
-> (forall b. Integral b => Updated a -> b)
-> (forall b. Integral b => Updated a -> b)
-> RealFrac (Updated a)
Updated a -> b
Updated a -> b
Updated a -> b
Updated a -> b
Updated a -> (b, Updated a)
forall b. Integral b => Updated a -> b
forall b. Integral b => Updated a -> (b, Updated a)
forall a.
Real a
-> Fractional a
-> (forall b. Integral b => a -> (b, a))
-> (forall b. Integral b => a -> b)
-> (forall b. Integral b => a -> b)
-> (forall b. Integral b => a -> b)
-> (forall b. Integral b => a -> b)
-> RealFrac a
forall a. RealFrac a => Fractional (Updated a)
forall a. RealFrac a => Real (Updated a)
forall a b. (RealFrac a, Integral b) => Updated a -> b
forall a b. (RealFrac a, Integral b) => Updated a -> (b, Updated a)
floor :: Updated a -> b
$cfloor :: forall a b. (RealFrac a, Integral b) => Updated a -> b
ceiling :: Updated a -> b
$cceiling :: forall a b. (RealFrac a, Integral b) => Updated a -> b
round :: Updated a -> b
$cround :: forall a b. (RealFrac a, Integral b) => Updated a -> b
truncate :: Updated a -> b
$ctruncate :: forall a b. (RealFrac a, Integral b) => Updated a -> b
properFraction :: Updated a -> (b, Updated a)
$cproperFraction :: forall a b. (RealFrac a, Integral b) => Updated a -> (b, Updated a)
$cp2RealFrac :: forall a. RealFrac a => Fractional (Updated a)
$cp1RealFrac :: forall a. RealFrac a => Real (Updated a)
RealFrac
           , Ord (Updated a)
Ord (Updated a)
-> ((Updated a, Updated a) -> [Updated a])
-> ((Updated a, Updated a) -> Updated a -> Int)
-> ((Updated a, Updated a) -> Updated a -> Int)
-> ((Updated a, Updated a) -> Updated a -> Bool)
-> ((Updated a, Updated a) -> Int)
-> ((Updated a, Updated a) -> Int)
-> Ix (Updated a)
(Updated a, Updated a) -> Int
(Updated a, Updated a) -> [Updated a]
(Updated a, Updated a) -> Updated a -> Bool
(Updated a, Updated a) -> Updated a -> Int
forall a.
Ord a
-> ((a, a) -> [a])
-> ((a, a) -> a -> Int)
-> ((a, a) -> a -> Int)
-> ((a, a) -> a -> Bool)
-> ((a, a) -> Int)
-> ((a, a) -> Int)
-> Ix a
forall a. Ix a => Ord (Updated a)
forall a. Ix a => (Updated a, Updated a) -> Int
forall a. Ix a => (Updated a, Updated a) -> [Updated a]
forall a. Ix a => (Updated a, Updated a) -> Updated a -> Bool
forall a. Ix a => (Updated a, Updated a) -> Updated a -> Int
unsafeRangeSize :: (Updated a, Updated a) -> Int
$cunsafeRangeSize :: forall a. Ix a => (Updated a, Updated a) -> Int
rangeSize :: (Updated a, Updated a) -> Int
$crangeSize :: forall a. Ix a => (Updated a, Updated a) -> Int
inRange :: (Updated a, Updated a) -> Updated a -> Bool
$cinRange :: forall a. Ix a => (Updated a, Updated a) -> Updated a -> Bool
unsafeIndex :: (Updated a, Updated a) -> Updated a -> Int
$cunsafeIndex :: forall a. Ix a => (Updated a, Updated a) -> Updated a -> Int
index :: (Updated a, Updated a) -> Updated a -> Int
$cindex :: forall a. Ix a => (Updated a, Updated a) -> Updated a -> Int
range :: (Updated a, Updated a) -> [Updated a]
$crange :: forall a. Ix a => (Updated a, Updated a) -> [Updated a]
$cp1Ix :: forall a. Ix a => Ord (Updated a)
Ix
           , String -> Updated a
(String -> Updated a) -> IsString (Updated a)
forall a. IsString a => String -> Updated a
forall a. (String -> a) -> IsString a
fromString :: String -> Updated a
$cfromString :: forall a. IsString a => String -> Updated a
IsString
           , Eq (Updated a)
Updated a
Eq (Updated a)
-> (Updated a -> Updated a -> Updated a)
-> (Updated a -> Updated a -> Updated a)
-> (Updated a -> Updated a -> Updated a)
-> (Updated a -> Updated a)
-> (Updated a -> Int -> Updated a)
-> (Updated a -> Int -> Updated a)
-> Updated a
-> (Int -> Updated a)
-> (Updated a -> Int -> Updated a)
-> (Updated a -> Int -> Updated a)
-> (Updated a -> Int -> Updated a)
-> (Updated a -> Int -> Bool)
-> (Updated a -> Maybe Int)
-> (Updated a -> Int)
-> (Updated a -> Bool)
-> (Updated a -> Int -> Updated a)
-> (Updated a -> Int -> Updated a)
-> (Updated a -> Int -> Updated a)
-> (Updated a -> Int -> Updated a)
-> (Updated a -> Int -> Updated a)
-> (Updated a -> Int -> Updated a)
-> (Updated a -> Int)
-> Bits (Updated a)
Int -> Updated a
Updated a -> Bool
Updated a -> Int
Updated a -> Maybe Int
Updated a -> Updated a
Updated a -> Int -> Bool
Updated a -> Int -> Updated a
Updated a -> Updated a -> Updated a
forall a.
Eq a
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
forall a. Bits a => Eq (Updated a)
forall a. Bits a => Updated a
forall a. Bits a => Int -> Updated a
forall a. Bits a => Updated a -> Bool
forall a. Bits a => Updated a -> Int
forall a. Bits a => Updated a -> Maybe Int
forall a. Bits a => Updated a -> Updated a
forall a. Bits a => Updated a -> Int -> Bool
forall a. Bits a => Updated a -> Int -> Updated a
forall a. Bits a => Updated a -> Updated a -> Updated a
popCount :: Updated a -> Int
$cpopCount :: forall a. Bits a => Updated a -> Int
rotateR :: Updated a -> Int -> Updated a
$crotateR :: forall a. Bits a => Updated a -> Int -> Updated a
rotateL :: Updated a -> Int -> Updated a
$crotateL :: forall a. Bits a => Updated a -> Int -> Updated a
unsafeShiftR :: Updated a -> Int -> Updated a
$cunsafeShiftR :: forall a. Bits a => Updated a -> Int -> Updated a
shiftR :: Updated a -> Int -> Updated a
$cshiftR :: forall a. Bits a => Updated a -> Int -> Updated a
unsafeShiftL :: Updated a -> Int -> Updated a
$cunsafeShiftL :: forall a. Bits a => Updated a -> Int -> Updated a
shiftL :: Updated a -> Int -> Updated a
$cshiftL :: forall a. Bits a => Updated a -> Int -> Updated a
isSigned :: Updated a -> Bool
$cisSigned :: forall a. Bits a => Updated a -> Bool
bitSize :: Updated a -> Int
$cbitSize :: forall a. Bits a => Updated a -> Int
bitSizeMaybe :: Updated a -> Maybe Int
$cbitSizeMaybe :: forall a. Bits a => Updated a -> Maybe Int
testBit :: Updated a -> Int -> Bool
$ctestBit :: forall a. Bits a => Updated a -> Int -> Bool
complementBit :: Updated a -> Int -> Updated a
$ccomplementBit :: forall a. Bits a => Updated a -> Int -> Updated a
clearBit :: Updated a -> Int -> Updated a
$cclearBit :: forall a. Bits a => Updated a -> Int -> Updated a
setBit :: Updated a -> Int -> Updated a
$csetBit :: forall a. Bits a => Updated a -> Int -> Updated a
bit :: Int -> Updated a
$cbit :: forall a. Bits a => Int -> Updated a
zeroBits :: Updated a
$czeroBits :: forall a. Bits a => Updated a
rotate :: Updated a -> Int -> Updated a
$crotate :: forall a. Bits a => Updated a -> Int -> Updated a
shift :: Updated a -> Int -> Updated a
$cshift :: forall a. Bits a => Updated a -> Int -> Updated a
complement :: Updated a -> Updated a
$ccomplement :: forall a. Bits a => Updated a -> Updated a
xor :: Updated a -> Updated a -> Updated a
$cxor :: forall a. Bits a => Updated a -> Updated a -> Updated a
.|. :: Updated a -> Updated a -> Updated a
$c.|. :: forall a. Bits a => Updated a -> Updated a -> Updated a
.&. :: Updated a -> Updated a -> Updated a
$c.&. :: forall a. Bits a => Updated a -> Updated a -> Updated a
$cp1Bits :: forall a. Bits a => Eq (Updated a)
Bits
           , Bits (Updated a)
Bits (Updated a)
-> (Updated a -> Int)
-> (Updated a -> Int)
-> (Updated a -> Int)
-> FiniteBits (Updated a)
Updated a -> Int
forall b.
Bits b -> (b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
forall a. FiniteBits a => Bits (Updated a)
forall a. FiniteBits a => Updated a -> Int
countTrailingZeros :: Updated a -> Int
$ccountTrailingZeros :: forall a. FiniteBits a => Updated a -> Int
countLeadingZeros :: Updated a -> Int
$ccountLeadingZeros :: forall a. FiniteBits a => Updated a -> Int
finiteBitSize :: Updated a -> Int
$cfiniteBitSize :: forall a. FiniteBits a => Updated a -> Int
$cp1FiniteBits :: forall a. FiniteBits a => Bits (Updated a)
FiniteBits
           )
  deriving ( (a -> b -> Bool) -> Updated a -> Updated b -> Bool
(forall a b. (a -> b -> Bool) -> Updated a -> Updated b -> Bool)
-> Eq1 Updated
forall a b. (a -> b -> Bool) -> Updated a -> Updated b -> Bool
forall (f :: * -> *).
(forall a b. (a -> b -> Bool) -> f a -> f b -> Bool) -> Eq1 f
liftEq :: (a -> b -> Bool) -> Updated a -> Updated b -> Bool
$cliftEq :: forall a b. (a -> b -> Bool) -> Updated a -> Updated b -> Bool
Eq1
           , Eq1 Updated
Eq1 Updated
-> (forall a b.
    (a -> b -> Ordering) -> Updated a -> Updated b -> Ordering)
-> Ord1 Updated
(a -> b -> Ordering) -> Updated a -> Updated b -> Ordering
forall a b.
(a -> b -> Ordering) -> Updated a -> Updated b -> Ordering
forall (f :: * -> *).
Eq1 f
-> (forall a b. (a -> b -> Ordering) -> f a -> f b -> Ordering)
-> Ord1 f
liftCompare :: (a -> b -> Ordering) -> Updated a -> Updated b -> Ordering
$cliftCompare :: forall a b.
(a -> b -> Ordering) -> Updated a -> Updated b -> Ordering
$cp1Ord1 :: Eq1 Updated
Ord1
           , ReadPrec a -> ReadPrec [a] -> ReadPrec (Updated a)
ReadPrec a -> ReadPrec [a] -> ReadPrec [Updated a]
(Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (Updated a)
(Int -> ReadS a) -> ReadS [a] -> ReadS [Updated a]
(forall a.
 (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (Updated a))
-> (forall a. (Int -> ReadS a) -> ReadS [a] -> ReadS [Updated a])
-> (forall a. ReadPrec a -> ReadPrec [a] -> ReadPrec (Updated a))
-> (forall a. ReadPrec a -> ReadPrec [a] -> ReadPrec [Updated a])
-> Read1 Updated
forall a. ReadPrec a -> ReadPrec [a] -> ReadPrec [Updated a]
forall a. ReadPrec a -> ReadPrec [a] -> ReadPrec (Updated a)
forall a. (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (Updated a)
forall a. (Int -> ReadS a) -> ReadS [a] -> ReadS [Updated a]
forall (f :: * -> *).
(forall a. (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (f a))
-> (forall a. (Int -> ReadS a) -> ReadS [a] -> ReadS [f a])
-> (forall a. ReadPrec a -> ReadPrec [a] -> ReadPrec (f a))
-> (forall a. ReadPrec a -> ReadPrec [a] -> ReadPrec [f a])
-> Read1 f
liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [Updated a]
$cliftReadListPrec :: forall a. ReadPrec a -> ReadPrec [a] -> ReadPrec [Updated a]
liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (Updated a)
$cliftReadPrec :: forall a. ReadPrec a -> ReadPrec [a] -> ReadPrec (Updated a)
liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [Updated a]
$cliftReadList :: forall a. (Int -> ReadS a) -> ReadS [a] -> ReadS [Updated a]
liftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (Updated a)
$cliftReadsPrec :: forall a. (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (Updated a)
Read1
           , (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> Updated a -> ShowS
(Int -> a -> ShowS) -> ([a] -> ShowS) -> [Updated a] -> ShowS
(forall a.
 (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> Updated a -> ShowS)
-> (forall a.
    (Int -> a -> ShowS) -> ([a] -> ShowS) -> [Updated a] -> ShowS)
-> Show1 Updated
forall a.
(Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> Updated a -> ShowS
forall a.
(Int -> a -> ShowS) -> ([a] -> ShowS) -> [Updated a] -> ShowS
forall (f :: * -> *).
(forall a.
 (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> f a -> ShowS)
-> (forall a.
    (Int -> a -> ShowS) -> ([a] -> ShowS) -> [f a] -> ShowS)
-> Show1 f
liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [Updated a] -> ShowS
$cliftShowList :: forall a.
(Int -> a -> ShowS) -> ([a] -> ShowS) -> [Updated a] -> ShowS
liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> Updated a -> ShowS
$cliftShowsPrec :: forall a.
(Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> Updated a -> ShowS
Show1
           , a -> Updated a
(forall a. a -> Updated a) -> Pointed Updated
forall a. a -> Updated a
forall (p :: * -> *). (forall a. a -> p a) -> Pointed p
point :: a -> Updated a
$cpoint :: forall a. a -> Updated a
Pointed
           , Updated a -> a
(forall a. Updated a -> a) -> Copointed Updated
forall a. Updated a -> a
forall (p :: * -> *). (forall a. p a -> a) -> Copointed p
copoint :: Updated a -> a
$ccopoint :: forall a. Updated a -> a
Copointed
           , Functor Updated
a -> Updated a
Functor Updated
-> (forall a. a -> Updated a)
-> (forall a b. Updated (a -> b) -> Updated a -> Updated b)
-> (forall a b c.
    (a -> b -> c) -> Updated a -> Updated b -> Updated c)
-> (forall a b. Updated a -> Updated b -> Updated b)
-> (forall a b. Updated a -> Updated b -> Updated a)
-> Applicative Updated
Updated a -> Updated b -> Updated b
Updated a -> Updated b -> Updated a
Updated (a -> b) -> Updated a -> Updated b
(a -> b -> c) -> Updated a -> Updated b -> Updated c
forall a. a -> Updated a
forall a b. Updated a -> Updated b -> Updated a
forall a b. Updated a -> Updated b -> Updated b
forall a b. Updated (a -> b) -> Updated a -> Updated b
forall a b c. (a -> b -> c) -> Updated a -> Updated b -> Updated c
forall (f :: * -> *).
Functor f
-> (forall a. a -> f a)
-> (forall a b. f (a -> b) -> f a -> f b)
-> (forall a b c. (a -> b -> c) -> f a -> f b -> f c)
-> (forall a b. f a -> f b -> f b)
-> (forall a b. f a -> f b -> f a)
-> Applicative f
<* :: Updated a -> Updated b -> Updated a
$c<* :: forall a b. Updated a -> Updated b -> Updated a
*> :: Updated a -> Updated b -> Updated b
$c*> :: forall a b. Updated a -> Updated b -> Updated b
liftA2 :: (a -> b -> c) -> Updated a -> Updated b -> Updated c
$cliftA2 :: forall a b c. (a -> b -> c) -> Updated a -> Updated b -> Updated c
<*> :: Updated (a -> b) -> Updated a -> Updated b
$c<*> :: forall a b. Updated (a -> b) -> Updated a -> Updated b
pure :: a -> Updated a
$cpure :: forall a. a -> Updated a
$cp1Applicative :: Functor Updated
Applicative
           , Monad Updated
Monad Updated
-> (forall a. (a -> Updated a) -> Updated a) -> MonadFix Updated
(a -> Updated a) -> Updated a
forall a. (a -> Updated a) -> Updated a
forall (m :: * -> *).
Monad m -> (forall a. (a -> m a) -> m a) -> MonadFix m
mfix :: (a -> Updated a) -> Updated a
$cmfix :: forall a. (a -> Updated a) -> Updated a
$cp1MonadFix :: Monad Updated
MonadFix
           , Applicative Updated
a -> Updated a
Applicative Updated
-> (forall a b. Updated a -> (a -> Updated b) -> Updated b)
-> (forall a b. Updated a -> Updated b -> Updated b)
-> (forall a. a -> Updated a)
-> Monad Updated
Updated a -> (a -> Updated b) -> Updated b
Updated a -> Updated b -> Updated b
forall a. a -> Updated a
forall a b. Updated a -> Updated b -> Updated b
forall a b. Updated a -> (a -> Updated b) -> Updated b
forall (m :: * -> *).
Applicative m
-> (forall a b. m a -> (a -> m b) -> m b)
-> (forall a b. m a -> m b -> m b)
-> (forall a. a -> m a)
-> Monad m
return :: a -> Updated a
$creturn :: forall a. a -> Updated a
>> :: Updated a -> Updated b -> Updated b
$c>> :: forall a b. Updated a -> Updated b -> Updated b
>>= :: Updated a -> (a -> Updated b) -> Updated b
$c>>= :: forall a b. Updated a -> (a -> Updated b) -> Updated b
$cp1Monad :: Applicative Updated
Monad
           , Monad Updated
Monad Updated
-> (forall a b. Updated a -> Updated b -> Updated (a, b))
-> (forall a b c.
    (a -> b -> c) -> Updated a -> Updated b -> Updated c)
-> (forall a b. Updated (a, b) -> (Updated a, Updated b))
-> MonadZip Updated
Updated a -> Updated b -> Updated (a, b)
Updated (a, b) -> (Updated a, Updated b)
(a -> b -> c) -> Updated a -> Updated b -> Updated c
forall a b. Updated a -> Updated b -> Updated (a, b)
forall a b. Updated (a, b) -> (Updated a, Updated b)
forall a b c. (a -> b -> c) -> Updated a -> Updated b -> Updated c
forall (m :: * -> *).
Monad m
-> (forall a b. m a -> m b -> m (a, b))
-> (forall a b c. (a -> b -> c) -> m a -> m b -> m c)
-> (forall a b. m (a, b) -> (m a, m b))
-> MonadZip m
munzip :: Updated (a, b) -> (Updated a, Updated b)
$cmunzip :: forall a b. Updated (a, b) -> (Updated a, Updated b)
mzipWith :: (a -> b -> c) -> Updated a -> Updated b -> Updated c
$cmzipWith :: forall a b c. (a -> b -> c) -> Updated a -> Updated b -> Updated c
mzip :: Updated a -> Updated b -> Updated (a, b)
$cmzip :: forall a b. Updated a -> Updated b -> Updated (a, b)
$cp1MonadZip :: Monad Updated
MonadZip

           )
           via Identity

_theUpdated :: Updated x -> x
_theUpdated :: Updated x -> x
_theUpdated (Updated !x
x) = x
x
{-# INLINE _theUpdated #-}

theUpdated :: forall a b p f. (Profunctor p, Functor f) => p a (f b) -> p (Updated a) (f (Updated b))
theUpdated :: p a (f b) -> p (Updated a) (f (Updated b))
theUpdated = (Updated a -> a)
-> (f b -> f (Updated b))
-> p a (f b)
-> p (Updated a) (f (Updated b))
forall (p :: * -> * -> *) a b c d.
Profunctor p =>
(a -> b) -> (c -> d) -> p b c -> p a d
dimap Updated a -> a
forall a. Updated a -> a
_theUpdated ((b -> Updated b) -> f b -> f (Updated b)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap b -> Updated b
forall a. a -> Updated a
Updated)
{-# INLINE theUpdated #-}