{-# OPTIONS_GHC -fno-warn-missing-export-lists #-}

{- | Sum types pattern matching on @_@ -}

module Target.AntiPattern.Stan0213 where



stanLambda :: Ordering -> String
stanLambda :: Ordering -> [Char]
stanLambda = \case
    Ordering
EQ -> [Char]
"EQ"
    Ordering
_ -> [Char]
"Other"

stanLambdaLit :: Int -> String
stanLambdaLit :: Int -> [Char]
stanLambdaLit = \case
    Int
1 -> [Char]
"One"
    Int
_ -> [Char]
"Other"

stanCase :: Ordering -> String
stanCase :: Ordering -> [Char]
stanCase Ordering
o = case Ordering
o of
    Ordering
EQ -> [Char]
"EQ"
    Ordering
LT -> [Char]
"LT"
    Ordering
_  -> [Char]
"Other"

stanCaseLit :: String -> String
stanCaseLit :: [Char] -> [Char]
stanCaseLit [Char]
str = case Char
'x' Char -> [Char] -> [Char]
forall a. a -> [a] -> [a]
: [Char]
str of
    [Char]
"xAbc" -> [Char]
"Here"
    [Char]
"xBcc" -> [Char]
"There"
    [Char]
_      -> [Char]
"Far far away"

stanCaseNo :: Ordering -> String
stanCaseNo :: Ordering -> [Char]
stanCaseNo Ordering
o = case Ordering
o of
    Ordering
EQ -> [Char]
"EQ"
    Ordering
LT -> [Char]
"LT"
    Ordering
GT -> [Char]
"GT"

stanLambdaNo :: Ordering -> String
stanLambdaNo :: Ordering -> [Char]
stanLambdaNo = \case
    Ordering
EQ -> [Char]
"EQ"
    Ordering
LT -> [Char]
"LT"
    Ordering
GT -> [Char]
"GT"

stanMaybeCase :: Int -> Maybe Int -> Int
stanMaybeCase :: Int -> Maybe Int -> Int
stanMaybeCase Int
i Maybe Int
mb = case Maybe Int
mb of
    Just Int
x -> Int
x Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
1
    Maybe Int
_      -> Int
i Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
1

stanMaybeLambdaCase :: Int -> Maybe Int -> Int
stanMaybeLambdaCase :: Int -> Maybe Int -> Int
stanMaybeLambdaCase Int
i = \case
    Just Int
x -> Int
x Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
1
    Maybe Int
_      -> Int
i Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
1

stanMaybeLambdaCaseNo :: Int -> Maybe Int -> Int
stanMaybeLambdaCaseNo :: Int -> Maybe Int -> Int
stanMaybeLambdaCaseNo Int
i = \case
    Just Int
x -> Int
x Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
1
    Maybe Int
Nothing -> Int
i Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
1

stanMaybeLambdaCaseFirst_ :: Int -> Maybe Int -> Int
stanMaybeLambdaCaseFirst_ :: Int -> Maybe Int -> Int
stanMaybeLambdaCaseFirst_ Int
i = \case
    Maybe Int
_ -> Int
i Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
1

stanLambdaLitChar :: Char -> String
stanLambdaLitChar :: Char -> [Char]
stanLambdaLitChar = \case
    Char
'c' -> [Char]
"One"
    Char
_ -> [Char]
"Other"