module Ribosome.Menu.Data.MenuConsumerAction where

import Ribosome.Menu.Prompt.Data.Prompt (Prompt)

data MenuConsumerAction m a =
  Quit
  |
  QuitWith (m a)
  |
  Continue
  |
  Execute (m ())
  |
  Filter
  |
  Render Bool
  |
  Return a
  |
  UpdatePrompt Prompt
  deriving (a -> MenuConsumerAction m b -> MenuConsumerAction m a
(a -> b) -> MenuConsumerAction m a -> MenuConsumerAction m b
(forall a b.
 (a -> b) -> MenuConsumerAction m a -> MenuConsumerAction m b)
-> (forall a b.
    a -> MenuConsumerAction m b -> MenuConsumerAction m a)
-> Functor (MenuConsumerAction m)
forall a b. a -> MenuConsumerAction m b -> MenuConsumerAction m a
forall a b.
(a -> b) -> MenuConsumerAction m a -> MenuConsumerAction m b
forall (m :: * -> *) a b.
Functor m =>
a -> MenuConsumerAction m b -> MenuConsumerAction m a
forall (m :: * -> *) a b.
Functor m =>
(a -> b) -> MenuConsumerAction m a -> MenuConsumerAction m b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
<$ :: a -> MenuConsumerAction m b -> MenuConsumerAction m a
$c<$ :: forall (m :: * -> *) a b.
Functor m =>
a -> MenuConsumerAction m b -> MenuConsumerAction m a
fmap :: (a -> b) -> MenuConsumerAction m a -> MenuConsumerAction m b
$cfmap :: forall (m :: * -> *) a b.
Functor m =>
(a -> b) -> MenuConsumerAction m a -> MenuConsumerAction m b
Functor)