module Hydra.Phantoms 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
newtype Case a =
Case {
forall a. Case a -> Name
unCase :: Core.Name}
deriving (Case a -> Case a -> Bool
(Case a -> Case a -> Bool)
-> (Case a -> Case a -> Bool) -> Eq (Case a)
forall a. Case a -> Case a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall a. Case a -> Case a -> Bool
== :: Case a -> Case a -> Bool
$c/= :: forall a. Case a -> Case a -> Bool
/= :: Case a -> Case a -> Bool
Eq, Eq (Case a)
Eq (Case a) =>
(Case a -> Case a -> Ordering)
-> (Case a -> Case a -> Bool)
-> (Case a -> Case a -> Bool)
-> (Case a -> Case a -> Bool)
-> (Case a -> Case a -> Bool)
-> (Case a -> Case a -> Case a)
-> (Case a -> Case a -> Case a)
-> Ord (Case a)
Case a -> Case a -> Bool
Case a -> Case a -> Ordering
Case a -> Case a -> Case a
forall a. Eq (Case a)
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. Case a -> Case a -> Bool
forall a. Case a -> Case a -> Ordering
forall a. Case a -> Case a -> Case a
$ccompare :: forall a. Case a -> Case a -> Ordering
compare :: Case a -> Case a -> Ordering
$c< :: forall a. Case a -> Case a -> Bool
< :: Case a -> Case a -> Bool
$c<= :: forall a. Case a -> Case a -> Bool
<= :: Case a -> Case a -> Bool
$c> :: forall a. Case a -> Case a -> Bool
> :: Case a -> Case a -> Bool
$c>= :: forall a. Case a -> Case a -> Bool
>= :: Case a -> Case a -> Bool
$cmax :: forall a. Case a -> Case a -> Case a
max :: Case a -> Case a -> Case a
$cmin :: forall a. Case a -> Case a -> Case a
min :: Case a -> Case a -> Case a
Ord, ReadPrec [Case a]
ReadPrec (Case a)
Int -> ReadS (Case a)
ReadS [Case a]
(Int -> ReadS (Case a))
-> ReadS [Case a]
-> ReadPrec (Case a)
-> ReadPrec [Case a]
-> Read (Case a)
forall a. ReadPrec [Case a]
forall a. ReadPrec (Case a)
forall a. Int -> ReadS (Case a)
forall a. ReadS [Case a]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: forall a. Int -> ReadS (Case a)
readsPrec :: Int -> ReadS (Case a)
$creadList :: forall a. ReadS [Case a]
readList :: ReadS [Case a]
$creadPrec :: forall a. ReadPrec (Case a)
readPrec :: ReadPrec (Case a)
$creadListPrec :: forall a. ReadPrec [Case a]
readListPrec :: ReadPrec [Case a]
Read, Int -> Case a -> ShowS
[Case a] -> ShowS
Case a -> String
(Int -> Case a -> ShowS)
-> (Case a -> String) -> ([Case a] -> ShowS) -> Show (Case a)
forall a. Int -> Case a -> ShowS
forall a. [Case a] -> ShowS
forall a. Case a -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall a. Int -> Case a -> ShowS
showsPrec :: Int -> Case a -> ShowS
$cshow :: forall a. Case a -> String
show :: Case a -> String
$cshowList :: forall a. [Case a] -> ShowS
showList :: [Case a] -> ShowS
Show)
_Case :: Name
_Case = (String -> Name
Core.Name String
"hydra/phantoms.Case")
newtype Datum a =
Datum {
forall a. Datum a -> Term
unDatum :: Core.Term}
deriving (Datum a -> Datum a -> Bool
(Datum a -> Datum a -> Bool)
-> (Datum a -> Datum a -> Bool) -> Eq (Datum a)
forall a. Datum a -> Datum a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall a. Datum a -> Datum a -> Bool
== :: Datum a -> Datum a -> Bool
$c/= :: forall a. Datum a -> Datum a -> Bool
/= :: Datum a -> Datum a -> Bool
Eq, Eq (Datum a)
Eq (Datum a) =>
(Datum a -> Datum a -> Ordering)
-> (Datum a -> Datum a -> Bool)
-> (Datum a -> Datum a -> Bool)
-> (Datum a -> Datum a -> Bool)
-> (Datum a -> Datum a -> Bool)
-> (Datum a -> Datum a -> Datum a)
-> (Datum a -> Datum a -> Datum a)
-> Ord (Datum a)
Datum a -> Datum a -> Bool
Datum a -> Datum a -> Ordering
Datum a -> Datum a -> Datum a
forall a. Eq (Datum a)
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. Datum a -> Datum a -> Bool
forall a. Datum a -> Datum a -> Ordering
forall a. Datum a -> Datum a -> Datum a
$ccompare :: forall a. Datum a -> Datum a -> Ordering
compare :: Datum a -> Datum a -> Ordering
$c< :: forall a. Datum a -> Datum a -> Bool
< :: Datum a -> Datum a -> Bool
$c<= :: forall a. Datum a -> Datum a -> Bool
<= :: Datum a -> Datum a -> Bool
$c> :: forall a. Datum a -> Datum a -> Bool
> :: Datum a -> Datum a -> Bool
$c>= :: forall a. Datum a -> Datum a -> Bool
>= :: Datum a -> Datum a -> Bool
$cmax :: forall a. Datum a -> Datum a -> Datum a
max :: Datum a -> Datum a -> Datum a
$cmin :: forall a. Datum a -> Datum a -> Datum a
min :: Datum a -> Datum a -> Datum a
Ord, ReadPrec [Datum a]
ReadPrec (Datum a)
Int -> ReadS (Datum a)
ReadS [Datum a]
(Int -> ReadS (Datum a))
-> ReadS [Datum a]
-> ReadPrec (Datum a)
-> ReadPrec [Datum a]
-> Read (Datum a)
forall a. ReadPrec [Datum a]
forall a. ReadPrec (Datum a)
forall a. Int -> ReadS (Datum a)
forall a. ReadS [Datum a]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: forall a. Int -> ReadS (Datum a)
readsPrec :: Int -> ReadS (Datum a)
$creadList :: forall a. ReadS [Datum a]
readList :: ReadS [Datum a]
$creadPrec :: forall a. ReadPrec (Datum a)
readPrec :: ReadPrec (Datum a)
$creadListPrec :: forall a. ReadPrec [Datum a]
readListPrec :: ReadPrec [Datum a]
Read, Int -> Datum a -> ShowS
[Datum a] -> ShowS
Datum a -> String
(Int -> Datum a -> ShowS)
-> (Datum a -> String) -> ([Datum a] -> ShowS) -> Show (Datum a)
forall a. Int -> Datum a -> ShowS
forall a. [Datum a] -> ShowS
forall a. Datum a -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall a. Int -> Datum a -> ShowS
showsPrec :: Int -> Datum a -> ShowS
$cshow :: forall a. Datum a -> String
show :: Datum a -> String
$cshowList :: forall a. [Datum a] -> ShowS
showList :: [Datum a] -> ShowS
Show)
_Datum :: Name
_Datum = (String -> Name
Core.Name String
"hydra/phantoms.Datum")
data Definition a =
Definition {
forall a. Definition a -> Name
definitionName :: Core.Name,
forall a. Definition a -> Datum a
definitionDatum :: (Datum a)}
deriving (Definition a -> Definition a -> Bool
(Definition a -> Definition a -> Bool)
-> (Definition a -> Definition a -> Bool) -> Eq (Definition a)
forall a. Definition a -> Definition a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall a. Definition a -> Definition a -> Bool
== :: Definition a -> Definition a -> Bool
$c/= :: forall a. Definition a -> Definition a -> Bool
/= :: Definition a -> Definition a -> Bool
Eq, Eq (Definition a)
Eq (Definition a) =>
(Definition a -> Definition a -> Ordering)
-> (Definition a -> Definition a -> Bool)
-> (Definition a -> Definition a -> Bool)
-> (Definition a -> Definition a -> Bool)
-> (Definition a -> Definition a -> Bool)
-> (Definition a -> Definition a -> Definition a)
-> (Definition a -> Definition a -> Definition a)
-> Ord (Definition a)
Definition a -> Definition a -> Bool
Definition a -> Definition a -> Ordering
Definition a -> Definition a -> Definition a
forall a. Eq (Definition a)
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. Definition a -> Definition a -> Bool
forall a. Definition a -> Definition a -> Ordering
forall a. Definition a -> Definition a -> Definition a
$ccompare :: forall a. Definition a -> Definition a -> Ordering
compare :: Definition a -> Definition a -> Ordering
$c< :: forall a. Definition a -> Definition a -> Bool
< :: Definition a -> Definition a -> Bool
$c<= :: forall a. Definition a -> Definition a -> Bool
<= :: Definition a -> Definition a -> Bool
$c> :: forall a. Definition a -> Definition a -> Bool
> :: Definition a -> Definition a -> Bool
$c>= :: forall a. Definition a -> Definition a -> Bool
>= :: Definition a -> Definition a -> Bool
$cmax :: forall a. Definition a -> Definition a -> Definition a
max :: Definition a -> Definition a -> Definition a
$cmin :: forall a. Definition a -> Definition a -> Definition a
min :: Definition a -> Definition a -> Definition a
Ord, ReadPrec [Definition a]
ReadPrec (Definition a)
Int -> ReadS (Definition a)
ReadS [Definition a]
(Int -> ReadS (Definition a))
-> ReadS [Definition a]
-> ReadPrec (Definition a)
-> ReadPrec [Definition a]
-> Read (Definition a)
forall a. ReadPrec [Definition a]
forall a. ReadPrec (Definition a)
forall a. Int -> ReadS (Definition a)
forall a. ReadS [Definition a]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: forall a. Int -> ReadS (Definition a)
readsPrec :: Int -> ReadS (Definition a)
$creadList :: forall a. ReadS [Definition a]
readList :: ReadS [Definition a]
$creadPrec :: forall a. ReadPrec (Definition a)
readPrec :: ReadPrec (Definition a)
$creadListPrec :: forall a. ReadPrec [Definition a]
readListPrec :: ReadPrec [Definition a]
Read, Int -> Definition a -> ShowS
[Definition a] -> ShowS
Definition a -> String
(Int -> Definition a -> ShowS)
-> (Definition a -> String)
-> ([Definition a] -> ShowS)
-> Show (Definition a)
forall a. Int -> Definition a -> ShowS
forall a. [Definition a] -> ShowS
forall a. Definition a -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall a. Int -> Definition a -> ShowS
showsPrec :: Int -> Definition a -> ShowS
$cshow :: forall a. Definition a -> String
show :: Definition a -> String
$cshowList :: forall a. [Definition a] -> ShowS
showList :: [Definition a] -> ShowS
Show)
_Definition :: Name
_Definition = (String -> Name
Core.Name String
"hydra/phantoms.Definition")
_Definition_name :: Name
_Definition_name = (String -> Name
Core.Name String
"name")
_Definition_datum :: Name
_Definition_datum = (String -> Name
Core.Name String
"datum")
newtype Fld a =
Fld {
forall a. Fld a -> Field
unFld :: Core.Field}
deriving (Fld a -> Fld a -> Bool
(Fld a -> Fld a -> Bool) -> (Fld a -> Fld a -> Bool) -> Eq (Fld a)
forall a. Fld a -> Fld a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall a. Fld a -> Fld a -> Bool
== :: Fld a -> Fld a -> Bool
$c/= :: forall a. Fld a -> Fld a -> Bool
/= :: Fld a -> Fld a -> Bool
Eq, Eq (Fld a)
Eq (Fld a) =>
(Fld a -> Fld a -> Ordering)
-> (Fld a -> Fld a -> Bool)
-> (Fld a -> Fld a -> Bool)
-> (Fld a -> Fld a -> Bool)
-> (Fld a -> Fld a -> Bool)
-> (Fld a -> Fld a -> Fld a)
-> (Fld a -> Fld a -> Fld a)
-> Ord (Fld a)
Fld a -> Fld a -> Bool
Fld a -> Fld a -> Ordering
Fld a -> Fld a -> Fld a
forall a. Eq (Fld a)
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. Fld a -> Fld a -> Bool
forall a. Fld a -> Fld a -> Ordering
forall a. Fld a -> Fld a -> Fld a
$ccompare :: forall a. Fld a -> Fld a -> Ordering
compare :: Fld a -> Fld a -> Ordering
$c< :: forall a. Fld a -> Fld a -> Bool
< :: Fld a -> Fld a -> Bool
$c<= :: forall a. Fld a -> Fld a -> Bool
<= :: Fld a -> Fld a -> Bool
$c> :: forall a. Fld a -> Fld a -> Bool
> :: Fld a -> Fld a -> Bool
$c>= :: forall a. Fld a -> Fld a -> Bool
>= :: Fld a -> Fld a -> Bool
$cmax :: forall a. Fld a -> Fld a -> Fld a
max :: Fld a -> Fld a -> Fld a
$cmin :: forall a. Fld a -> Fld a -> Fld a
min :: Fld a -> Fld a -> Fld a
Ord, ReadPrec [Fld a]
ReadPrec (Fld a)
Int -> ReadS (Fld a)
ReadS [Fld a]
(Int -> ReadS (Fld a))
-> ReadS [Fld a]
-> ReadPrec (Fld a)
-> ReadPrec [Fld a]
-> Read (Fld a)
forall a. ReadPrec [Fld a]
forall a. ReadPrec (Fld a)
forall a. Int -> ReadS (Fld a)
forall a. ReadS [Fld a]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: forall a. Int -> ReadS (Fld a)
readsPrec :: Int -> ReadS (Fld a)
$creadList :: forall a. ReadS [Fld a]
readList :: ReadS [Fld a]
$creadPrec :: forall a. ReadPrec (Fld a)
readPrec :: ReadPrec (Fld a)
$creadListPrec :: forall a. ReadPrec [Fld a]
readListPrec :: ReadPrec [Fld a]
Read, Int -> Fld a -> ShowS
[Fld a] -> ShowS
Fld a -> String
(Int -> Fld a -> ShowS)
-> (Fld a -> String) -> ([Fld a] -> ShowS) -> Show (Fld a)
forall a. Int -> Fld a -> ShowS
forall a. [Fld a] -> ShowS
forall a. Fld a -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall a. Int -> Fld a -> ShowS
showsPrec :: Int -> Fld a -> ShowS
$cshow :: forall a. Fld a -> String
show :: Fld a -> String
$cshowList :: forall a. [Fld a] -> ShowS
showList :: [Fld a] -> ShowS
Show)
_Fld :: Name
_Fld = (String -> Name
Core.Name String
"hydra/phantoms.Fld")
data Reference a =
Reference {}
deriving (Reference a -> Reference a -> Bool
(Reference a -> Reference a -> Bool)
-> (Reference a -> Reference a -> Bool) -> Eq (Reference a)
forall a. Reference a -> Reference a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall a. Reference a -> Reference a -> Bool
== :: Reference a -> Reference a -> Bool
$c/= :: forall a. Reference a -> Reference a -> Bool
/= :: Reference a -> Reference a -> Bool
Eq, Eq (Reference a)
Eq (Reference a) =>
(Reference a -> Reference a -> Ordering)
-> (Reference a -> Reference a -> Bool)
-> (Reference a -> Reference a -> Bool)
-> (Reference a -> Reference a -> Bool)
-> (Reference a -> Reference a -> Bool)
-> (Reference a -> Reference a -> Reference a)
-> (Reference a -> Reference a -> Reference a)
-> Ord (Reference a)
Reference a -> Reference a -> Bool
Reference a -> Reference a -> Ordering
Reference a -> Reference a -> Reference a
forall a. Eq (Reference a)
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. Reference a -> Reference a -> Bool
forall a. Reference a -> Reference a -> Ordering
forall a. Reference a -> Reference a -> Reference a
$ccompare :: forall a. Reference a -> Reference a -> Ordering
compare :: Reference a -> Reference a -> Ordering
$c< :: forall a. Reference a -> Reference a -> Bool
< :: Reference a -> Reference a -> Bool
$c<= :: forall a. Reference a -> Reference a -> Bool
<= :: Reference a -> Reference a -> Bool
$c> :: forall a. Reference a -> Reference a -> Bool
> :: Reference a -> Reference a -> Bool
$c>= :: forall a. Reference a -> Reference a -> Bool
>= :: Reference a -> Reference a -> Bool
$cmax :: forall a. Reference a -> Reference a -> Reference a
max :: Reference a -> Reference a -> Reference a
$cmin :: forall a. Reference a -> Reference a -> Reference a
min :: Reference a -> Reference a -> Reference a
Ord, ReadPrec [Reference a]
ReadPrec (Reference a)
Int -> ReadS (Reference a)
ReadS [Reference a]
(Int -> ReadS (Reference a))
-> ReadS [Reference a]
-> ReadPrec (Reference a)
-> ReadPrec [Reference a]
-> Read (Reference a)
forall a. ReadPrec [Reference a]
forall a. ReadPrec (Reference a)
forall a. Int -> ReadS (Reference a)
forall a. ReadS [Reference a]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: forall a. Int -> ReadS (Reference a)
readsPrec :: Int -> ReadS (Reference a)
$creadList :: forall a. ReadS [Reference a]
readList :: ReadS [Reference a]
$creadPrec :: forall a. ReadPrec (Reference a)
readPrec :: ReadPrec (Reference a)
$creadListPrec :: forall a. ReadPrec [Reference a]
readListPrec :: ReadPrec [Reference a]
Read, Int -> Reference a -> ShowS
[Reference a] -> ShowS
Reference a -> String
(Int -> Reference a -> ShowS)
-> (Reference a -> String)
-> ([Reference a] -> ShowS)
-> Show (Reference a)
forall a. Int -> Reference a -> ShowS
forall a. [Reference a] -> ShowS
forall a. Reference a -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall a. Int -> Reference a -> ShowS
showsPrec :: Int -> Reference a -> ShowS
$cshow :: forall a. Reference a -> String
show :: Reference a -> String
$cshowList :: forall a. [Reference a] -> ShowS
showList :: [Reference a] -> ShowS
Show)
_Reference :: Name
_Reference = (String -> Name
Core.Name String
"hydra/phantoms.Reference")