module Hydra.Mantle where
import qualified Hydra.Core as Core
import Data.Int
import Data.List as L
import Data.Map as M
import Data.Set as S
data Either_ a b =
EitherLeft a |
EitherRight b
deriving (Either_ a b -> Either_ a b -> Bool
(Either_ a b -> Either_ a b -> Bool)
-> (Either_ a b -> Either_ a b -> Bool) -> Eq (Either_ a b)
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
forall a b. (Eq a, Eq b) => Either_ a b -> Either_ a b -> Bool
$c== :: forall a b. (Eq a, Eq b) => Either_ a b -> Either_ a b -> Bool
== :: Either_ a b -> Either_ a b -> Bool
$c/= :: forall a b. (Eq a, Eq b) => Either_ a b -> Either_ a b -> Bool
/= :: Either_ a b -> Either_ a b -> Bool
Eq, Eq (Either_ a b)
Eq (Either_ a b) =>
(Either_ a b -> Either_ a b -> Ordering)
-> (Either_ a b -> Either_ a b -> Bool)
-> (Either_ a b -> Either_ a b -> Bool)
-> (Either_ a b -> Either_ a b -> Bool)
-> (Either_ a b -> Either_ a b -> Bool)
-> (Either_ a b -> Either_ a b -> Either_ a b)
-> (Either_ a b -> Either_ a b -> Either_ a b)
-> Ord (Either_ a b)
Either_ a b -> Either_ a b -> Bool
Either_ a b -> Either_ a b -> Ordering
Either_ a b -> Either_ a b -> Either_ a b
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
forall a b. (Ord a, Ord b) => Eq (Either_ a b)
forall a b. (Ord a, Ord b) => Either_ a b -> Either_ a b -> Bool
forall a b.
(Ord a, Ord b) =>
Either_ a b -> Either_ a b -> Ordering
forall a b.
(Ord a, Ord b) =>
Either_ a b -> Either_ a b -> Either_ a b
$ccompare :: forall a b.
(Ord a, Ord b) =>
Either_ a b -> Either_ a b -> Ordering
compare :: Either_ a b -> Either_ a b -> Ordering
$c< :: forall a b. (Ord a, Ord b) => Either_ a b -> Either_ a b -> Bool
< :: Either_ a b -> Either_ a b -> Bool
$c<= :: forall a b. (Ord a, Ord b) => Either_ a b -> Either_ a b -> Bool
<= :: Either_ a b -> Either_ a b -> Bool
$c> :: forall a b. (Ord a, Ord b) => Either_ a b -> Either_ a b -> Bool
> :: Either_ a b -> Either_ a b -> Bool
$c>= :: forall a b. (Ord a, Ord b) => Either_ a b -> Either_ a b -> Bool
>= :: Either_ a b -> Either_ a b -> Bool
$cmax :: forall a b.
(Ord a, Ord b) =>
Either_ a b -> Either_ a b -> Either_ a b
max :: Either_ a b -> Either_ a b -> Either_ a b
$cmin :: forall a b.
(Ord a, Ord b) =>
Either_ a b -> Either_ a b -> Either_ a b
min :: Either_ a b -> Either_ a b -> Either_ a b
Ord, ReadPrec [Either_ a b]
ReadPrec (Either_ a b)
Int -> ReadS (Either_ a b)
ReadS [Either_ a b]
(Int -> ReadS (Either_ a b))
-> ReadS [Either_ a b]
-> ReadPrec (Either_ a b)
-> ReadPrec [Either_ a b]
-> Read (Either_ a b)
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
forall a b. (Read a, Read b) => ReadPrec [Either_ a b]
forall a b. (Read a, Read b) => ReadPrec (Either_ a b)
forall a b. (Read a, Read b) => Int -> ReadS (Either_ a b)
forall a b. (Read a, Read b) => ReadS [Either_ a b]
$creadsPrec :: forall a b. (Read a, Read b) => Int -> ReadS (Either_ a b)
readsPrec :: Int -> ReadS (Either_ a b)
$creadList :: forall a b. (Read a, Read b) => ReadS [Either_ a b]
readList :: ReadS [Either_ a b]
$creadPrec :: forall a b. (Read a, Read b) => ReadPrec (Either_ a b)
readPrec :: ReadPrec (Either_ a b)
$creadListPrec :: forall a b. (Read a, Read b) => ReadPrec [Either_ a b]
readListPrec :: ReadPrec [Either_ a b]
Read, Int -> Either_ a b -> ShowS
[Either_ a b] -> ShowS
Either_ a b -> String
(Int -> Either_ a b -> ShowS)
-> (Either_ a b -> String)
-> ([Either_ a b] -> ShowS)
-> Show (Either_ a b)
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
forall a b. (Show a, Show b) => Int -> Either_ a b -> ShowS
forall a b. (Show a, Show b) => [Either_ a b] -> ShowS
forall a b. (Show a, Show b) => Either_ a b -> String
$cshowsPrec :: forall a b. (Show a, Show b) => Int -> Either_ a b -> ShowS
showsPrec :: Int -> Either_ a b -> ShowS
$cshow :: forall a b. (Show a, Show b) => Either_ a b -> String
show :: Either_ a b -> String
$cshowList :: forall a b. (Show a, Show b) => [Either_ a b] -> ShowS
showList :: [Either_ a b] -> ShowS
Show)
_Either :: Name
_Either = (String -> Name
Core.Name String
"hydra/mantle.Either")
_Either_left :: Name
_Either_left = (String -> Name
Core.Name String
"left")
_Either_right :: Name
_Either_right = (String -> Name
Core.Name String
"right")
data EliminationVariant =
EliminationVariantList |
EliminationVariantOptional |
EliminationVariantProduct |
EliminationVariantRecord |
EliminationVariantUnion |
EliminationVariantWrap
deriving (EliminationVariant -> EliminationVariant -> Bool
(EliminationVariant -> EliminationVariant -> Bool)
-> (EliminationVariant -> EliminationVariant -> Bool)
-> Eq EliminationVariant
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: EliminationVariant -> EliminationVariant -> Bool
== :: EliminationVariant -> EliminationVariant -> Bool
$c/= :: EliminationVariant -> EliminationVariant -> Bool
/= :: EliminationVariant -> EliminationVariant -> Bool
Eq, Eq EliminationVariant
Eq EliminationVariant =>
(EliminationVariant -> EliminationVariant -> Ordering)
-> (EliminationVariant -> EliminationVariant -> Bool)
-> (EliminationVariant -> EliminationVariant -> Bool)
-> (EliminationVariant -> EliminationVariant -> Bool)
-> (EliminationVariant -> EliminationVariant -> Bool)
-> (EliminationVariant -> EliminationVariant -> EliminationVariant)
-> (EliminationVariant -> EliminationVariant -> EliminationVariant)
-> Ord EliminationVariant
EliminationVariant -> EliminationVariant -> Bool
EliminationVariant -> EliminationVariant -> Ordering
EliminationVariant -> EliminationVariant -> EliminationVariant
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 :: EliminationVariant -> EliminationVariant -> Ordering
compare :: EliminationVariant -> EliminationVariant -> Ordering
$c< :: EliminationVariant -> EliminationVariant -> Bool
< :: EliminationVariant -> EliminationVariant -> Bool
$c<= :: EliminationVariant -> EliminationVariant -> Bool
<= :: EliminationVariant -> EliminationVariant -> Bool
$c> :: EliminationVariant -> EliminationVariant -> Bool
> :: EliminationVariant -> EliminationVariant -> Bool
$c>= :: EliminationVariant -> EliminationVariant -> Bool
>= :: EliminationVariant -> EliminationVariant -> Bool
$cmax :: EliminationVariant -> EliminationVariant -> EliminationVariant
max :: EliminationVariant -> EliminationVariant -> EliminationVariant
$cmin :: EliminationVariant -> EliminationVariant -> EliminationVariant
min :: EliminationVariant -> EliminationVariant -> EliminationVariant
Ord, ReadPrec [EliminationVariant]
ReadPrec EliminationVariant
Int -> ReadS EliminationVariant
ReadS [EliminationVariant]
(Int -> ReadS EliminationVariant)
-> ReadS [EliminationVariant]
-> ReadPrec EliminationVariant
-> ReadPrec [EliminationVariant]
-> Read EliminationVariant
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS EliminationVariant
readsPrec :: Int -> ReadS EliminationVariant
$creadList :: ReadS [EliminationVariant]
readList :: ReadS [EliminationVariant]
$creadPrec :: ReadPrec EliminationVariant
readPrec :: ReadPrec EliminationVariant
$creadListPrec :: ReadPrec [EliminationVariant]
readListPrec :: ReadPrec [EliminationVariant]
Read, Int -> EliminationVariant -> ShowS
[EliminationVariant] -> ShowS
EliminationVariant -> String
(Int -> EliminationVariant -> ShowS)
-> (EliminationVariant -> String)
-> ([EliminationVariant] -> ShowS)
-> Show EliminationVariant
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> EliminationVariant -> ShowS
showsPrec :: Int -> EliminationVariant -> ShowS
$cshow :: EliminationVariant -> String
show :: EliminationVariant -> String
$cshowList :: [EliminationVariant] -> ShowS
showList :: [EliminationVariant] -> ShowS
Show)
_EliminationVariant :: Name
_EliminationVariant = (String -> Name
Core.Name String
"hydra/mantle.EliminationVariant")
_EliminationVariant_list :: Name
_EliminationVariant_list = (String -> Name
Core.Name String
"list")
_EliminationVariant_optional :: Name
_EliminationVariant_optional = (String -> Name
Core.Name String
"optional")
_EliminationVariant_product :: Name
_EliminationVariant_product = (String -> Name
Core.Name String
"product")
_EliminationVariant_record :: Name
_EliminationVariant_record = (String -> Name
Core.Name String
"record")
_EliminationVariant_union :: Name
_EliminationVariant_union = (String -> Name
Core.Name String
"union")
_EliminationVariant_wrap :: Name
_EliminationVariant_wrap = (String -> Name
Core.Name String
"wrap")
data FunctionVariant =
FunctionVariantElimination |
FunctionVariantLambda |
FunctionVariantPrimitive
deriving (FunctionVariant -> FunctionVariant -> Bool
(FunctionVariant -> FunctionVariant -> Bool)
-> (FunctionVariant -> FunctionVariant -> Bool)
-> Eq FunctionVariant
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: FunctionVariant -> FunctionVariant -> Bool
== :: FunctionVariant -> FunctionVariant -> Bool
$c/= :: FunctionVariant -> FunctionVariant -> Bool
/= :: FunctionVariant -> FunctionVariant -> Bool
Eq, Eq FunctionVariant
Eq FunctionVariant =>
(FunctionVariant -> FunctionVariant -> Ordering)
-> (FunctionVariant -> FunctionVariant -> Bool)
-> (FunctionVariant -> FunctionVariant -> Bool)
-> (FunctionVariant -> FunctionVariant -> Bool)
-> (FunctionVariant -> FunctionVariant -> Bool)
-> (FunctionVariant -> FunctionVariant -> FunctionVariant)
-> (FunctionVariant -> FunctionVariant -> FunctionVariant)
-> Ord FunctionVariant
FunctionVariant -> FunctionVariant -> Bool
FunctionVariant -> FunctionVariant -> Ordering
FunctionVariant -> FunctionVariant -> FunctionVariant
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 :: FunctionVariant -> FunctionVariant -> Ordering
compare :: FunctionVariant -> FunctionVariant -> Ordering
$c< :: FunctionVariant -> FunctionVariant -> Bool
< :: FunctionVariant -> FunctionVariant -> Bool
$c<= :: FunctionVariant -> FunctionVariant -> Bool
<= :: FunctionVariant -> FunctionVariant -> Bool
$c> :: FunctionVariant -> FunctionVariant -> Bool
> :: FunctionVariant -> FunctionVariant -> Bool
$c>= :: FunctionVariant -> FunctionVariant -> Bool
>= :: FunctionVariant -> FunctionVariant -> Bool
$cmax :: FunctionVariant -> FunctionVariant -> FunctionVariant
max :: FunctionVariant -> FunctionVariant -> FunctionVariant
$cmin :: FunctionVariant -> FunctionVariant -> FunctionVariant
min :: FunctionVariant -> FunctionVariant -> FunctionVariant
Ord, ReadPrec [FunctionVariant]
ReadPrec FunctionVariant
Int -> ReadS FunctionVariant
ReadS [FunctionVariant]
(Int -> ReadS FunctionVariant)
-> ReadS [FunctionVariant]
-> ReadPrec FunctionVariant
-> ReadPrec [FunctionVariant]
-> Read FunctionVariant
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS FunctionVariant
readsPrec :: Int -> ReadS FunctionVariant
$creadList :: ReadS [FunctionVariant]
readList :: ReadS [FunctionVariant]
$creadPrec :: ReadPrec FunctionVariant
readPrec :: ReadPrec FunctionVariant
$creadListPrec :: ReadPrec [FunctionVariant]
readListPrec :: ReadPrec [FunctionVariant]
Read, Int -> FunctionVariant -> ShowS
[FunctionVariant] -> ShowS
FunctionVariant -> String
(Int -> FunctionVariant -> ShowS)
-> (FunctionVariant -> String)
-> ([FunctionVariant] -> ShowS)
-> Show FunctionVariant
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> FunctionVariant -> ShowS
showsPrec :: Int -> FunctionVariant -> ShowS
$cshow :: FunctionVariant -> String
show :: FunctionVariant -> String
$cshowList :: [FunctionVariant] -> ShowS
showList :: [FunctionVariant] -> ShowS
Show)
_FunctionVariant :: Name
_FunctionVariant = (String -> Name
Core.Name String
"hydra/mantle.FunctionVariant")
_FunctionVariant_elimination :: Name
_FunctionVariant_elimination = (String -> Name
Core.Name String
"elimination")
_FunctionVariant_lambda :: Name
_FunctionVariant_lambda = (String -> Name
Core.Name String
"lambda")
_FunctionVariant_primitive :: Name
_FunctionVariant_primitive = (String -> Name
Core.Name String
"primitive")
data LiteralVariant =
LiteralVariantBinary |
LiteralVariantBoolean |
LiteralVariantFloat |
LiteralVariantInteger |
LiteralVariantString
deriving (LiteralVariant -> LiteralVariant -> Bool
(LiteralVariant -> LiteralVariant -> Bool)
-> (LiteralVariant -> LiteralVariant -> Bool) -> Eq LiteralVariant
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: LiteralVariant -> LiteralVariant -> Bool
== :: LiteralVariant -> LiteralVariant -> Bool
$c/= :: LiteralVariant -> LiteralVariant -> Bool
/= :: LiteralVariant -> LiteralVariant -> Bool
Eq, Eq LiteralVariant
Eq LiteralVariant =>
(LiteralVariant -> LiteralVariant -> Ordering)
-> (LiteralVariant -> LiteralVariant -> Bool)
-> (LiteralVariant -> LiteralVariant -> Bool)
-> (LiteralVariant -> LiteralVariant -> Bool)
-> (LiteralVariant -> LiteralVariant -> Bool)
-> (LiteralVariant -> LiteralVariant -> LiteralVariant)
-> (LiteralVariant -> LiteralVariant -> LiteralVariant)
-> Ord LiteralVariant
LiteralVariant -> LiteralVariant -> Bool
LiteralVariant -> LiteralVariant -> Ordering
LiteralVariant -> LiteralVariant -> LiteralVariant
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 :: LiteralVariant -> LiteralVariant -> Ordering
compare :: LiteralVariant -> LiteralVariant -> Ordering
$c< :: LiteralVariant -> LiteralVariant -> Bool
< :: LiteralVariant -> LiteralVariant -> Bool
$c<= :: LiteralVariant -> LiteralVariant -> Bool
<= :: LiteralVariant -> LiteralVariant -> Bool
$c> :: LiteralVariant -> LiteralVariant -> Bool
> :: LiteralVariant -> LiteralVariant -> Bool
$c>= :: LiteralVariant -> LiteralVariant -> Bool
>= :: LiteralVariant -> LiteralVariant -> Bool
$cmax :: LiteralVariant -> LiteralVariant -> LiteralVariant
max :: LiteralVariant -> LiteralVariant -> LiteralVariant
$cmin :: LiteralVariant -> LiteralVariant -> LiteralVariant
min :: LiteralVariant -> LiteralVariant -> LiteralVariant
Ord, ReadPrec [LiteralVariant]
ReadPrec LiteralVariant
Int -> ReadS LiteralVariant
ReadS [LiteralVariant]
(Int -> ReadS LiteralVariant)
-> ReadS [LiteralVariant]
-> ReadPrec LiteralVariant
-> ReadPrec [LiteralVariant]
-> Read LiteralVariant
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS LiteralVariant
readsPrec :: Int -> ReadS LiteralVariant
$creadList :: ReadS [LiteralVariant]
readList :: ReadS [LiteralVariant]
$creadPrec :: ReadPrec LiteralVariant
readPrec :: ReadPrec LiteralVariant
$creadListPrec :: ReadPrec [LiteralVariant]
readListPrec :: ReadPrec [LiteralVariant]
Read, Int -> LiteralVariant -> ShowS
[LiteralVariant] -> ShowS
LiteralVariant -> String
(Int -> LiteralVariant -> ShowS)
-> (LiteralVariant -> String)
-> ([LiteralVariant] -> ShowS)
-> Show LiteralVariant
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> LiteralVariant -> ShowS
showsPrec :: Int -> LiteralVariant -> ShowS
$cshow :: LiteralVariant -> String
show :: LiteralVariant -> String
$cshowList :: [LiteralVariant] -> ShowS
showList :: [LiteralVariant] -> ShowS
Show)
_LiteralVariant :: Name
_LiteralVariant = (String -> Name
Core.Name String
"hydra/mantle.LiteralVariant")
_LiteralVariant_binary :: Name
_LiteralVariant_binary = (String -> Name
Core.Name String
"binary")
_LiteralVariant_boolean :: Name
_LiteralVariant_boolean = (String -> Name
Core.Name String
"boolean")
_LiteralVariant_float :: Name
_LiteralVariant_float = (String -> Name
Core.Name String
"float")
_LiteralVariant_integer :: Name
_LiteralVariant_integer = (String -> Name
Core.Name String
"integer")
_LiteralVariant_string :: Name
_LiteralVariant_string = (String -> Name
Core.Name String
"string")
data Precision =
PrecisionArbitrary |
PrecisionBits Int
deriving (Precision -> Precision -> Bool
(Precision -> Precision -> Bool)
-> (Precision -> Precision -> Bool) -> Eq Precision
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Precision -> Precision -> Bool
== :: Precision -> Precision -> Bool
$c/= :: Precision -> Precision -> Bool
/= :: Precision -> Precision -> Bool
Eq, Eq Precision
Eq Precision =>
(Precision -> Precision -> Ordering)
-> (Precision -> Precision -> Bool)
-> (Precision -> Precision -> Bool)
-> (Precision -> Precision -> Bool)
-> (Precision -> Precision -> Bool)
-> (Precision -> Precision -> Precision)
-> (Precision -> Precision -> Precision)
-> Ord Precision
Precision -> Precision -> Bool
Precision -> Precision -> Ordering
Precision -> Precision -> Precision
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 :: Precision -> Precision -> Ordering
compare :: Precision -> Precision -> Ordering
$c< :: Precision -> Precision -> Bool
< :: Precision -> Precision -> Bool
$c<= :: Precision -> Precision -> Bool
<= :: Precision -> Precision -> Bool
$c> :: Precision -> Precision -> Bool
> :: Precision -> Precision -> Bool
$c>= :: Precision -> Precision -> Bool
>= :: Precision -> Precision -> Bool
$cmax :: Precision -> Precision -> Precision
max :: Precision -> Precision -> Precision
$cmin :: Precision -> Precision -> Precision
min :: Precision -> Precision -> Precision
Ord, ReadPrec [Precision]
ReadPrec Precision
Int -> ReadS Precision
ReadS [Precision]
(Int -> ReadS Precision)
-> ReadS [Precision]
-> ReadPrec Precision
-> ReadPrec [Precision]
-> Read Precision
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS Precision
readsPrec :: Int -> ReadS Precision
$creadList :: ReadS [Precision]
readList :: ReadS [Precision]
$creadPrec :: ReadPrec Precision
readPrec :: ReadPrec Precision
$creadListPrec :: ReadPrec [Precision]
readListPrec :: ReadPrec [Precision]
Read, Int -> Precision -> ShowS
[Precision] -> ShowS
Precision -> String
(Int -> Precision -> ShowS)
-> (Precision -> String)
-> ([Precision] -> ShowS)
-> Show Precision
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Precision -> ShowS
showsPrec :: Int -> Precision -> ShowS
$cshow :: Precision -> String
show :: Precision -> String
$cshowList :: [Precision] -> ShowS
showList :: [Precision] -> ShowS
Show)
_Precision :: Name
_Precision = (String -> Name
Core.Name String
"hydra/mantle.Precision")
_Precision_arbitrary :: Name
_Precision_arbitrary = (String -> Name
Core.Name String
"arbitrary")
_Precision_bits :: Name
_Precision_bits = (String -> Name
Core.Name String
"bits")
data TermVariant =
TermVariantAnnotated |
TermVariantApplication |
TermVariantFunction |
TermVariantLet |
TermVariantList |
TermVariantLiteral |
TermVariantMap |
TermVariantOptional |
TermVariantProduct |
TermVariantRecord |
TermVariantSet |
TermVariantSum |
TermVariantTyped |
TermVariantUnion |
TermVariantVariable |
TermVariantWrap
deriving (TermVariant -> TermVariant -> Bool
(TermVariant -> TermVariant -> Bool)
-> (TermVariant -> TermVariant -> Bool) -> Eq TermVariant
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TermVariant -> TermVariant -> Bool
== :: TermVariant -> TermVariant -> Bool
$c/= :: TermVariant -> TermVariant -> Bool
/= :: TermVariant -> TermVariant -> Bool
Eq, Eq TermVariant
Eq TermVariant =>
(TermVariant -> TermVariant -> Ordering)
-> (TermVariant -> TermVariant -> Bool)
-> (TermVariant -> TermVariant -> Bool)
-> (TermVariant -> TermVariant -> Bool)
-> (TermVariant -> TermVariant -> Bool)
-> (TermVariant -> TermVariant -> TermVariant)
-> (TermVariant -> TermVariant -> TermVariant)
-> Ord TermVariant
TermVariant -> TermVariant -> Bool
TermVariant -> TermVariant -> Ordering
TermVariant -> TermVariant -> TermVariant
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 :: TermVariant -> TermVariant -> Ordering
compare :: TermVariant -> TermVariant -> Ordering
$c< :: TermVariant -> TermVariant -> Bool
< :: TermVariant -> TermVariant -> Bool
$c<= :: TermVariant -> TermVariant -> Bool
<= :: TermVariant -> TermVariant -> Bool
$c> :: TermVariant -> TermVariant -> Bool
> :: TermVariant -> TermVariant -> Bool
$c>= :: TermVariant -> TermVariant -> Bool
>= :: TermVariant -> TermVariant -> Bool
$cmax :: TermVariant -> TermVariant -> TermVariant
max :: TermVariant -> TermVariant -> TermVariant
$cmin :: TermVariant -> TermVariant -> TermVariant
min :: TermVariant -> TermVariant -> TermVariant
Ord, ReadPrec [TermVariant]
ReadPrec TermVariant
Int -> ReadS TermVariant
ReadS [TermVariant]
(Int -> ReadS TermVariant)
-> ReadS [TermVariant]
-> ReadPrec TermVariant
-> ReadPrec [TermVariant]
-> Read TermVariant
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS TermVariant
readsPrec :: Int -> ReadS TermVariant
$creadList :: ReadS [TermVariant]
readList :: ReadS [TermVariant]
$creadPrec :: ReadPrec TermVariant
readPrec :: ReadPrec TermVariant
$creadListPrec :: ReadPrec [TermVariant]
readListPrec :: ReadPrec [TermVariant]
Read, Int -> TermVariant -> ShowS
[TermVariant] -> ShowS
TermVariant -> String
(Int -> TermVariant -> ShowS)
-> (TermVariant -> String)
-> ([TermVariant] -> ShowS)
-> Show TermVariant
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TermVariant -> ShowS
showsPrec :: Int -> TermVariant -> ShowS
$cshow :: TermVariant -> String
show :: TermVariant -> String
$cshowList :: [TermVariant] -> ShowS
showList :: [TermVariant] -> ShowS
Show)
_TermVariant :: Name
_TermVariant = (String -> Name
Core.Name String
"hydra/mantle.TermVariant")
_TermVariant_annotated :: Name
_TermVariant_annotated = (String -> Name
Core.Name String
"annotated")
_TermVariant_application :: Name
_TermVariant_application = (String -> Name
Core.Name String
"application")
_TermVariant_function :: Name
_TermVariant_function = (String -> Name
Core.Name String
"function")
_TermVariant_let :: Name
_TermVariant_let = (String -> Name
Core.Name String
"let")
_TermVariant_list :: Name
_TermVariant_list = (String -> Name
Core.Name String
"list")
_TermVariant_literal :: Name
_TermVariant_literal = (String -> Name
Core.Name String
"literal")
_TermVariant_map :: Name
_TermVariant_map = (String -> Name
Core.Name String
"map")
_TermVariant_optional :: Name
_TermVariant_optional = (String -> Name
Core.Name String
"optional")
_TermVariant_product :: Name
_TermVariant_product = (String -> Name
Core.Name String
"product")
_TermVariant_record :: Name
_TermVariant_record = (String -> Name
Core.Name String
"record")
_TermVariant_set :: Name
_TermVariant_set = (String -> Name
Core.Name String
"set")
_TermVariant_sum :: Name
_TermVariant_sum = (String -> Name
Core.Name String
"sum")
_TermVariant_typed :: Name
_TermVariant_typed = (String -> Name
Core.Name String
"typed")
_TermVariant_union :: Name
_TermVariant_union = (String -> Name
Core.Name String
"union")
_TermVariant_variable :: Name
_TermVariant_variable = (String -> Name
Core.Name String
"variable")
_TermVariant_wrap :: Name
_TermVariant_wrap = (String -> Name
Core.Name String
"wrap")
data TypeVariant =
TypeVariantAnnotated |
TypeVariantApplication |
TypeVariantFunction |
TypeVariantLambda |
TypeVariantList |
TypeVariantLiteral |
TypeVariantMap |
TypeVariantOptional |
TypeVariantProduct |
TypeVariantRecord |
TypeVariantSet |
TypeVariantSum |
TypeVariantUnion |
TypeVariantVariable |
TypeVariantWrap
deriving (TypeVariant -> TypeVariant -> Bool
(TypeVariant -> TypeVariant -> Bool)
-> (TypeVariant -> TypeVariant -> Bool) -> Eq TypeVariant
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TypeVariant -> TypeVariant -> Bool
== :: TypeVariant -> TypeVariant -> Bool
$c/= :: TypeVariant -> TypeVariant -> Bool
/= :: TypeVariant -> TypeVariant -> Bool
Eq, Eq TypeVariant
Eq TypeVariant =>
(TypeVariant -> TypeVariant -> Ordering)
-> (TypeVariant -> TypeVariant -> Bool)
-> (TypeVariant -> TypeVariant -> Bool)
-> (TypeVariant -> TypeVariant -> Bool)
-> (TypeVariant -> TypeVariant -> Bool)
-> (TypeVariant -> TypeVariant -> TypeVariant)
-> (TypeVariant -> TypeVariant -> TypeVariant)
-> Ord TypeVariant
TypeVariant -> TypeVariant -> Bool
TypeVariant -> TypeVariant -> Ordering
TypeVariant -> TypeVariant -> TypeVariant
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 :: TypeVariant -> TypeVariant -> Ordering
compare :: TypeVariant -> TypeVariant -> Ordering
$c< :: TypeVariant -> TypeVariant -> Bool
< :: TypeVariant -> TypeVariant -> Bool
$c<= :: TypeVariant -> TypeVariant -> Bool
<= :: TypeVariant -> TypeVariant -> Bool
$c> :: TypeVariant -> TypeVariant -> Bool
> :: TypeVariant -> TypeVariant -> Bool
$c>= :: TypeVariant -> TypeVariant -> Bool
>= :: TypeVariant -> TypeVariant -> Bool
$cmax :: TypeVariant -> TypeVariant -> TypeVariant
max :: TypeVariant -> TypeVariant -> TypeVariant
$cmin :: TypeVariant -> TypeVariant -> TypeVariant
min :: TypeVariant -> TypeVariant -> TypeVariant
Ord, ReadPrec [TypeVariant]
ReadPrec TypeVariant
Int -> ReadS TypeVariant
ReadS [TypeVariant]
(Int -> ReadS TypeVariant)
-> ReadS [TypeVariant]
-> ReadPrec TypeVariant
-> ReadPrec [TypeVariant]
-> Read TypeVariant
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS TypeVariant
readsPrec :: Int -> ReadS TypeVariant
$creadList :: ReadS [TypeVariant]
readList :: ReadS [TypeVariant]
$creadPrec :: ReadPrec TypeVariant
readPrec :: ReadPrec TypeVariant
$creadListPrec :: ReadPrec [TypeVariant]
readListPrec :: ReadPrec [TypeVariant]
Read, Int -> TypeVariant -> ShowS
[TypeVariant] -> ShowS
TypeVariant -> String
(Int -> TypeVariant -> ShowS)
-> (TypeVariant -> String)
-> ([TypeVariant] -> ShowS)
-> Show TypeVariant
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TypeVariant -> ShowS
showsPrec :: Int -> TypeVariant -> ShowS
$cshow :: TypeVariant -> String
show :: TypeVariant -> String
$cshowList :: [TypeVariant] -> ShowS
showList :: [TypeVariant] -> ShowS
Show)
_TypeVariant :: Name
_TypeVariant = (String -> Name
Core.Name String
"hydra/mantle.TypeVariant")
_TypeVariant_annotated :: Name
_TypeVariant_annotated = (String -> Name
Core.Name String
"annotated")
_TypeVariant_application :: Name
_TypeVariant_application = (String -> Name
Core.Name String
"application")
_TypeVariant_function :: Name
_TypeVariant_function = (String -> Name
Core.Name String
"function")
_TypeVariant_lambda :: Name
_TypeVariant_lambda = (String -> Name
Core.Name String
"lambda")
_TypeVariant_list :: Name
_TypeVariant_list = (String -> Name
Core.Name String
"list")
_TypeVariant_literal :: Name
_TypeVariant_literal = (String -> Name
Core.Name String
"literal")
_TypeVariant_map :: Name
_TypeVariant_map = (String -> Name
Core.Name String
"map")
_TypeVariant_optional :: Name
_TypeVariant_optional = (String -> Name
Core.Name String
"optional")
_TypeVariant_product :: Name
_TypeVariant_product = (String -> Name
Core.Name String
"product")
_TypeVariant_record :: Name
_TypeVariant_record = (String -> Name
Core.Name String
"record")
_TypeVariant_set :: Name
_TypeVariant_set = (String -> Name
Core.Name String
"set")
_TypeVariant_sum :: Name
_TypeVariant_sum = (String -> Name
Core.Name String
"sum")
_TypeVariant_union :: Name
_TypeVariant_union = (String -> Name
Core.Name String
"union")
_TypeVariant_variable :: Name
_TypeVariant_variable = (String -> Name
Core.Name String
"variable")
_TypeVariant_wrap :: Name
_TypeVariant_wrap = (String -> Name
Core.Name String
"wrap")