module Data.Lens.Barlow.Types where

import GHC.TypeLits (Natural, Symbol)
import GHC.TypeNats (Nat)

data Tag
  = Tag'Dot
  | Tag'QuestionMark
  | Tag'RightArrow
  | Tag'LeftArrow
  | Tag'Plus
  | Tag'ExclamationMark
  | Tag'PercentageName Symbol
  | Tag'PercentageNumber Nat
  | Tag'Name Symbol

data TagVal
  = TagVal'Dot
  | TagVal'QuestionMark
  | TagVal'RightArrow
  | TagVal'LeftArrow
  | TagVal'Plus
  | TagVal'ExclamationMark
  | TagVal'PercentageName String
  | TagVal'PercentageNumber Natural
  | TagVal'Name String
  deriving (Int -> TagVal -> ShowS
[TagVal] -> ShowS
TagVal -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TagVal] -> ShowS
$cshowList :: [TagVal] -> ShowS
show :: TagVal -> String
$cshow :: TagVal -> String
showsPrec :: Int -> TagVal -> ShowS
$cshowsPrec :: Int -> TagVal -> ShowS
Show, TagVal -> TagVal -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TagVal -> TagVal -> Bool
$c/= :: TagVal -> TagVal -> Bool
== :: TagVal -> TagVal -> Bool
$c== :: TagVal -> TagVal -> Bool
Eq)