module Ribosome.Menu.Data.BasicMenuAction where

import Ribosome.Menu.Data.Menu (Menu)
import Ribosome.Menu.Data.MenuEvent (QuitReason)

data BasicMenuChange =
  NoChange
  |
  Change
  |
  Reset
  deriving (BasicMenuChange -> BasicMenuChange -> Bool
(BasicMenuChange -> BasicMenuChange -> Bool)
-> (BasicMenuChange -> BasicMenuChange -> Bool)
-> Eq BasicMenuChange
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BasicMenuChange -> BasicMenuChange -> Bool
$c/= :: BasicMenuChange -> BasicMenuChange -> Bool
== :: BasicMenuChange -> BasicMenuChange -> Bool
$c== :: BasicMenuChange -> BasicMenuChange -> Bool
Eq, Int -> BasicMenuChange -> ShowS
[BasicMenuChange] -> ShowS
BasicMenuChange -> String
(Int -> BasicMenuChange -> ShowS)
-> (BasicMenuChange -> String)
-> ([BasicMenuChange] -> ShowS)
-> Show BasicMenuChange
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [BasicMenuChange] -> ShowS
$cshowList :: [BasicMenuChange] -> ShowS
show :: BasicMenuChange -> String
$cshow :: BasicMenuChange -> String
showsPrec :: Int -> BasicMenuChange -> ShowS
$cshowsPrec :: Int -> BasicMenuChange -> ShowS
Show)

data BasicMenuAction m a i =
  Continue BasicMenuChange (Menu i)
  |
  Quit (QuitReason m a)
  deriving (Int -> BasicMenuAction m a i -> ShowS
[BasicMenuAction m a i] -> ShowS
BasicMenuAction m a i -> String
(Int -> BasicMenuAction m a i -> ShowS)
-> (BasicMenuAction m a i -> String)
-> ([BasicMenuAction m a i] -> ShowS)
-> Show (BasicMenuAction m a i)
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
forall (m :: * -> *) a i.
Show i =>
Int -> BasicMenuAction m a i -> ShowS
forall (m :: * -> *) a i.
Show i =>
[BasicMenuAction m a i] -> ShowS
forall (m :: * -> *) a i. Show i => BasicMenuAction m a i -> String
showList :: [BasicMenuAction m a i] -> ShowS
$cshowList :: forall (m :: * -> *) a i.
Show i =>
[BasicMenuAction m a i] -> ShowS
show :: BasicMenuAction m a i -> String
$cshow :: forall (m :: * -> *) a i. Show i => BasicMenuAction m a i -> String
showsPrec :: Int -> BasicMenuAction m a i -> ShowS
$cshowsPrec :: forall (m :: * -> *) a i.
Show i =>
Int -> BasicMenuAction m a i -> ShowS
Show)