module CookieTray.Command.Many where import CookieTray (Action (..), Expiring (Expiring), Expiry, Meta (..), Named (..), ToCommandList (..), Tray, Value) import CookieTray qualified import CookieTray.Command (Command (Command)) import CookieTray.Command qualified as Command import Data.Functor ((<&>)) import Prelude (Eq, Ord, Show) data Many = Many { Many -> Tray (Action Value) tray :: Tray (Action Value), Many -> Expiry expiry :: Expiry, Many -> Meta meta :: Meta } deriving (Many -> Many -> Bool (Many -> Many -> Bool) -> (Many -> Many -> Bool) -> Eq Many forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: Many -> Many -> Bool == :: Many -> Many -> Bool $c/= :: Many -> Many -> Bool /= :: Many -> Many -> Bool Eq, Eq Many Eq Many => (Many -> Many -> Ordering) -> (Many -> Many -> Bool) -> (Many -> Many -> Bool) -> (Many -> Many -> Bool) -> (Many -> Many -> Bool) -> (Many -> Many -> Many) -> (Many -> Many -> Many) -> Ord Many Many -> Many -> Bool Many -> Many -> Ordering Many -> Many -> Many 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 $ccompare :: Many -> Many -> Ordering compare :: Many -> Many -> Ordering $c< :: Many -> Many -> Bool < :: Many -> Many -> Bool $c<= :: Many -> Many -> Bool <= :: Many -> Many -> Bool $c> :: Many -> Many -> Bool > :: Many -> Many -> Bool $c>= :: Many -> Many -> Bool >= :: Many -> Many -> Bool $cmax :: Many -> Many -> Many max :: Many -> Many -> Many $cmin :: Many -> Many -> Many min :: Many -> Many -> Many Ord, Int -> Many -> ShowS [Many] -> ShowS Many -> String (Int -> Many -> ShowS) -> (Many -> String) -> ([Many] -> ShowS) -> Show Many forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> Many -> ShowS showsPrec :: Int -> Many -> ShowS $cshow :: Many -> String show :: Many -> String $cshowList :: [Many] -> ShowS showList :: [Many] -> ShowS Show) instance ToCommandList Many where toCommandList :: Many -> [Command] toCommandList Many x = Tray (Action Value) -> [Named (Action Value)] forall a. Tray a -> [Named a] CookieTray.toList (Many -> Tray (Action Value) tray Many x) [Named (Action Value)] -> (Named (Action Value) -> Command) -> [Command] forall (f :: * -> *) a b. Functor f => f a -> (a -> b) -> f b <&> \Named (Action Value) y -> Command { name :: Name Command.name = Named (Action Value) -> Name forall a. Named a -> Name CookieTray.name Named (Action Value) y, meta :: Meta Command.meta = Many -> Meta meta Many x, action :: Action (Expiring Value) Command.action = Named (Action Value) -> Action Value forall a. Named a -> a value Named (Action Value) y Action Value -> (Value -> Expiring Value) -> Action (Expiring Value) forall (f :: * -> *) a b. Functor f => f a -> (a -> b) -> f b <&> \Value z -> Expiring { expiring :: Value CookieTray.expiring = Value z, expiry :: Expiry CookieTray.expiry = Many -> Expiry expiry Many x } }