// DO NOT EDIT: This file is autogenerated via the builtin command.

package math

import (
	ast "github.com/influxdata/flux/ast"
	runtime "github.com/influxdata/flux/runtime"
)

func init() {
	runtime.RegisterPackage(pkgAST)
}

var pkgAST = &ast.Package{
	BaseNode: ast.BaseNode{
		Comments: nil,
		Errors:   nil,
		Loc:      nil,
	},
	Files: []*ast.File{&ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 12,
					Line:   20,
				},
				File:   "math.flux",
				Source: "package math\n\n\nbuiltin minIndex : (values: [A]) => int where A: Numeric\n\nmin = (values) => {\n    index = minIndex(values)\n\n    return values[index]\n}\n\nbuiltin maxIndex : (values: [A]) => int where A: Numeric\n\nmax = (values) => {\n    index = maxIndex(values)\n\n    return values[index]\n}\n\nbuiltin sum",
				Start: ast.Position{
					Column: 1,
					Line:   1,
				},
			},
		},
		Body: []ast.Statement{&ast.BuiltinStatement{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   4,
					},
					File:   "math.flux",
					Source: "builtin minIndex",
					Start: ast.Position{
						Column: 1,
						Line:   4,
					},
				},
			},
			Colon: nil,
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 17,
							Line:   4,
						},
						File:   "math.flux",
						Source: "minIndex",
						Start: ast.Position{
							Column: 9,
							Line:   4,
						},
					},
				},
				Name: "minIndex",
			},
			Ty: ast.TypeExpression{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 57,
							Line:   4,
						},
						File:   "math.flux",
						Source: "(values: [A]) => int where A: Numeric",
						Start: ast.Position{
							Column: 20,
							Line:   4,
						},
					},
				},
				Constraints: []*ast.TypeConstraint{&ast.TypeConstraint{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 57,
								Line:   4,
							},
							File:   "math.flux",
							Source: "A: Numeric",
							Start: ast.Position{
								Column: 47,
								Line:   4,
							},
						},
					},
					Kinds: []*ast.Identifier{&ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 57,
									Line:   4,
								},
								File:   "math.flux",
								Source: "Numeric",
								Start: ast.Position{
									Column: 50,
									Line:   4,
								},
							},
						},
						Name: "Numeric",
					}},
					Tvar: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 48,
									Line:   4,
								},
								File:   "math.flux",
								Source: "A",
								Start: ast.Position{
									Column: 47,
									Line:   4,
								},
							},
						},
						Name: "A",
					},
				}},
				Ty: &ast.FunctionType{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 40,
								Line:   4,
							},
							File:   "math.flux",
							Source: "(values: [A]) => int",
							Start: ast.Position{
								Column: 20,
								Line:   4,
							},
						},
					},
					Parameters: []*ast.ParameterType{&ast.ParameterType{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 32,
									Line:   4,
								},
								File:   "math.flux",
								Source: "values: [A]",
								Start: ast.Position{
									Column: 21,
									Line:   4,
								},
							},
						},
						Kind: "Required",
						Name: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 27,
										Line:   4,
									},
									File:   "math.flux",
									Source: "values",
									Start: ast.Position{
										Column: 21,
										Line:   4,
									},
								},
							},
							Name: "values",
						},
						Ty: &ast.ArrayType{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 32,
										Line:   4,
									},
									File:   "math.flux",
									Source: "[A]",
									Start: ast.Position{
										Column: 29,
										Line:   4,
									},
								},
							},
							ElementType: &ast.TvarType{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 31,
											Line:   4,
										},
										File:   "math.flux",
										Source: "A",
										Start: ast.Position{
											Column: 30,
											Line:   4,
										},
									},
								},
								ID: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 31,
												Line:   4,
											},
											File:   "math.flux",
											Source: "A",
											Start: ast.Position{
												Column: 30,
												Line:   4,
											},
										},
									},
									Name: "A",
								},
							},
						},
					}},
					Return: &ast.NamedType{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   4,
								},
								File:   "math.flux",
								Source: "int",
								Start: ast.Position{
									Column: 37,
									Line:   4,
								},
							},
						},
						ID: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 40,
										Line:   4,
									},
									File:   "math.flux",
									Source: "int",
									Start: ast.Position{
										Column: 37,
										Line:   4,
									},
								},
							},
							Name: "int",
						},
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   10,
					},
					File:   "math.flux",
					Source: "min = (values) => {\n    index = minIndex(values)\n\n    return values[index]\n}",
					Start: ast.Position{
						Column: 1,
						Line:   6,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 4,
							Line:   6,
						},
						File:   "math.flux",
						Source: "min",
						Start: ast.Position{
							Column: 1,
							Line:   6,
						},
					},
				},
				Name: "min",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   10,
						},
						File:   "math.flux",
						Source: "(values) => {\n    index = minIndex(values)\n\n    return values[index]\n}",
						Start: ast.Position{
							Column: 7,
							Line:   6,
						},
					},
				},
				Body: &ast.Block{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 2,
								Line:   10,
							},
							File:   "math.flux",
							Source: "{\n    index = minIndex(values)\n\n    return values[index]\n}",
							Start: ast.Position{
								Column: 19,
								Line:   6,
							},
						},
					},
					Body: []ast.Statement{&ast.VariableAssignment{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 29,
									Line:   7,
								},
								File:   "math.flux",
								Source: "index = minIndex(values)",
								Start: ast.Position{
									Column: 5,
									Line:   7,
								},
							},
						},
						ID: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 10,
										Line:   7,
									},
									File:   "math.flux",
									Source: "index",
									Start: ast.Position{
										Column: 5,
										Line:   7,
									},
								},
							},
							Name: "index",
						},
						Init: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 28,
											Line:   7,
										},
										File:   "math.flux",
										Source: "values",
										Start: ast.Position{
											Column: 22,
											Line:   7,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 28,
												Line:   7,
											},
											File:   "math.flux",
											Source: "values",
											Start: ast.Position{
												Column: 22,
												Line:   7,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 28,
													Line:   7,
												},
												File:   "math.flux",
												Source: "values",
												Start: ast.Position{
													Column: 22,
													Line:   7,
												},
											},
										},
										Name: "values",
									},
									Separator: nil,
									Value:     nil,
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 29,
										Line:   7,
									},
									File:   "math.flux",
									Source: "minIndex(values)",
									Start: ast.Position{
										Column: 13,
										Line:   7,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 21,
											Line:   7,
										},
										File:   "math.flux",
										Source: "minIndex",
										Start: ast.Position{
											Column: 13,
											Line:   7,
										},
									},
								},
								Name: "minIndex",
							},
							Lparen: nil,
							Rparen: nil,
						},
					}, &ast.ReturnStatement{
						Argument: &ast.IndexExpression{
							Array: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 18,
											Line:   9,
										},
										File:   "math.flux",
										Source: "values",
										Start: ast.Position{
											Column: 12,
											Line:   9,
										},
									},
								},
								Name: "values",
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 25,
										Line:   9,
									},
									File:   "math.flux",
									Source: "values[index]",
									Start: ast.Position{
										Column: 12,
										Line:   9,
									},
								},
							},
							Index: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 24,
											Line:   9,
										},
										File:   "math.flux",
										Source: "index",
										Start: ast.Position{
											Column: 19,
											Line:   9,
										},
									},
								},
								Name: "index",
							},
							Lbrack: nil,
							Rbrack: nil,
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 25,
									Line:   9,
								},
								File:   "math.flux",
								Source: "return values[index]",
								Start: ast.Position{
									Column: 5,
									Line:   9,
								},
							},
						},
					}},
					Lbrace: nil,
					Rbrace: nil,
				},
				Lparen: nil,
				Params: []*ast.Property{&ast.Property{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 14,
								Line:   6,
							},
							File:   "math.flux",
							Source: "values",
							Start: ast.Position{
								Column: 8,
								Line:   6,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 14,
									Line:   6,
								},
								File:   "math.flux",
								Source: "values",
								Start: ast.Position{
									Column: 8,
									Line:   6,
								},
							},
						},
						Name: "values",
					},
					Separator: nil,
					Value:     nil,
				}},
				Rparan: nil,
			},
		}, &ast.BuiltinStatement{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   12,
					},
					File:   "math.flux",
					Source: "builtin maxIndex",
					Start: ast.Position{
						Column: 1,
						Line:   12,
					},
				},
			},
			Colon: nil,
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 17,
							Line:   12,
						},
						File:   "math.flux",
						Source: "maxIndex",
						Start: ast.Position{
							Column: 9,
							Line:   12,
						},
					},
				},
				Name: "maxIndex",
			},
			Ty: ast.TypeExpression{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 57,
							Line:   12,
						},
						File:   "math.flux",
						Source: "(values: [A]) => int where A: Numeric",
						Start: ast.Position{
							Column: 20,
							Line:   12,
						},
					},
				},
				Constraints: []*ast.TypeConstraint{&ast.TypeConstraint{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 57,
								Line:   12,
							},
							File:   "math.flux",
							Source: "A: Numeric",
							Start: ast.Position{
								Column: 47,
								Line:   12,
							},
						},
					},
					Kinds: []*ast.Identifier{&ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 57,
									Line:   12,
								},
								File:   "math.flux",
								Source: "Numeric",
								Start: ast.Position{
									Column: 50,
									Line:   12,
								},
							},
						},
						Name: "Numeric",
					}},
					Tvar: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 48,
									Line:   12,
								},
								File:   "math.flux",
								Source: "A",
								Start: ast.Position{
									Column: 47,
									Line:   12,
								},
							},
						},
						Name: "A",
					},
				}},
				Ty: &ast.FunctionType{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 40,
								Line:   12,
							},
							File:   "math.flux",
							Source: "(values: [A]) => int",
							Start: ast.Position{
								Column: 20,
								Line:   12,
							},
						},
					},
					Parameters: []*ast.ParameterType{&ast.ParameterType{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 32,
									Line:   12,
								},
								File:   "math.flux",
								Source: "values: [A]",
								Start: ast.Position{
									Column: 21,
									Line:   12,
								},
							},
						},
						Kind: "Required",
						Name: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 27,
										Line:   12,
									},
									File:   "math.flux",
									Source: "values",
									Start: ast.Position{
										Column: 21,
										Line:   12,
									},
								},
							},
							Name: "values",
						},
						Ty: &ast.ArrayType{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 32,
										Line:   12,
									},
									File:   "math.flux",
									Source: "[A]",
									Start: ast.Position{
										Column: 29,
										Line:   12,
									},
								},
							},
							ElementType: &ast.TvarType{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 31,
											Line:   12,
										},
										File:   "math.flux",
										Source: "A",
										Start: ast.Position{
											Column: 30,
											Line:   12,
										},
									},
								},
								ID: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 31,
												Line:   12,
											},
											File:   "math.flux",
											Source: "A",
											Start: ast.Position{
												Column: 30,
												Line:   12,
											},
										},
									},
									Name: "A",
								},
							},
						},
					}},
					Return: &ast.NamedType{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   12,
								},
								File:   "math.flux",
								Source: "int",
								Start: ast.Position{
									Column: 37,
									Line:   12,
								},
							},
						},
						ID: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 40,
										Line:   12,
									},
									File:   "math.flux",
									Source: "int",
									Start: ast.Position{
										Column: 37,
										Line:   12,
									},
								},
							},
							Name: "int",
						},
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   18,
					},
					File:   "math.flux",
					Source: "max = (values) => {\n    index = maxIndex(values)\n\n    return values[index]\n}",
					Start: ast.Position{
						Column: 1,
						Line:   14,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 4,
							Line:   14,
						},
						File:   "math.flux",
						Source: "max",
						Start: ast.Position{
							Column: 1,
							Line:   14,
						},
					},
				},
				Name: "max",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   18,
						},
						File:   "math.flux",
						Source: "(values) => {\n    index = maxIndex(values)\n\n    return values[index]\n}",
						Start: ast.Position{
							Column: 7,
							Line:   14,
						},
					},
				},
				Body: &ast.Block{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 2,
								Line:   18,
							},
							File:   "math.flux",
							Source: "{\n    index = maxIndex(values)\n\n    return values[index]\n}",
							Start: ast.Position{
								Column: 19,
								Line:   14,
							},
						},
					},
					Body: []ast.Statement{&ast.VariableAssignment{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 29,
									Line:   15,
								},
								File:   "math.flux",
								Source: "index = maxIndex(values)",
								Start: ast.Position{
									Column: 5,
									Line:   15,
								},
							},
						},
						ID: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 10,
										Line:   15,
									},
									File:   "math.flux",
									Source: "index",
									Start: ast.Position{
										Column: 5,
										Line:   15,
									},
								},
							},
							Name: "index",
						},
						Init: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 28,
											Line:   15,
										},
										File:   "math.flux",
										Source: "values",
										Start: ast.Position{
											Column: 22,
											Line:   15,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 28,
												Line:   15,
											},
											File:   "math.flux",
											Source: "values",
											Start: ast.Position{
												Column: 22,
												Line:   15,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 28,
													Line:   15,
												},
												File:   "math.flux",
												Source: "values",
												Start: ast.Position{
													Column: 22,
													Line:   15,
												},
											},
										},
										Name: "values",
									},
									Separator: nil,
									Value:     nil,
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 29,
										Line:   15,
									},
									File:   "math.flux",
									Source: "maxIndex(values)",
									Start: ast.Position{
										Column: 13,
										Line:   15,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 21,
											Line:   15,
										},
										File:   "math.flux",
										Source: "maxIndex",
										Start: ast.Position{
											Column: 13,
											Line:   15,
										},
									},
								},
								Name: "maxIndex",
							},
							Lparen: nil,
							Rparen: nil,
						},
					}, &ast.ReturnStatement{
						Argument: &ast.IndexExpression{
							Array: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 18,
											Line:   17,
										},
										File:   "math.flux",
										Source: "values",
										Start: ast.Position{
											Column: 12,
											Line:   17,
										},
									},
								},
								Name: "values",
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 25,
										Line:   17,
									},
									File:   "math.flux",
									Source: "values[index]",
									Start: ast.Position{
										Column: 12,
										Line:   17,
									},
								},
							},
							Index: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 24,
											Line:   17,
										},
										File:   "math.flux",
										Source: "index",
										Start: ast.Position{
											Column: 19,
											Line:   17,
										},
									},
								},
								Name: "index",
							},
							Lbrack: nil,
							Rbrack: nil,
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 25,
									Line:   17,
								},
								File:   "math.flux",
								Source: "return values[index]",
								Start: ast.Position{
									Column: 5,
									Line:   17,
								},
							},
						},
					}},
					Lbrace: nil,
					Rbrace: nil,
				},
				Lparen: nil,
				Params: []*ast.Property{&ast.Property{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 14,
								Line:   14,
							},
							File:   "math.flux",
							Source: "values",
							Start: ast.Position{
								Column: 8,
								Line:   14,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 14,
									Line:   14,
								},
								File:   "math.flux",
								Source: "values",
								Start: ast.Position{
									Column: 8,
									Line:   14,
								},
							},
						},
						Name: "values",
					},
					Separator: nil,
					Value:     nil,
				}},
				Rparan: nil,
			},
		}, &ast.BuiltinStatement{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 12,
						Line:   20,
					},
					File:   "math.flux",
					Source: "builtin sum",
					Start: ast.Position{
						Column: 1,
						Line:   20,
					},
				},
			},
			Colon: nil,
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 12,
							Line:   20,
						},
						File:   "math.flux",
						Source: "sum",
						Start: ast.Position{
							Column: 9,
							Line:   20,
						},
					},
				},
				Name: "sum",
			},
			Ty: ast.TypeExpression{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 50,
							Line:   20,
						},
						File:   "math.flux",
						Source: "(values: [A]) => A where A: Numeric",
						Start: ast.Position{
							Column: 15,
							Line:   20,
						},
					},
				},
				Constraints: []*ast.TypeConstraint{&ast.TypeConstraint{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 50,
								Line:   20,
							},
							File:   "math.flux",
							Source: "A: Numeric",
							Start: ast.Position{
								Column: 40,
								Line:   20,
							},
						},
					},
					Kinds: []*ast.Identifier{&ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 50,
									Line:   20,
								},
								File:   "math.flux",
								Source: "Numeric",
								Start: ast.Position{
									Column: 43,
									Line:   20,
								},
							},
						},
						Name: "Numeric",
					}},
					Tvar: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 41,
									Line:   20,
								},
								File:   "math.flux",
								Source: "A",
								Start: ast.Position{
									Column: 40,
									Line:   20,
								},
							},
						},
						Name: "A",
					},
				}},
				Ty: &ast.FunctionType{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 33,
								Line:   20,
							},
							File:   "math.flux",
							Source: "(values: [A]) => A",
							Start: ast.Position{
								Column: 15,
								Line:   20,
							},
						},
					},
					Parameters: []*ast.ParameterType{&ast.ParameterType{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 27,
									Line:   20,
								},
								File:   "math.flux",
								Source: "values: [A]",
								Start: ast.Position{
									Column: 16,
									Line:   20,
								},
							},
						},
						Kind: "Required",
						Name: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 22,
										Line:   20,
									},
									File:   "math.flux",
									Source: "values",
									Start: ast.Position{
										Column: 16,
										Line:   20,
									},
								},
							},
							Name: "values",
						},
						Ty: &ast.ArrayType{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 27,
										Line:   20,
									},
									File:   "math.flux",
									Source: "[A]",
									Start: ast.Position{
										Column: 24,
										Line:   20,
									},
								},
							},
							ElementType: &ast.TvarType{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 26,
											Line:   20,
										},
										File:   "math.flux",
										Source: "A",
										Start: ast.Position{
											Column: 25,
											Line:   20,
										},
									},
								},
								ID: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 26,
												Line:   20,
											},
											File:   "math.flux",
											Source: "A",
											Start: ast.Position{
												Column: 25,
												Line:   20,
											},
										},
									},
									Name: "A",
								},
							},
						},
					}},
					Return: &ast.TvarType{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 33,
									Line:   20,
								},
								File:   "math.flux",
								Source: "A",
								Start: ast.Position{
									Column: 32,
									Line:   20,
								},
							},
						},
						ID: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 33,
										Line:   20,
									},
									File:   "math.flux",
									Source: "A",
									Start: ast.Position{
										Column: 32,
										Line:   20,
									},
								},
							},
							Name: "A",
						},
					},
				},
			},
		}},
		Eof:      nil,
		Imports:  nil,
		Metadata: "parser-type=rust",
		Name:     "math.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 13,
						Line:   1,
					},
					File:   "math.flux",
					Source: "package math",
					Start: ast.Position{
						Column: 1,
						Line:   1,
					},
				},
			},
			Name: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 13,
							Line:   1,
						},
						File:   "math.flux",
						Source: "math",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "math",
			},
		},
	}},
	Package: "math",
	Path:    "contrib/jsternberg/math",
}
