module Hydra.Sources.Tier4.Langs.Scala.Meta where
import Hydra.Sources.Tier3.All
import Hydra.Dsl.Annotations
import Hydra.Dsl.Bootstrap
import Hydra.Dsl.Types as Types
scalaMetaModule :: Module
scalaMetaModule :: Module
scalaMetaModule = Namespace
-> [Element] -> [Module] -> [Module] -> Maybe String -> Module
Module Namespace
ns [Element]
elements [Module
hydraCoreModule] [Module]
tier0Modules (Maybe String -> Module) -> Maybe String -> Module
forall a b. (a -> b) -> a -> b
$
String -> Maybe String
forall a. a -> Maybe a
Just String
"A Scala syntax model based on Scalameta (https://scalameta.org)"
where
ns :: Namespace
ns = String -> Namespace
Namespace String
"hydra/langs/scala/meta"
def :: String -> Type -> Element
def = Namespace -> String -> Type -> Element
datatype Namespace
ns
meta :: String -> Type
meta = Namespace -> String -> Type
typeref Namespace
ns
elements :: [Element]
elements = [
String -> Type -> Element
def String
"PredefString"
Type
string,
String -> Type -> Element
def String
"ScalaSymbol" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"name"String -> Type -> FieldType
>: Type
string],
String -> Type -> Element
def String
"Tree" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
union [
String
"ref"String -> Type -> FieldType
>: String -> Type
meta String
"Ref",
String
"stat"String -> Type -> FieldType
>: String -> Type
meta String
"Stat",
String
"type"String -> Type -> FieldType
>: String -> Type
meta String
"Type",
String
"bounds"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Bounds",
String
"pat"String -> Type -> FieldType
>: String -> Type
meta String
"Pat",
String
"member"String -> Type -> FieldType
>: String -> Type
meta String
"Member",
String
"ctor"String -> Type -> FieldType
>: String -> Type
meta String
"Ctor",
String
"template"String -> Type -> FieldType
>: String -> Type
meta String
"Template",
String
"mod"String -> Type -> FieldType
>: String -> Type
meta String
"Mod",
String
"enumerator"String -> Type -> FieldType
>: String -> Type
meta String
"Enumerator",
String
"importer"String -> Type -> FieldType
>: String -> Type
meta String
"Importer",
String
"importee"String -> Type -> FieldType
>: String -> Type
meta String
"Importee",
String
"caseTree"String -> Type -> FieldType
>: String -> Type
meta String
"CaseTree",
String
"source"String -> Type -> FieldType
>: String -> Type
meta String
"Source",
String
"quasi"String -> Type -> FieldType
>: String -> Type
meta String
"Quasi"],
String -> Type -> Element
def String
"Ref" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
union [
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Name",
String
"init"String -> Type -> FieldType
>: String -> Type
meta String
"Init"],
String -> Type -> Element
def String
"Stat" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
union [
String
"term"String -> Type -> FieldType
>: String -> Type
meta String
"Data",
String
"decl"String -> Type -> FieldType
>: String -> Type
meta String
"Decl",
String
"defn"String -> Type -> FieldType
>: String -> Type
meta String
"Defn",
String
"importExport"String -> Type -> FieldType
>: String -> Type
meta String
"ImportExportStat"],
String -> Type -> Element
def String
"Name" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
union [
String
"value"String -> Type -> FieldType
>: Type
string,
String
"anonymous"String -> Type -> FieldType
>: Type
unit,
String
"indeterminate"String -> Type -> FieldType
>: String -> Type
meta String
"PredefString"],
String -> Type -> Element
def String
"Lit" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
union [
String
"null"String -> Type -> FieldType
>: Type
unit,
String
"int"String -> Type -> FieldType
>: Type
int32,
String
"double"String -> Type -> FieldType
>: Type
float64,
String
"float"String -> Type -> FieldType
>: Type
float32,
String
"byte"String -> Type -> FieldType
>: Type
int8,
String
"short"String -> Type -> FieldType
>: Type
int16,
String
"char"String -> Type -> FieldType
>: Type
uint16,
String
"long"String -> Type -> FieldType
>: Type
int64,
String
"boolean"String -> Type -> FieldType
>: Type
boolean,
String
"unit"String -> Type -> FieldType
>: Type
unit,
String
"string"String -> Type -> FieldType
>: Type
string,
String
"symbol"String -> Type -> FieldType
>: String -> Type
meta String
"ScalaSymbol"],
String -> Type -> Element
def String
"Data" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
union [
String
"lit"String -> Type -> FieldType
>: String -> Type
meta String
"Lit",
String
"ref"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Ref",
String
"interpolate"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Interpolate",
String
"xml"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Xml",
String
"apply"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Apply",
String
"applyUsing"String -> Type -> FieldType
>: String -> Type
meta String
"Data.ApplyUsing",
String
"applyType"String -> Type -> FieldType
>: String -> Type
meta String
"Data.ApplyType",
String
"assign"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Assign",
String
"return"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Return",
String
"throw"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Throw",
String
"ascribe"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Ascribe",
String
"annotate"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Annotate",
String
"tuple"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Tuple",
String
"block"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Block",
String
"endMarker"String -> Type -> FieldType
>: String -> Type
meta String
"Data.EndMarker",
String
"if"String -> Type -> FieldType
>: String -> Type
meta String
"Data.If",
String
"quotedMacroExpr"String -> Type -> FieldType
>: String -> Type
meta String
"Data.QuotedMacroExpr",
String
"quotedMacroType"String -> Type -> FieldType
>: String -> Type
meta String
"Data.QuotedMacroType",
String
"splicedMacroExpr"String -> Type -> FieldType
>: String -> Type
meta String
"Data.SplicedMacroExpr",
String
"match"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Match",
String
"try"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Try",
String
"tryWithHandler"String -> Type -> FieldType
>: String -> Type
meta String
"Data.TryWithHandler",
String
"functionData"String -> Type -> FieldType
>: String -> Type
meta String
"Data.FunctionData",
String
"polyFunction"String -> Type -> FieldType
>: String -> Type
meta String
"Data.PolyFunction",
String
"partialFunction"String -> Type -> FieldType
>: String -> Type
meta String
"Data.PartialFunction",
String
"while"String -> Type -> FieldType
>: String -> Type
meta String
"Data.While",
String
"do"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Do",
String
"for"String -> Type -> FieldType
>: String -> Type
meta String
"Data.For",
String
"forYield"String -> Type -> FieldType
>: String -> Type
meta String
"Data.ForYield",
String
"new"String -> Type -> FieldType
>: String -> Type
meta String
"Data.New",
String
"newAnonymous"String -> Type -> FieldType
>: String -> Type
meta String
"Data.NewAnonymous",
String
"placeholder"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Placeholder",
String
"eta"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Eta",
String
"repeated"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Repeated",
String
"param"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Param"],
String -> Type -> Element
def String
"Data.Ref" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
union [
String
"this"String -> Type -> FieldType
>: String -> Type
meta String
"Data.This",
String
"super"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Super",
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Name",
String
"anonymous"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Anonymous",
String
"select"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Select",
String
"applyUnary"String -> Type -> FieldType
>: String -> Type
meta String
"Data.ApplyUnary"],
String -> Type -> Element
def String
"Data.This"
Type
unit,
String -> Type -> Element
def String
"Data.Super" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"thisp"String -> Type -> FieldType
>: String -> Type
meta String
"Name",
String
"superp"String -> Type -> FieldType
>: String -> Type
meta String
"Name"],
String -> Type -> Element
def String
"Data.Name" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"value"String -> Type -> FieldType
>: String -> Type
meta String
"PredefString"],
String -> Type -> Element
def String
"Data.Anonymous"
Type
unit,
String -> Type -> Element
def String
"Data.Select" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"qual"String -> Type -> FieldType
>: String -> Type
meta String
"Data",
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Name"],
String -> Type -> Element
def String
"Data.Interpolate" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"prefix"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Name",
String
"parts"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Lit",
String
"args"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Data.Xml" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"parts"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Lit",
String
"args"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Data.Apply" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"fun"String -> Type -> FieldType
>: String -> Type
meta String
"Data",
String
"args"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Data.ApplyUsing" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"fun"String -> Type -> FieldType
>: String -> Type
meta String
"Data",
String
"targs"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Data.ApplyType" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"lhs"String -> Type -> FieldType
>: String -> Type
meta String
"Data",
String
"op"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Name",
String
"targs"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type",
String
"args"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Data.ApplyInfix" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"lhs"String -> Type -> FieldType
>: String -> Type
meta String
"Data",
String
"op"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Name",
String
"targs"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type",
String
"args"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Data.ApplyUnary" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"op"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Name",
String
"arg"String -> Type -> FieldType
>: String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Data.Assign" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"lhs"String -> Type -> FieldType
>: String -> Type
meta String
"Data",
String
"rhs"String -> Type -> FieldType
>: String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Data.Return" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"expr"String -> Type -> FieldType
>: String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Data.Throw" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"expr"String -> Type -> FieldType
>: String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Data.Ascribe" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"expr"String -> Type -> FieldType
>: String -> Type
meta String
"Data",
String
"tpe"String -> Type -> FieldType
>: String -> Type
meta String
"Type"],
String -> Type -> Element
def String
"Data.Annotate" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"expr"String -> Type -> FieldType
>: String -> Type
meta String
"Data",
String
"annots"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Mod.Annot"],
String -> Type -> Element
def String
"Data.Tuple" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"args"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Data.Block" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"stats"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Stat"],
String -> Type -> Element
def String
"Data.EndMarker" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Name"],
String -> Type -> Element
def String
"Data.If" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"cond"String -> Type -> FieldType
>: String -> Type
meta String
"Data",
String
"thenp"String -> Type -> FieldType
>: String -> Type
meta String
"Data",
String
"elsep"String -> Type -> FieldType
>: String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Data.QuotedMacroExpr" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"body"String -> Type -> FieldType
>: String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Data.QuotedMacroType" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"tpe"String -> Type -> FieldType
>: String -> Type
meta String
"Type"],
String -> Type -> Element
def String
"Data.SplicedMacroExpr" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"body"String -> Type -> FieldType
>: String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Data.Match" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"expr"String -> Type -> FieldType
>: String -> Type
meta String
"Data",
String
"cases"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Case"],
String -> Type -> Element
def String
"Data.Try" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"expr"String -> Type -> FieldType
>: String -> Type
meta String
"Data",
String
"catchp"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Case",
String
"finallyp"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Data.TryWithHandler" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"expr"String -> Type -> FieldType
>: String -> Type
meta String
"Data",
String
"catchp"String -> Type -> FieldType
>: String -> Type
meta String
"Data",
String
"finallyp"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Data.FunctionData" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
union [
String
"contextFunction"String -> Type -> FieldType
>: String -> Type
meta String
"Data.ContextFunction",
String
"function"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Function"],
String -> Type -> Element
def String
"Data.ContextFunction" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"params"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Data.Param",
String
"body"String -> Type -> FieldType
>: String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Data.Function" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"params"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Data.Param",
String
"body"String -> Type -> FieldType
>: String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Data.PolyFunction" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"tparams"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type.Param",
String
"body"String -> Type -> FieldType
>: String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Data.PartialFunction" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"cases"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Case"],
String -> Type -> Element
def String
"Data.While" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"expr"String -> Type -> FieldType
>: String -> Type
meta String
"Data",
String
"body"String -> Type -> FieldType
>: String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Data.Do" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"body"String -> Type -> FieldType
>: String -> Type
meta String
"Data",
String
"expr"String -> Type -> FieldType
>: String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Data.For" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"enums"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Enumerator"],
String -> Type -> Element
def String
"Data.ForYield" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"enums"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Enumerator"],
String -> Type -> Element
def String
"Data.New" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"init"String -> Type -> FieldType
>: String -> Type
meta String
"Init"],
String -> Type -> Element
def String
"Data.NewAnonymous" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"templ"String -> Type -> FieldType
>: String -> Type
meta String
"Template"],
String -> Type -> Element
def String
"Data.Placeholder"
Type
unit,
String -> Type -> Element
def String
"Data.Eta" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"expr"String -> Type -> FieldType
>: String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Data.Repeated" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"expr"String -> Type -> FieldType
>: String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Data.Param" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"mods"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Mod",
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Name",
String
"decltpe"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type",
String
"default"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Type" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
union [
String
"ref"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Ref",
String
"anonymousName"String -> Type -> FieldType
>: String -> Type
meta String
"Type.AnonymousName",
String
"apply"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Apply",
String
"applyInfix"String -> Type -> FieldType
>: String -> Type
meta String
"Type.ApplyInfix",
String
"functionType"String -> Type -> FieldType
>: String -> Type
meta String
"Type.FunctionType",
String
"polyFunction"String -> Type -> FieldType
>: String -> Type
meta String
"Type.PolyFunction",
String
"implicitFunction"String -> Type -> FieldType
>: String -> Type
meta String
"Type.ImplicitFunction",
String
"tuple"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Tuple",
String
"with"String -> Type -> FieldType
>: String -> Type
meta String
"Type.With",
String
"and"String -> Type -> FieldType
>: String -> Type
meta String
"Type.And",
String
"or"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Or",
String
"refine"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Refine",
String
"existential"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Existential",
String
"annotate"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Annotate",
String
"lambda"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Lambda",
String
"macro"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Macro",
String
"method"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Method",
String
"placeholder"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Placeholder",
String
"byName"String -> Type -> FieldType
>: String -> Type
meta String
"Type.ByName",
String
"repeated"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Repeated",
String
"var"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Var",
String
"typedParam"String -> Type -> FieldType
>: String -> Type
meta String
"Type.TypedParam",
String
"match"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Match"],
String -> Type -> Element
def String
"Type.Ref" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
union [
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Name",
String
"select"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Select",
String
"project"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Project",
String
"singleton"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Singleton"],
String -> Type -> Element
def String
"Type.Name" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"value"String -> Type -> FieldType
>: Type
string],
String -> Type -> Element
def String
"Type.AnonymousName"
Type
unit,
String -> Type -> Element
def String
"Type.Select" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"qual"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Ref",
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Name"],
String -> Type -> Element
def String
"Type.Project" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"qual"String -> Type -> FieldType
>: String -> Type
meta String
"Type",
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Name"],
String -> Type -> Element
def String
"Type.Singleton" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"ref"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Ref"],
String -> Type -> Element
def String
"Type.Apply" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"tpe"String -> Type -> FieldType
>: String -> Type
meta String
"Type",
String
"args"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type"],
String -> Type -> Element
def String
"Type.ApplyInfix" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"lhs"String -> Type -> FieldType
>: String -> Type
meta String
"Type",
String
"op"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Name",
String
"rhs"String -> Type -> FieldType
>: String -> Type
meta String
"Type"],
String -> Type -> Element
def String
"Type.FunctionType" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
union [
String
"function"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Function",
String
"contextFunction"String -> Type -> FieldType
>: String -> Type
meta String
"Type.ContextFunction"],
String -> Type -> Element
def String
"Type.Function" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"params"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type",
String
"res"String -> Type -> FieldType
>: String -> Type
meta String
"Type"],
String -> Type -> Element
def String
"Type.PolyFunction" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"tparams"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type.Param",
String
"tpe"String -> Type -> FieldType
>: String -> Type
meta String
"Type"],
String -> Type -> Element
def String
"Type.ContextFunction" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"params"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type",
String
"res"String -> Type -> FieldType
>: String -> Type
meta String
"Type"],
String -> Type -> Element
def String
"Type.ImplicitFunction" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"params"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type",
String
"res"String -> Type -> FieldType
>: String -> Type
meta String
"Type"],
String -> Type -> Element
def String
"Type.Tuple" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"args"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type"],
String -> Type -> Element
def String
"Type.With" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"lhs"String -> Type -> FieldType
>: String -> Type
meta String
"Type",
String
"rhs"String -> Type -> FieldType
>: String -> Type
meta String
"Type"],
String -> Type -> Element
def String
"Type.And" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"lhs"String -> Type -> FieldType
>: String -> Type
meta String
"Type",
String
"rhs"String -> Type -> FieldType
>: String -> Type
meta String
"Type"],
String -> Type -> Element
def String
"Type.Or" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"lhs"String -> Type -> FieldType
>: String -> Type
meta String
"Type",
String
"rhs"String -> Type -> FieldType
>: String -> Type
meta String
"Type"],
String -> Type -> Element
def String
"Type.Refine" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"tpe"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type",
String
"stats"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Stat"],
String -> Type -> Element
def String
"Type.Existential" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"tpe"String -> Type -> FieldType
>: String -> Type
meta String
"Type",
String
"stats"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Stat"],
String -> Type -> Element
def String
"Type.Annotate" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"tpe"String -> Type -> FieldType
>: String -> Type
meta String
"Type",
String
"annots"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Mod.Annot"],
String -> Type -> Element
def String
"Type.Lambda" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"tparams"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type.Param",
String
"tpe"String -> Type -> FieldType
>: String -> Type
meta String
"Type"],
String -> Type -> Element
def String
"Type.Macro" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"body"String -> Type -> FieldType
>: String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Type.Method" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"paramss"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Data.Param",
String
"tpe"String -> Type -> FieldType
>: String -> Type
meta String
"Type"],
String -> Type -> Element
def String
"Type.Placeholder" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"bounds"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Bounds"],
String -> Type -> Element
def String
"Type.Bounds" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"lo"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type",
String
"hi"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type"],
String -> Type -> Element
def String
"Type.ByName" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"tpe"String -> Type -> FieldType
>: String -> Type
meta String
"Type"],
String -> Type -> Element
def String
"Type.Repeated" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"tpe"String -> Type -> FieldType
>: String -> Type
meta String
"Type"],
String -> Type -> Element
def String
"Type.Var" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Name"],
String -> Type -> Element
def String
"Type.TypedParam" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Name",
String
"typ"String -> Type -> FieldType
>: String -> Type
meta String
"Type"],
String -> Type -> Element
def String
"Type.Param" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"mods"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Mod",
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Name",
String
"tparams"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type.Param",
String
"tbounds"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type.Bounds",
String
"vbounds"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type",
String
"cbounds"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type"],
String -> Type -> Element
def String
"Type.Match" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"tpe"String -> Type -> FieldType
>: String -> Type
meta String
"Type",
String
"cases"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"TypeCase"],
String -> Type -> Element
def String
"Pat" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
union [
String
"var"String -> Type -> FieldType
>: String -> Type
meta String
"Pat.Var",
String
"wildcard"String -> Type -> FieldType
>: Type
unit,
String
"seqWildcard"String -> Type -> FieldType
>: Type
unit,
String
"bind"String -> Type -> FieldType
>: String -> Type
meta String
"Pat.Bind",
String
"alternative"String -> Type -> FieldType
>: String -> Type
meta String
"Pat.Alternative",
String
"tuple"String -> Type -> FieldType
>: String -> Type
meta String
"Pat.Tuple",
String
"repeated"String -> Type -> FieldType
>: String -> Type
meta String
"Pat.Repeated",
String
"extract"String -> Type -> FieldType
>: String -> Type
meta String
"Pat.Extract",
String
"extractInfix"String -> Type -> FieldType
>: String -> Type
meta String
"Pat.ExtractInfix",
String
"interpolate"String -> Type -> FieldType
>: String -> Type
meta String
"Pat.Interpolate",
String
"xml"String -> Type -> FieldType
>: String -> Type
meta String
"Pat.Xml",
String
"typed"String -> Type -> FieldType
>: String -> Type
meta String
"Pat.Typed",
String
"macro"String -> Type -> FieldType
>: String -> Type
meta String
"Pat.Macro",
String
"given"String -> Type -> FieldType
>: String -> Type
meta String
"Pat.Given"],
String -> Type -> Element
def String
"Pat.Var" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Name"],
String -> Type -> Element
def String
"Pat.Bind" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"lhs"String -> Type -> FieldType
>: String -> Type
meta String
"Pat",
String
"rhs"String -> Type -> FieldType
>: String -> Type
meta String
"Pat"],
String -> Type -> Element
def String
"Pat.Alternative" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"lhs"String -> Type -> FieldType
>: String -> Type
meta String
"Pat",
String
"rhs"String -> Type -> FieldType
>: String -> Type
meta String
"Pat"],
String -> Type -> Element
def String
"Pat.Tuple" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"args"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Pat"],
String -> Type -> Element
def String
"Pat.Repeated" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Name"],
String -> Type -> Element
def String
"Pat.Extract" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"fun"String -> Type -> FieldType
>: String -> Type
meta String
"Data",
String
"args"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Pat"],
String -> Type -> Element
def String
"Pat.ExtractInfix" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"lhs"String -> Type -> FieldType
>: String -> Type
meta String
"Pat",
String
"op"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Name",
String
"rhs"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Pat"],
String -> Type -> Element
def String
"Pat.Interpolate" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"prefix"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Name",
String
"parts"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Lit"],
String -> Type -> Element
def String
"Pat.Xml" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"parts"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Lit",
String
"args"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Pat"],
String -> Type -> Element
def String
"Pat.Typed" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"lhs"String -> Type -> FieldType
>: String -> Type
meta String
"Pat",
String
"rhs"String -> Type -> FieldType
>: String -> Type
meta String
"Type"],
String -> Type -> Element
def String
"Pat.Macro" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"body"String -> Type -> FieldType
>: String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Pat.Given" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"tpe"String -> Type -> FieldType
>: String -> Type
meta String
"Type"],
String -> Type -> Element
def String
"Member" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
union [
String
"term"String -> Type -> FieldType
>: String -> Type
meta String
"Member.Data",
String
"type"String -> Type -> FieldType
>: String -> Type
meta String
"Member.Type",
String
"termParam"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Param",
String
"typeParam"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Param",
String
"self"String -> Type -> FieldType
>: String -> Type
meta String
"Self"],
String -> Type -> Element
def String
"Member.Data" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
union [
String
"pkg"String -> Type -> FieldType
>: String -> Type
meta String
"Pkg",
String
"object"String -> Type -> FieldType
>: String -> Type
meta String
"Pkg.Object"],
String -> Type -> Element
def String
"Member.Type" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Name"],
String -> Type -> Element
def String
"Decl" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
union [
String
"val"String -> Type -> FieldType
>: String -> Type
meta String
"Decl.Val",
String
"var"String -> Type -> FieldType
>: String -> Type
meta String
"Decl.Var",
String
"def"String -> Type -> FieldType
>: String -> Type
meta String
"Decl.Def",
String
"type"String -> Type -> FieldType
>: String -> Type
meta String
"Decl.Type",
String
"given"String -> Type -> FieldType
>: String -> Type
meta String
"Decl.Given"],
String -> Type -> Element
def String
"Decl.Val" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"mods"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Mod",
String
"pats"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Pat",
String
"decltpe"String -> Type -> FieldType
>: String -> Type
meta String
"Type"],
String -> Type -> Element
def String
"Decl.Var" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"mods"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Mod",
String
"pats"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Pat",
String
"decltpe"String -> Type -> FieldType
>: String -> Type
meta String
"Type"],
String -> Type -> Element
def String
"Decl.Def" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"mods"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Mod",
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Name",
String
"tparams"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type.Param",
String
"paramss"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Data.Param",
String
"decltpe"String -> Type -> FieldType
>: String -> Type
meta String
"Type"],
String -> Type -> Element
def String
"Decl.Type" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"mods"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Mod",
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Name",
String
"tparams"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type.Param",
String
"bounds"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Bounds"],
String -> Type -> Element
def String
"Decl.Given" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"mods"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Mod",
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Name",
String
"tparams"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type.Param",
String
"sparams"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Data.Param",
String
"decltpe"String -> Type -> FieldType
>: String -> Type
meta String
"Type"],
String -> Type -> Element
def String
"Defn" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
union [
String
"val"String -> Type -> FieldType
>: String -> Type
meta String
"Defn.Val",
String
"var"String -> Type -> FieldType
>: String -> Type
meta String
"Defn.Var",
String
"given"String -> Type -> FieldType
>: String -> Type
meta String
"Defn.Given",
String
"enum"String -> Type -> FieldType
>: String -> Type
meta String
"Defn.Enum",
String
"enumCase"String -> Type -> FieldType
>: String -> Type
meta String
"Defn.EnumCase",
String
"repeatedEnumCase"String -> Type -> FieldType
>: String -> Type
meta String
"Defn.RepeatedEnumCase",
String
"givenAlias"String -> Type -> FieldType
>: String -> Type
meta String
"Defn.GivenAlias",
String
"extensionGroup"String -> Type -> FieldType
>: String -> Type
meta String
"Defn.ExtensionGroup",
String
"def"String -> Type -> FieldType
>: String -> Type
meta String
"Defn.Def",
String
"macro"String -> Type -> FieldType
>: String -> Type
meta String
"Defn.Macro",
String
"type"String -> Type -> FieldType
>: String -> Type
meta String
"Defn.Type",
String
"class"String -> Type -> FieldType
>: String -> Type
meta String
"Defn.Class",
String
"trait"String -> Type -> FieldType
>: String -> Type
meta String
"Defn.Trait",
String
"object"String -> Type -> FieldType
>: String -> Type
meta String
"Defn.Object"],
String -> Type -> Element
def String
"Defn.Val" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"mods"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Mod",
String
"pats"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Pat",
String
"decltpe"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type",
String
"rhs"String -> Type -> FieldType
>: String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Defn.Var" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"mods"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Mod",
String
"pats"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Pat",
String
"decltpe"String -> Type -> FieldType
>: String -> Type
meta String
"Type",
String
"rhs"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Defn.Given" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"mods"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Mod",
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Name",
String
"tparams"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type.Param",
String
"sparams"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Data.Param",
String
"templ"String -> Type -> FieldType
>: String -> Type
meta String
"Template"],
String -> Type -> Element
def String
"Defn.Enum" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"mods"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Mod",
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Name",
String
"tparams"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type.Param",
String
"ctor"String -> Type -> FieldType
>: String -> Type
meta String
"Ctor.Primary",
String
"template"String -> Type -> FieldType
>: String -> Type
meta String
"Template"],
String -> Type -> Element
def String
"Defn.EnumCase" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"mods"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Mod",
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Name",
String
"tparams"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type.Param",
String
"ctor"String -> Type -> FieldType
>: String -> Type
meta String
"Ctor.Primary",
String
"inits"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Init"],
String -> Type -> Element
def String
"Defn.RepeatedEnumCase" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"mods"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Mod",
String
"cases"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Data.Name"],
String -> Type -> Element
def String
"Defn.GivenAlias" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"mods"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Mod",
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Name",
String
"tparams"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type.Param",
String
"sparams"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Data.Param",
String
"decltpe"String -> Type -> FieldType
>: String -> Type
meta String
"Type",
String
"body"String -> Type -> FieldType
>: String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Defn.ExtensionGroup" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"tparams"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type.Param",
String
"parmss"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Data.Param",
String
"body"String -> Type -> FieldType
>: String -> Type
meta String
"Stat"],
String -> Type -> Element
def String
"Defn.Def" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"mods"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Mod",
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Name",
String
"tparams"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type.Param",
String
"paramss"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Data.Param",
String
"decltpe"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type",
String
"body"String -> Type -> FieldType
>: String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Defn.Macro" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"mods"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Mod",
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Name",
String
"tparams"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type.Param",
String
"paramss"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Data.Param",
String
"decltpe"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type",
String
"body"String -> Type -> FieldType
>: String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Defn.Type" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"mods"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Mod",
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Name",
String
"tparams"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type.Param",
String
"body"String -> Type -> FieldType
>: String -> Type
meta String
"Type"],
String -> Type -> Element
def String
"Defn.Class" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"mods"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Mod",
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Name",
String
"tparams"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type.Param",
String
"ctor"String -> Type -> FieldType
>: String -> Type
meta String
"Ctor.Primary",
String
"template"String -> Type -> FieldType
>: String -> Type
meta String
"Template"],
String -> Type -> Element
def String
"Defn.Trait" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"mods"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Mod",
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Type.Name",
String
"tparams"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Type.Param",
String
"ctor"String -> Type -> FieldType
>: String -> Type
meta String
"Ctor.Primary",
String
"template"String -> Type -> FieldType
>: String -> Type
meta String
"Template"],
String -> Type -> Element
def String
"Defn.Object" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Name"],
String -> Type -> Element
def String
"Pkg" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Name",
String
"ref"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Ref",
String
"stats"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Stat"],
String -> Type -> Element
def String
"Pkg.Object" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"mods"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Mod",
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Name",
String
"template"String -> Type -> FieldType
>: String -> Type
meta String
"Template"],
String -> Type -> Element
def String
"Ctor" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
union [
String
"primary"String -> Type -> FieldType
>: String -> Type
meta String
"Ctor.Primary",
String
"secondary"String -> Type -> FieldType
>: String -> Type
meta String
"Ctor.Secondary"],
String -> Type -> Element
def String
"Ctor.Primary" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"mods"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Mod",
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Name",
String
"paramss"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Data.Param"],
String -> Type -> Element
def String
"Ctor.Secondary" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"mods"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Mod",
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Name",
String
"paramss"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Data.Param",
String
"init"String -> Type -> FieldType
>: String -> Type
meta String
"Init",
String
"stats"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Stat"],
String -> Type -> Element
def String
"Init" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"tpe"String -> Type -> FieldType
>: String -> Type
meta String
"Type",
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Name",
String
"argss"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Self"
Type
unit,
String -> Type -> Element
def String
"Template" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"early"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Stat",
String
"inits"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Init",
String
"self"String -> Type -> FieldType
>: String -> Type
meta String
"Self",
String
"stats"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Stat"],
String -> Type -> Element
def String
"Mod" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
union [
String
"annot"String -> Type -> FieldType
>: String -> Type
meta String
"Mod.Annot",
String
"private"String -> Type -> FieldType
>: String -> Type
meta String
"Mod.Private",
String
"protected"String -> Type -> FieldType
>: String -> Type
meta String
"Mod.Protected",
String
"implicit"String -> Type -> FieldType
>: Type
unit,
String
"final"String -> Type -> FieldType
>: Type
unit,
String
"sealed"String -> Type -> FieldType
>: Type
unit,
String
"open"String -> Type -> FieldType
>: Type
unit,
String
"super"String -> Type -> FieldType
>: Type
unit,
String
"override"String -> Type -> FieldType
>: Type
unit,
String
"case"String -> Type -> FieldType
>: Type
unit,
String
"abstract"String -> Type -> FieldType
>: Type
unit,
String
"covariant"String -> Type -> FieldType
>: Type
unit,
String
"contravariant"String -> Type -> FieldType
>: Type
unit,
String
"lazy"String -> Type -> FieldType
>: Type
unit,
String
"valParam"String -> Type -> FieldType
>: Type
unit,
String
"varParam"String -> Type -> FieldType
>: Type
unit,
String
"infix"String -> Type -> FieldType
>: Type
unit,
String
"inline"String -> Type -> FieldType
>: Type
unit,
String
"using"String -> Type -> FieldType
>: Type
unit,
String
"opaque"String -> Type -> FieldType
>: Type
unit,
String
"transparent"String -> Type -> FieldType
>: Type
unit],
String -> Type -> Element
def String
"Mod.Annot" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"init"String -> Type -> FieldType
>: String -> Type
meta String
"Init"],
String -> Type -> Element
def String
"Mod.Private" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"within"String -> Type -> FieldType
>: String -> Type
meta String
"Ref"],
String -> Type -> Element
def String
"Mod.Protected" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"within"String -> Type -> FieldType
>: String -> Type
meta String
"Ref"],
String -> Type -> Element
def String
"Enumerator" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
union [
String
"generator"String -> Type -> FieldType
>: String -> Type
meta String
"Enumerator.Generator",
String
"caseGenerator"String -> Type -> FieldType
>: String -> Type
meta String
"Enumerator.CaseGenerator",
String
"val"String -> Type -> FieldType
>: String -> Type
meta String
"Enumerator.Val",
String
"guard"String -> Type -> FieldType
>: String -> Type
meta String
"Enumerator.Guard"],
String -> Type -> Element
def String
"Enumerator.Generator" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"pat"String -> Type -> FieldType
>: String -> Type
meta String
"Pat",
String
"rhs"String -> Type -> FieldType
>: String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Enumerator.CaseGenerator" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"pat"String -> Type -> FieldType
>: String -> Type
meta String
"Pat",
String
"rhs"String -> Type -> FieldType
>: String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Enumerator.Val" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"pat"String -> Type -> FieldType
>: String -> Type
meta String
"Pat",
String
"rhs"String -> Type -> FieldType
>: String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"Enumerator.Guard" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"cond"String -> Type -> FieldType
>: String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"ImportExportStat" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
union [
String
"import"String -> Type -> FieldType
>: String -> Type
meta String
"Import",
String
"export"String -> Type -> FieldType
>: String -> Type
meta String
"Export"],
String -> Type -> Element
def String
"Import" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"importers"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Importer"],
String -> Type -> Element
def String
"Export" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"importers"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Importer"],
String -> Type -> Element
def String
"Importer" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"ref"String -> Type -> FieldType
>: String -> Type
meta String
"Data.Ref",
String
"importees"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Importee"],
String -> Type -> Element
def String
"Importee" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
union [
String
"wildcard"String -> Type -> FieldType
>: Type
unit,
String
"given"String -> Type -> FieldType
>: String -> Type
meta String
"Importee.Given",
String
"givenAll"String -> Type -> FieldType
>: Type
unit,
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Importee.Name",
String
"rename"String -> Type -> FieldType
>: String -> Type
meta String
"Importee.Rename",
String
"unimport"String -> Type -> FieldType
>: String -> Type
meta String
"Importee.Unimport"],
String -> Type -> Element
def String
"Importee.Given" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"tpe"String -> Type -> FieldType
>: String -> Type
meta String
"Type"],
String -> Type -> Element
def String
"Importee.Name" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Name"],
String -> Type -> Element
def String
"Importee.Rename" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Name",
String
"rename"String -> Type -> FieldType
>: String -> Type
meta String
"Name"],
String -> Type -> Element
def String
"Importee.Unimport" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"name"String -> Type -> FieldType
>: String -> Type
meta String
"Name"],
String -> Type -> Element
def String
"CaseTree" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
union [
String
"case"String -> Type -> FieldType
>: String -> Type
meta String
"Case",
String
"typeCase"String -> Type -> FieldType
>: String -> Type
meta String
"TypeCase"],
String -> Type -> Element
def String
"Case" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"pat"String -> Type -> FieldType
>: String -> Type
meta String
"Pat",
String
"cond"String -> Type -> FieldType
>: Type -> Type
optional (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Data",
String
"body"String -> Type -> FieldType
>: String -> Type
meta String
"Data"],
String -> Type -> Element
def String
"TypeCase" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"pat"String -> Type -> FieldType
>: String -> Type
meta String
"Type",
String
"body"String -> Type -> FieldType
>: String -> Type
meta String
"Type"],
String -> Type -> Element
def String
"Source" (Type -> Element) -> Type -> Element
forall a b. (a -> b) -> a -> b
$
[FieldType] -> Type
record [
String
"stats"String -> Type -> FieldType
>: Type -> Type
list (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ String -> Type
meta String
"Stat"],
String -> Type -> Element
def String
"Quasi"
Type
unit]