module Unison.PatternMatchCoverage.ListPat where

import Unison.Util.Pretty

data ListPat
  = Cons
  | Snoc
  | Nil
  deriving stock (Int -> ListPat -> ShowS
[ListPat] -> ShowS
ListPat -> String
(Int -> ListPat -> ShowS)
-> (ListPat -> String) -> ([ListPat] -> ShowS) -> Show ListPat
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ListPat -> ShowS
showsPrec :: Int -> ListPat -> ShowS
$cshow :: ListPat -> String
show :: ListPat -> String
$cshowList :: [ListPat] -> ShowS
showList :: [ListPat] -> ShowS
Show, ListPat -> ListPat -> Bool
(ListPat -> ListPat -> Bool)
-> (ListPat -> ListPat -> Bool) -> Eq ListPat
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ListPat -> ListPat -> Bool
== :: ListPat -> ListPat -> Bool
$c/= :: ListPat -> ListPat -> Bool
/= :: ListPat -> ListPat -> Bool
Eq, Eq ListPat
Eq ListPat =>
(ListPat -> ListPat -> Ordering)
-> (ListPat -> ListPat -> Bool)
-> (ListPat -> ListPat -> Bool)
-> (ListPat -> ListPat -> Bool)
-> (ListPat -> ListPat -> Bool)
-> (ListPat -> ListPat -> ListPat)
-> (ListPat -> ListPat -> ListPat)
-> Ord ListPat
ListPat -> ListPat -> Bool
ListPat -> ListPat -> Ordering
ListPat -> ListPat -> ListPat
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 :: ListPat -> ListPat -> Ordering
compare :: ListPat -> ListPat -> Ordering
$c< :: ListPat -> ListPat -> Bool
< :: ListPat -> ListPat -> Bool
$c<= :: ListPat -> ListPat -> Bool
<= :: ListPat -> ListPat -> Bool
$c> :: ListPat -> ListPat -> Bool
> :: ListPat -> ListPat -> Bool
$c>= :: ListPat -> ListPat -> Bool
>= :: ListPat -> ListPat -> Bool
$cmax :: ListPat -> ListPat -> ListPat
max :: ListPat -> ListPat -> ListPat
$cmin :: ListPat -> ListPat -> ListPat
min :: ListPat -> ListPat -> ListPat
Ord)

prettyListPat :: ListPat -> Pretty ColorText
prettyListPat :: ListPat -> Pretty ColorText
prettyListPat = \case
  ListPat
Cons -> Pretty ColorText
"Cons"
  ListPat
Snoc -> Pretty ColorText
"Snoc"
  ListPat
Nil -> Pretty ColorText
"Nil"