{-# LANGUAGE DeriveAnyClass             #-}
{-# LANGUAGE DerivingStrategies         #-}
{-# LANGUAGE DerivingVia                #-}
{-# LANGUAGE GeneralisedNewtypeDeriving #-}

module HS.Types.Manager where

import           Data.String
import           Data.Text(Text)
import           Fmt
import           Text.Enum.Text


-- | installation manager @stack@ or @ghcup@ or ...
newtype Manager = Manager { Manager -> Text
getManager :: Text }
  deriving stock (Manager -> Manager -> Bool
(Manager -> Manager -> Bool)
-> (Manager -> Manager -> Bool) -> Eq Manager
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Manager -> Manager -> Bool
$c/= :: Manager -> Manager -> Bool
== :: Manager -> Manager -> Bool
$c== :: Manager -> Manager -> Bool
Eq,Eq Manager
Eq Manager
-> (Manager -> Manager -> Ordering)
-> (Manager -> Manager -> Bool)
-> (Manager -> Manager -> Bool)
-> (Manager -> Manager -> Bool)
-> (Manager -> Manager -> Bool)
-> (Manager -> Manager -> Manager)
-> (Manager -> Manager -> Manager)
-> Ord Manager
Manager -> Manager -> Bool
Manager -> Manager -> Ordering
Manager -> Manager -> Manager
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 :: Manager -> Manager -> Manager
$cmin :: Manager -> Manager -> Manager
max :: Manager -> Manager -> Manager
$cmax :: Manager -> Manager -> Manager
>= :: Manager -> Manager -> Bool
$c>= :: Manager -> Manager -> Bool
> :: Manager -> Manager -> Bool
$c> :: Manager -> Manager -> Bool
<= :: Manager -> Manager -> Bool
$c<= :: Manager -> Manager -> Bool
< :: Manager -> Manager -> Bool
$c< :: Manager -> Manager -> Bool
compare :: Manager -> Manager -> Ordering
$ccompare :: Manager -> Manager -> Ordering
$cp1Ord :: Eq Manager
Ord,Int -> Manager -> ShowS
[Manager] -> ShowS
Manager -> String
(Int -> Manager -> ShowS)
-> (Manager -> String) -> ([Manager] -> ShowS) -> Show Manager
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Manager] -> ShowS
$cshowList :: [Manager] -> ShowS
show :: Manager -> String
$cshow :: Manager -> String
showsPrec :: Int -> Manager -> ShowS
$cshowsPrec :: Int -> Manager -> ShowS
Show)
  deriving newtype (Manager -> Builder
(Manager -> Builder) -> Buildable Manager
forall p. (p -> Builder) -> Buildable p
build :: Manager -> Builder
$cbuild :: Manager -> Builder
Buildable,String -> Manager
(String -> Manager) -> IsString Manager
forall a. (String -> a) -> IsString a
fromString :: String -> Manager
$cfromString :: String -> Manager
IsString,Text -> Possibly Manager
(Text -> Possibly Manager) -> TextParsable Manager
forall a. (Text -> Possibly a) -> TextParsable a
parseText :: Text -> Possibly Manager
$cparseText :: Text -> Possibly Manager
TextParsable)