{*ast.File [test]}


{*ast.GenDecl -> *ast.ImportSpec -> *ast.BasicLit [STRING "bytes"]}
{*ast.ImportSpec -> *ast.BasicLit [STRING "fmt"]}
{*ast.ImportSpec [extra]}
{*ast.BasicLit [STRING "github.com/awalterschulze/goderive/test/extra"]}
{*ast.ImportSpec [pickle]}
{*ast.BasicLit [STRING "github.com/awalterschulze/goderive/test/nickname"]}
{*ast.ImportSpec -> *ast.BasicLit [STRING "math"]}
{*ast.ImportSpec -> *ast.BasicLit [STRING "reflect"]}
{*ast.ImportSpec -> *ast.BasicLit [STRING "sort"]}
{*ast.ImportSpec -> *ast.BasicLit [STRING "strings"]}
{*ast.ImportSpec -> *ast.BasicLit [STRING "sync"]}
{*ast.ImportSpec -> *ast.BasicLit [STRING "time"]}
{*ast.ImportSpec -> *ast.BasicLit [STRING "unsafe"]}
{*ast.ImportSpec -> *ast.BasicLit [STRING "vendortest"]}


function name is deriveTakeWhile 
	 { [deriveTakeWhile]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [predicate]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.Field [list]}
	 {*ast.ArrayType [int]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= out]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len list]}
	 {*ast.RangeStmt [i elem list]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.CallExpr [predicate elem]}
	 {*ast.BlockStmt -> *ast.BranchStmt -> *ast.AssignStmt [= out]}
	 {*ast.CallExpr [append out]}
	 {*ast.IndexExpr [list i]}
	 {*ast.ReturnStmt [out]}


function name is deriveIntersectSetOfInt64s 
	 { [deriveIntersectSetOfInt64s]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [int64]}
	 {*ast.StructType -> *ast.FieldList -> *ast.FieldList -> *ast.Field -> *ast.MapType [int64]}
	 {*ast.StructType -> *ast.FieldList -> *ast.BlockStmt -> *ast.AssignStmt [:= intersect]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [int64]}
	 {*ast.StructType -> *ast.FieldList -> *ast.CallExpr [deriveMinInt]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.RangeStmt [k this]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= _ ok]}
	 {*ast.IndexExpr [that k ok]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [intersect k]}
	 {*ast.CompositeLit -> *ast.StructType -> *ast.FieldList -> *ast.ReturnStmt [intersect]}


function name is deriveIntersectOfInt64s 
	 { [deriveIntersectOfInt64s]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [int64]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [int64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= intersect]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int64]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [deriveMinInt]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.RangeStmt [i v this]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.CallExpr [deriveContainsInt64s that v]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= intersect]}
	 {*ast.CallExpr [append intersect]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ReturnStmt [intersect]}


function name is deriveTraverse 
	 { [deriveTraverse]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [error]}
	 {*ast.Field [list]}
	 {*ast.ArrayType [string]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [int]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= out]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int]}
	 {*ast.CallExpr [len list]}
	 {*ast.GenDecl -> *ast.ValueSpec [err error]}
	 {*ast.RangeStmt [i elem list]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [out i err]}
	 {*ast.CallExpr [f elem]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!= err nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [nil err]}
	 {*ast.ReturnStmt [out nil]}


function name is derivePipeline 
	 { [derivePipeline]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [lines]}
	 {*ast.ArrayType [string]}
	 {*ast.FieldList -> *ast.Field -> *ast.ChanType [string]}
	 {*ast.Field [g]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [line string]}
	 {*ast.FieldList -> *ast.Field -> *ast.ChanType [int]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field -> *ast.ArrayType [string]}
	 {*ast.FieldList -> *ast.Field -> *ast.ChanType [int]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [a]}
	 {*ast.ArrayType [string]}
	 {*ast.FieldList -> *ast.Field -> *ast.ChanType [int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= b]}
	 {*ast.CallExpr [f a]}
	 {*ast.ReturnStmt -> *ast.CallExpr [deriveJoinChannels]}
	 {*ast.CallExpr [deriveFmapChanChan g b]}


function name is deriveGoStringEmpty 
	 { [deriveGoStringEmpty]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [Empty]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *test.Empty {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return &test.Empty{}\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringBuiltInTypes 
	 { [deriveGoStringBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [BuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *test.BuiltInTypes {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.BuiltInTypes{}\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Bool = %#v\n"]}
	 {*ast.SelectorExpr [this Bool]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Byte = %#v\n"]}
	 {*ast.SelectorExpr [this Byte]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Complex128 = %#v\n"]}
	 {*ast.SelectorExpr [this Complex128]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Complex64 = %#v\n"]}
	 {*ast.SelectorExpr [this Complex64]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Float64 = %#v\n"]}
	 {*ast.SelectorExpr [this Float64]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Float32 = %#v\n"]}
	 {*ast.SelectorExpr [this Float32]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int = %#v\n"]}
	 {*ast.SelectorExpr [this Int]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int16 = %#v\n"]}
	 {*ast.SelectorExpr [this Int16]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int32 = %#v\n"]}
	 {*ast.SelectorExpr [this Int32]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int64 = %#v\n"]}
	 {*ast.SelectorExpr [this Int64]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int8 = %#v\n"]}
	 {*ast.SelectorExpr [this Int8]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Rune = %#v\n"]}
	 {*ast.SelectorExpr [this Rune]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.String = %#v\n"]}
	 {*ast.SelectorExpr [this String]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint = %#v\n"]}
	 {*ast.SelectorExpr [this Uint]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint16 = %#v\n"]}
	 {*ast.SelectorExpr [this Uint16]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint32 = %#v\n"]}
	 {*ast.SelectorExpr [this Uint32]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint64 = %#v\n"]}
	 {*ast.SelectorExpr [this Uint64]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint8 = %#v\n"]}
	 {*ast.SelectorExpr [this Uint8]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.UintPtr = %#v\n"]}
	 {*ast.SelectorExpr [this UintPtr]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringPtrToBuiltInTypes 
	 { [deriveGoStringPtrToBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [PtrToBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *test.PtrToBuiltInTypes {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.PtrToBuiltInTypes{}\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Bool nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Bool = func (v bool) *bool { return &v }(%#v)\n"]}
	 {*ast.StarExpr -> *ast.SelectorExpr [this Bool]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Byte nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Byte = func (v byte) *byte { return &v }(%#v)\n"]}
	 {*ast.StarExpr -> *ast.SelectorExpr [this Byte]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Complex128 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Complex128 = func (v complex128) *complex128 { return &v }(%#v)\n"]}
	 {*ast.StarExpr -> *ast.SelectorExpr [this Complex128]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Complex64 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Complex64 = func (v complex64) *complex64 { return &v }(%#v)\n"]}
	 {*ast.StarExpr -> *ast.SelectorExpr [this Complex64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Float64 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Float64 = func (v float64) *float64 { return &v }(%#v)\n"]}
	 {*ast.StarExpr -> *ast.SelectorExpr [this Float64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Float32 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Float32 = func (v float32) *float32 { return &v }(%#v)\n"]}
	 {*ast.StarExpr -> *ast.SelectorExpr [this Float32]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Int nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int = func (v int) *int { return &v }(%#v)\n"]}
	 {*ast.StarExpr -> *ast.SelectorExpr [this Int]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Int16 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int16 = func (v int16) *int16 { return &v }(%#v)\n"]}
	 {*ast.StarExpr -> *ast.SelectorExpr [this Int16]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Int32 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int32 = func (v int32) *int32 { return &v }(%#v)\n"]}
	 {*ast.StarExpr -> *ast.SelectorExpr [this Int32]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Int64 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int64 = func (v int64) *int64 { return &v }(%#v)\n"]}
	 {*ast.StarExpr -> *ast.SelectorExpr [this Int64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Int8 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int8 = func (v int8) *int8 { return &v }(%#v)\n"]}
	 {*ast.StarExpr -> *ast.SelectorExpr [this Int8]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Rune nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Rune = func (v rune) *rune { return &v }(%#v)\n"]}
	 {*ast.StarExpr -> *ast.SelectorExpr [this Rune]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this String nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.String = func (v string) *string { return &v }(%#v)\n"]}
	 {*ast.StarExpr -> *ast.SelectorExpr [this String]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Uint nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint = func (v uint) *uint { return &v }(%#v)\n"]}
	 {*ast.StarExpr -> *ast.SelectorExpr [this Uint]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Uint16 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint16 = func (v uint16) *uint16 { return &v }(%#v)\n"]}
	 {*ast.StarExpr -> *ast.SelectorExpr [this Uint16]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Uint32 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint32 = func (v uint32) *uint32 { return &v }(%#v)\n"]}
	 {*ast.StarExpr -> *ast.SelectorExpr [this Uint32]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Uint64 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint64 = func (v uint64) *uint64 { return &v }(%#v)\n"]}
	 {*ast.StarExpr -> *ast.SelectorExpr [this Uint64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Uint8 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint8 = func (v uint8) *uint8 { return &v }(%#v)\n"]}
	 {*ast.StarExpr -> *ast.SelectorExpr [this Uint8]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this UintPtr nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.UintPtr = func (v uintptr) *uintptr { return &v }(%#v)\n"]}
	 {*ast.StarExpr -> *ast.SelectorExpr [this UintPtr]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringSliceOfBuiltInTypes 
	 { [deriveGoStringSliceOfBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [SliceOfBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *test.SliceOfBuiltInTypes {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.SliceOfBuiltInTypes{}\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Bool nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Bool = %#v\n"]}
	 {*ast.SelectorExpr [this Bool]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Byte nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Byte = %#v\n"]}
	 {*ast.SelectorExpr [this Byte]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Complex128 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Complex128 = %#v\n"]}
	 {*ast.SelectorExpr [this Complex128]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Complex64 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Complex64 = %#v\n"]}
	 {*ast.SelectorExpr [this Complex64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Float64 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Float64 = %#v\n"]}
	 {*ast.SelectorExpr [this Float64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Float32 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Float32 = %#v\n"]}
	 {*ast.SelectorExpr [this Float32]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Int nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int = %#v\n"]}
	 {*ast.SelectorExpr [this Int]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Int16 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int16 = %#v\n"]}
	 {*ast.SelectorExpr [this Int16]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Int32 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int32 = %#v\n"]}
	 {*ast.SelectorExpr [this Int32]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Int64 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int64 = %#v\n"]}
	 {*ast.SelectorExpr [this Int64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Int8 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int8 = %#v\n"]}
	 {*ast.SelectorExpr [this Int8]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Rune nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Rune = %#v\n"]}
	 {*ast.SelectorExpr [this Rune]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this String nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.String = %#v\n"]}
	 {*ast.SelectorExpr [this String]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Uint nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint = %#v\n"]}
	 {*ast.SelectorExpr [this Uint]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Uint16 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint16 = %#v\n"]}
	 {*ast.SelectorExpr [this Uint16]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Uint32 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint32 = %#v\n"]}
	 {*ast.SelectorExpr [this Uint32]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Uint64 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint64 = %#v\n"]}
	 {*ast.SelectorExpr [this Uint64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Uint8 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint8 = %#v\n"]}
	 {*ast.SelectorExpr [this Uint8]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this UintPtr nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.UintPtr = %#v\n"]}
	 {*ast.SelectorExpr [this UintPtr]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringSliceOfPtrToBuiltInTypes 
	 { [deriveGoStringSliceOfPtrToBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [SliceOfPtrToBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *test.SliceOfPtrToBuiltInTypes {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.SliceOfPtrToBuiltInTypes{}\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Bool nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Bool = %s\n"]}
	 {*ast.CallExpr [deriveGoString]}
	 {*ast.SelectorExpr [this Bool]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Byte nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Byte = %s\n"]}
	 {*ast.CallExpr [deriveGoString_]}
	 {*ast.SelectorExpr [this Byte]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Complex128 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Complex128 = %s\n"]}
	 {*ast.CallExpr [deriveGoString_1]}
	 {*ast.SelectorExpr [this Complex128]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Complex64 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Complex64 = %s\n"]}
	 {*ast.CallExpr [deriveGoString_2]}
	 {*ast.SelectorExpr [this Complex64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Float64 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Float64 = %s\n"]}
	 {*ast.CallExpr [deriveGoString_3]}
	 {*ast.SelectorExpr [this Float64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Float32 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Float32 = %s\n"]}
	 {*ast.CallExpr [deriveGoString_4]}
	 {*ast.SelectorExpr [this Float32]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Int nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int = %s\n"]}
	 {*ast.CallExpr [deriveGoString_5]}
	 {*ast.SelectorExpr [this Int]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Int16 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int16 = %s\n"]}
	 {*ast.CallExpr [deriveGoString_6]}
	 {*ast.SelectorExpr [this Int16]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Int32 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int32 = %s\n"]}
	 {*ast.CallExpr [deriveGoString_7]}
	 {*ast.SelectorExpr [this Int32]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Int64 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int64 = %s\n"]}
	 {*ast.CallExpr [deriveGoString_8]}
	 {*ast.SelectorExpr [this Int64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Int8 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int8 = %s\n"]}
	 {*ast.CallExpr [deriveGoString_9]}
	 {*ast.SelectorExpr [this Int8]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Rune nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Rune = %s\n"]}
	 {*ast.CallExpr [deriveGoString_7]}
	 {*ast.SelectorExpr [this Rune]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this String nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.String = %s\n"]}
	 {*ast.CallExpr [deriveGoString_10]}
	 {*ast.SelectorExpr [this String]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Uint nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint = %s\n"]}
	 {*ast.CallExpr [deriveGoString_11]}
	 {*ast.SelectorExpr [this Uint]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Uint16 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint16 = %s\n"]}
	 {*ast.CallExpr [deriveGoString_12]}
	 {*ast.SelectorExpr [this Uint16]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Uint32 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint32 = %s\n"]}
	 {*ast.CallExpr [deriveGoString_13]}
	 {*ast.SelectorExpr [this Uint32]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Uint64 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint64 = %s\n"]}
	 {*ast.CallExpr [deriveGoString_14]}
	 {*ast.SelectorExpr [this Uint64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Uint8 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint8 = %s\n"]}
	 {*ast.CallExpr [deriveGoString_]}
	 {*ast.SelectorExpr [this Uint8]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this UintPtr nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.UintPtr = %s\n"]}
	 {*ast.CallExpr [deriveGoString_15]}
	 {*ast.SelectorExpr [this UintPtr]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringArrayOfBuiltInTypes 
	 { [deriveGoStringArrayOfBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [ArrayOfBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *test.ArrayOfBuiltInTypes {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.ArrayOfBuiltInTypes{}\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Bool = %#v\n"]}
	 {*ast.SelectorExpr [this Bool]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Byte = %#v\n"]}
	 {*ast.SelectorExpr [this Byte]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Complex128 = %#v\n"]}
	 {*ast.SelectorExpr [this Complex128]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Complex64 = %#v\n"]}
	 {*ast.SelectorExpr [this Complex64]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Float64 = %#v\n"]}
	 {*ast.SelectorExpr [this Float64]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Float32 = %#v\n"]}
	 {*ast.SelectorExpr [this Float32]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int = %#v\n"]}
	 {*ast.SelectorExpr [this Int]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int16 = %#v\n"]}
	 {*ast.SelectorExpr [this Int16]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int32 = %#v\n"]}
	 {*ast.SelectorExpr [this Int32]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int64 = %#v\n"]}
	 {*ast.SelectorExpr [this Int64]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int8 = %#v\n"]}
	 {*ast.SelectorExpr [this Int8]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Rune = %#v\n"]}
	 {*ast.SelectorExpr [this Rune]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.String = %#v\n"]}
	 {*ast.SelectorExpr [this String]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint = %#v\n"]}
	 {*ast.SelectorExpr [this Uint]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint16 = %#v\n"]}
	 {*ast.SelectorExpr [this Uint16]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint32 = %#v\n"]}
	 {*ast.SelectorExpr [this Uint32]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint64 = %#v\n"]}
	 {*ast.SelectorExpr [this Uint64]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint8 = %#v\n"]}
	 {*ast.SelectorExpr [this Uint8]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.UintPtr = %#v\n"]}
	 {*ast.SelectorExpr [this UintPtr]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.AnotherBoolOfDifferentSize = %#v\n"]}
	 {*ast.SelectorExpr [this AnotherBoolOfDifferentSize]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringArrayOfPtrToBuiltInTypes 
	 { [deriveGoStringArrayOfPtrToBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [ArrayOfPtrToBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *test.ArrayOfPtrToBuiltInTypes {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.ArrayOfPtrToBuiltInTypes{}\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Bool = %s\n"]}
	 {*ast.CallExpr [deriveGoString_16]}
	 {*ast.SelectorExpr [this Bool]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Byte = %s\n"]}
	 {*ast.CallExpr [deriveGoString_17]}
	 {*ast.SelectorExpr [this Byte]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Complex128 = %s\n"]}
	 {*ast.CallExpr [deriveGoString_18]}
	 {*ast.SelectorExpr [this Complex128]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Complex64 = %s\n"]}
	 {*ast.CallExpr [deriveGoString_19]}
	 {*ast.SelectorExpr [this Complex64]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Float64 = %s\n"]}
	 {*ast.CallExpr [deriveGoString_20]}
	 {*ast.SelectorExpr [this Float64]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Float32 = %s\n"]}
	 {*ast.CallExpr [deriveGoString_21]}
	 {*ast.SelectorExpr [this Float32]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int = %s\n"]}
	 {*ast.CallExpr [deriveGoString_22]}
	 {*ast.SelectorExpr [this Int]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int16 = %s\n"]}
	 {*ast.CallExpr [deriveGoString_23]}
	 {*ast.SelectorExpr [this Int16]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int32 = %s\n"]}
	 {*ast.CallExpr [deriveGoString_24]}
	 {*ast.SelectorExpr [this Int32]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int64 = %s\n"]}
	 {*ast.CallExpr [deriveGoString_25]}
	 {*ast.SelectorExpr [this Int64]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int8 = %s\n"]}
	 {*ast.CallExpr [deriveGoString_26]}
	 {*ast.SelectorExpr [this Int8]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Rune = %s\n"]}
	 {*ast.CallExpr [deriveGoString_27]}
	 {*ast.SelectorExpr [this Rune]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.String = %s\n"]}
	 {*ast.CallExpr [deriveGoString_28]}
	 {*ast.SelectorExpr [this String]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint = %s\n"]}
	 {*ast.CallExpr [deriveGoString_29]}
	 {*ast.SelectorExpr [this Uint]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint16 = %s\n"]}
	 {*ast.CallExpr [deriveGoString_30]}
	 {*ast.SelectorExpr [this Uint16]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint32 = %s\n"]}
	 {*ast.CallExpr [deriveGoString_31]}
	 {*ast.SelectorExpr [this Uint32]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint64 = %s\n"]}
	 {*ast.CallExpr [deriveGoString_32]}
	 {*ast.SelectorExpr [this Uint64]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint8 = %s\n"]}
	 {*ast.CallExpr [deriveGoString_33]}
	 {*ast.SelectorExpr [this Uint8]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.UintPtr = %s\n"]}
	 {*ast.CallExpr [deriveGoString_34]}
	 {*ast.SelectorExpr [this UintPtr]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.AnotherBoolOfDifferentSize = %s\n"]}
	 {*ast.CallExpr [deriveGoString_35]}
	 {*ast.SelectorExpr [this AnotherBoolOfDifferentSize]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringMapsOfSimplerBuiltInTypes 
	 { [deriveGoStringMapsOfSimplerBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [MapsOfSimplerBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *test.MapsOfSimplerBuiltInTypes {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.MapsOfSimplerBuiltInTypes{}\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this StringToUint32 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.StringToUint32 = %#v\n"]}
	 {*ast.SelectorExpr [this StringToUint32]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Uint64ToInt64 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint64ToInt64 = %#v\n"]}
	 {*ast.SelectorExpr [this Uint64ToInt64]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringMapsOfBuiltInTypes 
	 { [deriveGoStringMapsOfBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [MapsOfBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *test.MapsOfBuiltInTypes {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.MapsOfBuiltInTypes{}\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this BoolToString nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.BoolToString = %#v\n"]}
	 {*ast.SelectorExpr [this BoolToString]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this StringToBool nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.StringToBool = %#v\n"]}
	 {*ast.SelectorExpr [this StringToBool]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Complex128ToComplex64 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Complex128ToComplex64 = %#v\n"]}
	 {*ast.SelectorExpr [this Complex128ToComplex64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Float64ToUint32 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Float64ToUint32 = %#v\n"]}
	 {*ast.SelectorExpr [this Float64ToUint32]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Uint16ToUint8 nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint16ToUint8 = %#v\n"]}
	 {*ast.SelectorExpr [this Uint16ToUint8]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringSliceToSlice 
	 { [deriveGoStringSliceToSlice]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [SliceToSlice]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *test.SliceToSlice {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.SliceToSlice{}\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Ints nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Ints = %s\n"]}
	 {*ast.CallExpr [deriveGoString_36]}
	 {*ast.SelectorExpr [this Ints]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Strings nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Strings = %s\n"]}
	 {*ast.CallExpr [deriveGoString_37]}
	 {*ast.SelectorExpr [this Strings]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this IntPtrs nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.IntPtrs = %s\n"]}
	 {*ast.CallExpr [deriveGoString_38]}
	 {*ast.SelectorExpr [this IntPtrs]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringPtrTo 
	 { [deriveGoStringPtrTo]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [PtrTo]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *test.PtrTo {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.PtrTo{}\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Basic nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Basic = func (v int) *int { return &v }(%#v)\n"]}
	 {*ast.StarExpr -> *ast.SelectorExpr [this Basic]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Slice nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Slice = %s\n"]}
	 {*ast.CallExpr [deriveGoStringIntPtrSlice]}
	 {*ast.SelectorExpr [this Slice]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Array nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Array = %s\n"]}
	 {*ast.CallExpr [deriveGoString_39]}
	 {*ast.SelectorExpr [this Array]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Map nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Map = %s\n"]}
	 {*ast.CallExpr [deriveGoStringIntPtrMap]}
	 {*ast.SelectorExpr [this Map]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringName 
	 { [deriveGoStringName]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [Name]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *test.Name {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.Name{}\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Name = %#v\n"]}
	 {*ast.SelectorExpr [this Name]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringStructs 
	 { [deriveGoStringStructs]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [Structs]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *test.Structs {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.Structs{}\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Struct = %s\n"]}
	 {*ast.CallExpr [deriveGoString_N]}
	 {*ast.SelectorExpr [this Struct]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this PtrToStruct nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.PtrToStruct = %s\n"]}
	 {*ast.CallExpr [deriveGoStringName]}
	 {*ast.SelectorExpr [this PtrToStruct]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this SliceOfStructs nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.SliceOfStructs = %s\n"]}
	 {*ast.CallExpr [deriveGoString_40]}
	 {*ast.SelectorExpr [this SliceOfStructs]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this SliceToPtrOfStruct nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.SliceToPtrOfStruct = %s\n"]}
	 {*ast.CallExpr [deriveGoString_41]}
	 {*ast.SelectorExpr [this SliceToPtrOfStruct]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.StructWithoutMethod = %s\n"]}
	 {*ast.CallExpr [deriveGoString_S]}
	 {*ast.SelectorExpr [this StructWithoutMethod]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this PtrToStructWithoutMethod nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.PtrToStructWithoutMethod = %s\n"]}
	 {*ast.CallExpr [deriveGoString_42]}
	 {*ast.SelectorExpr [this PtrToStructWithoutMethod]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this SliceOfStructWithoutMethod nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.SliceOfStructWithoutMethod = %s\n"]}
	 {*ast.CallExpr [deriveGoString_43]}
	 {*ast.SelectorExpr [this SliceOfStructWithoutMethod]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this SliceToPtrOfStructWithoutMethod nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.SliceToPtrOfStructWithoutMethod = %s\n"]}
	 {*ast.CallExpr [deriveGoString_44]}
	 {*ast.SelectorExpr [this SliceToPtrOfStructWithoutMethod]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringMapWithStructs 
	 { [deriveGoStringMapWithStructs]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [MapWithStructs]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *test.MapWithStructs {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.MapWithStructs{}\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this NameToString nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.NameToString = %s\n"]}
	 {*ast.CallExpr [deriveGoString_45]}
	 {*ast.SelectorExpr [this NameToString]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this StringToName nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.StringToName = %s\n"]}
	 {*ast.CallExpr [deriveGoString_46]}
	 {*ast.SelectorExpr [this StringToName]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this StringToPtrToName nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.StringToPtrToName = %s\n"]}
	 {*ast.CallExpr [deriveGoString_47]}
	 {*ast.SelectorExpr [this StringToPtrToName]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this StringToSliceOfName nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.StringToSliceOfName = %s\n"]}
	 {*ast.CallExpr [deriveGoString_48]}
	 {*ast.SelectorExpr [this StringToSliceOfName]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this StringToSliceOfPtrToName nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.StringToSliceOfPtrToName = %s\n"]}
	 {*ast.CallExpr [deriveGoString_49]}
	 {*ast.SelectorExpr [this StringToSliceOfPtrToName]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this StringToStructWithoutMethod nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.StringToStructWithoutMethod = %s\n"]}
	 {*ast.CallExpr [deriveGoString_50]}
	 {*ast.SelectorExpr [this StringToStructWithoutMethod]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this StructWithoutMethodToString nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.StructWithoutMethodToString = %s\n"]}
	 {*ast.CallExpr [deriveGoString_51]}
	 {*ast.SelectorExpr [this StructWithoutMethodToString]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this StringToPtrToStructWithoutMethod nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.StringToPtrToStructWithoutMethod = %s\n"]}
	 {*ast.CallExpr [deriveGoString_52]}
	 {*ast.SelectorExpr [this StringToPtrToStructWithoutMethod]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this StringToSliceOfStructWithoutMethod nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.StringToSliceOfStructWithoutMethod = %s\n"]}
	 {*ast.CallExpr [deriveGoString_53]}
	 {*ast.SelectorExpr [this StringToSliceOfStructWithoutMethod]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this StringToSliceOfPtrToStructWithoutMethod nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.StringToSliceOfPtrToStructWithoutMethod = %s\n"]}
	 {*ast.CallExpr [deriveGoString_54]}
	 {*ast.SelectorExpr [this StringToSliceOfPtrToStructWithoutMethod]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringRecursiveType 
	 { [deriveGoStringRecursiveType]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [RecursiveType]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *test.RecursiveType {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.RecursiveType{}\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Bytes nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Bytes = %#v\n"]}
	 {*ast.SelectorExpr [this Bytes]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this N nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.N = %s\n"]}
	 {*ast.CallExpr [deriveGoString_55]}
	 {*ast.SelectorExpr [this N]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringEmbeddedStruct1 
	 { [deriveGoStringEmbeddedStruct1]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [EmbeddedStruct1]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *test.EmbeddedStruct1 {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.EmbeddedStruct1{}\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Name = %s\n"]}
	 {*ast.CallExpr [deriveGoString_N]}
	 {*ast.SelectorExpr [this Name]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.StructWithoutMethod = %s\n"]}
	 {*ast.CallExpr [deriveGoString_S]}
	 {*ast.SelectorExpr [this StructWithoutMethod]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Structs nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Structs = %s\n"]}
	 {*ast.CallExpr [deriveGoStringStructs]}
	 {*ast.SelectorExpr [this Structs]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringEmbeddedStruct2 
	 { [deriveGoStringEmbeddedStruct2]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [EmbeddedStruct2]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *test.EmbeddedStruct2 {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.EmbeddedStruct2{}\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Structs = %s\n"]}
	 {*ast.CallExpr [deriveGoString_St]}
	 {*ast.SelectorExpr [this Structs]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Name nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Name = %s\n"]}
	 {*ast.CallExpr [deriveGoStringName]}
	 {*ast.SelectorExpr [this Name]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this StructWithoutMethod nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.StructWithoutMethod = %s\n"]}
	 {*ast.CallExpr [deriveGoString_42]}
	 {*ast.SelectorExpr [this StructWithoutMethod]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringStructWithStructFieldWithoutEqualMethod 
	 { [deriveGoStringStructWithStructFieldWithoutEqualMethod]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [StructWithStructFieldWithoutEqualMethod]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *test.StructWithStructFieldWithoutEqualMethod {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.StructWithStructFieldWithoutEqualMethod{}\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this A nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.A = %s\n"]}
	 {*ast.CallExpr [deriveGoString_56]}
	 {*ast.SelectorExpr [this A]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.B = %s\n"]}
	 {*ast.CallExpr [deriveGoString_Str]}
	 {*ast.SelectorExpr [this B]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringStructWithStructWithFromAnotherPackage 
	 { [deriveGoStringStructWithStructWithFromAnotherPackage]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [StructWithStructWithFromAnotherPackage]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *test.StructWithStructWithFromAnotherPackage {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.StructWithStructWithFromAnotherPackage{}\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this A nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.A = %s\n"]}
	 {*ast.CallExpr [deriveGoString_57]}
	 {*ast.SelectorExpr [this A]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.B = %s\n"]}
	 {*ast.CallExpr [deriveGoString_Stru]}
	 {*ast.SelectorExpr [this B]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringEnums 
	 { [deriveGoStringEnums]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [Enums]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *test.Enums {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.Enums{}\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Enum = %#v\n"]}
	 {*ast.SelectorExpr [this Enum]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this PtrToEnum nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.PtrToEnum = %s\n"]}
	 {*ast.CallExpr [deriveGoString_58]}
	 {*ast.SelectorExpr [this PtrToEnum]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this SliceToEnum nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.SliceToEnum = %s\n"]}
	 {*ast.CallExpr [deriveGoString_59]}
	 {*ast.SelectorExpr [this SliceToEnum]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this SliceToPtrToEnum nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.SliceToPtrToEnum = %s\n"]}
	 {*ast.CallExpr [deriveGoString_60]}
	 {*ast.SelectorExpr [this SliceToPtrToEnum]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this MapToEnum nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.MapToEnum = %s\n"]}
	 {*ast.CallExpr [deriveGoString_61]}
	 {*ast.SelectorExpr [this MapToEnum]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this EnumToMap nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.EnumToMap = %s\n"]}
	 {*ast.CallExpr [deriveGoString_62]}
	 {*ast.SelectorExpr [this EnumToMap]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.ArrayEnum = %s\n"]}
	 {*ast.CallExpr [deriveGoString_63]}
	 {*ast.SelectorExpr [this ArrayEnum]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringNamedTypes 
	 { [deriveGoStringNamedTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [NamedTypes]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *test.NamedTypes {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.NamedTypes{}\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Slice nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Slice = %#v\n"]}
	 {*ast.SelectorExpr [this Slice]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this PtrToSlice nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.PtrToSlice = %s\n"]}
	 {*ast.CallExpr [deriveGoString_64]}
	 {*ast.SelectorExpr [this PtrToSlice]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this SliceToSlice nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.SliceToSlice = %s\n"]}
	 {*ast.CallExpr [deriveGoString_65]}
	 {*ast.SelectorExpr [this SliceToSlice]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringDuration 
	 { [deriveGoStringDuration]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [Duration]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *test.Duration {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.Duration{}\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.D = %#v\n"]}
	 {*ast.SelectorExpr [this D]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this P nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.P = %s\n"]}
	 {*ast.CallExpr [deriveGoString_66]}
	 {*ast.SelectorExpr [this P]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Ds nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Ds = %s\n"]}
	 {*ast.CallExpr [deriveGoString_67]}
	 {*ast.SelectorExpr [this Ds]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this DPs nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.DPs = %s\n"]}
	 {*ast.CallExpr [deriveGoString_68]}
	 {*ast.SelectorExpr [this DPs]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this MD nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.MD = %s\n"]}
	 {*ast.CallExpr [deriveGoString_69]}
	 {*ast.SelectorExpr [this MD]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringNickname 
	 { [deriveGoStringNickname]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [Nickname]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *test.Nickname {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.Nickname{}\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Alias nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Alias = %s\n"]}
	 {*ast.CallExpr [deriveGoString_70]}
	 {*ast.SelectorExpr [this Alias]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringPrivateEmbedded 
	 { [deriveGoStringPrivateEmbedded]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [PrivateEmbedded]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *test.PrivateEmbedded {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.PrivateEmbedded{}\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.privateStruct = %s\n"]}
	 {*ast.CallExpr [deriveGoString_p]}
	 {*ast.SelectorExpr [this privateStruct]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringIntSlices 
	 { [deriveGoStringIntSlices]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType [int]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []int {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return %#v\n"]}
	 { [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringIntArray 
	 { [deriveGoStringIntArray]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 10]}
	 { [int]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() [10]int {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return %#v\n"]}
	 { [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringMapOfIntToInt 
	 { [deriveGoStringMapOfIntToInt]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.MapType [int int]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() map[int]int {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return %#v\n"]}
	 { [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringIntPtr 
	 { [deriveGoStringIntPtr]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [int]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *int {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := new(int)\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "*this = %#v\n"]}
	 {*ast.StarExpr [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringIntPtrSlice 
	 { [deriveGoStringIntPtrSlice]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr -> *ast.ArrayType [int]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *[]int {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := new([]int)\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.StarExpr [this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "*this = %#v\n"]}
	 {*ast.StarExpr [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringIntPtrArray 
	 { [deriveGoStringIntPtrArray]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr -> *ast.ArrayType -> *ast.BasicLit [INT 10]}
	 { [int]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *[10]int {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := new([10]int)\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "*this = %#v\n"]}
	 {*ast.StarExpr [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringIntPtrMap 
	 { [deriveGoStringIntPtrMap]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr -> *ast.MapType [int int]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *map[int]int {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := new(map[int]int)\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.StarExpr [this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "*this = %#v\n"]}
	 {*ast.StarExpr [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoStringNoPointerStruct 
	 { [deriveGoStringNoPointerStruct]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this BuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() test.BuiltInTypes {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.BuiltInTypes{}\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Bool = %#v\n"]}
	 {*ast.SelectorExpr [this Bool]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Byte = %#v\n"]}
	 {*ast.SelectorExpr [this Byte]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Complex128 = %#v\n"]}
	 {*ast.SelectorExpr [this Complex128]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Complex64 = %#v\n"]}
	 {*ast.SelectorExpr [this Complex64]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Float64 = %#v\n"]}
	 {*ast.SelectorExpr [this Float64]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Float32 = %#v\n"]}
	 {*ast.SelectorExpr [this Float32]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int = %#v\n"]}
	 {*ast.SelectorExpr [this Int]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int16 = %#v\n"]}
	 {*ast.SelectorExpr [this Int16]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int32 = %#v\n"]}
	 {*ast.SelectorExpr [this Int32]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int64 = %#v\n"]}
	 {*ast.SelectorExpr [this Int64]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Int8 = %#v\n"]}
	 {*ast.SelectorExpr [this Int8]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Rune = %#v\n"]}
	 {*ast.SelectorExpr [this Rune]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.String = %#v\n"]}
	 {*ast.SelectorExpr [this String]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint = %#v\n"]}
	 {*ast.SelectorExpr [this Uint]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint16 = %#v\n"]}
	 {*ast.SelectorExpr [this Uint16]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint32 = %#v\n"]}
	 {*ast.SelectorExpr [this Uint32]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint64 = %#v\n"]}
	 {*ast.SelectorExpr [this Uint64]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Uint8 = %#v\n"]}
	 {*ast.SelectorExpr [this Uint8]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.UintPtr = %#v\n"]}
	 {*ast.SelectorExpr [this UintPtr]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return *this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveDeepCopyPtrToEmpty 
	 { [deriveDeepCopyPtrToEmpty]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [Empty]}
	 {*ast.BlockStmt []}


function name is deriveDeepCopyPtrToBuiltInTypes 
	 { [deriveDeepCopyPtrToBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [BuiltInTypes]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Bool]}
	 {*ast.SelectorExpr [src Bool]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Byte]}
	 {*ast.SelectorExpr [src Byte]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex128]}
	 {*ast.SelectorExpr [src Complex128]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex64]}
	 {*ast.SelectorExpr [src Complex64]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float64]}
	 {*ast.SelectorExpr [src Float64]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float32]}
	 {*ast.SelectorExpr [src Float32]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int]}
	 {*ast.SelectorExpr [src Int]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int16]}
	 {*ast.SelectorExpr [src Int16]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int32]}
	 {*ast.SelectorExpr [src Int32]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int64]}
	 {*ast.SelectorExpr [src Int64]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int8]}
	 {*ast.SelectorExpr [src Int8]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Rune]}
	 {*ast.SelectorExpr [src Rune]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst String]}
	 {*ast.SelectorExpr [src String]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint]}
	 {*ast.SelectorExpr [src Uint]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint16]}
	 {*ast.SelectorExpr [src Uint16]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint32]}
	 {*ast.SelectorExpr [src Uint32]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint64]}
	 {*ast.SelectorExpr [src Uint64]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint8]}
	 {*ast.SelectorExpr [src Uint8]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst UintPtr]}
	 {*ast.SelectorExpr [src UintPtr]}


function name is deriveDeepCopyPtrToPrivateBuiltInTypes 
	 { [deriveDeepCopyPtrToPrivateBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [PrivateBuiltInTypes]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst privateBool]}
	 {*ast.SelectorExpr [src privateBool]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst privateByte]}
	 {*ast.SelectorExpr [src privateByte]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst privateComplex128]}
	 {*ast.SelectorExpr [src privateComplex128]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst privateComplex64]}
	 {*ast.SelectorExpr [src privateComplex64]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst privateFloat64]}
	 {*ast.SelectorExpr [src privateFloat64]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst privateFloat32]}
	 {*ast.SelectorExpr [src privateFloat32]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst privateInt]}
	 {*ast.SelectorExpr [src privateInt]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst privateInt16]}
	 {*ast.SelectorExpr [src privateInt16]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst privateInt32]}
	 {*ast.SelectorExpr [src privateInt32]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst privateInt64]}
	 {*ast.SelectorExpr [src privateInt64]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst privateInt8]}
	 {*ast.SelectorExpr [src privateInt8]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst privateRune]}
	 {*ast.SelectorExpr [src privateRune]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst privateString]}
	 {*ast.SelectorExpr [src privateString]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst privateUint]}
	 {*ast.SelectorExpr [src privateUint]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst privateUint16]}
	 {*ast.SelectorExpr [src privateUint16]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst privateUint32]}
	 {*ast.SelectorExpr [src privateUint32]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst privateUint64]}
	 {*ast.SelectorExpr [src privateUint64]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst privateUint8]}
	 {*ast.SelectorExpr [src privateUint8]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst privateUintPtr]}
	 {*ast.SelectorExpr [src privateUintPtr]}


function name is deriveDeepCopyPtrToPtrToBuiltInTypes 
	 { [deriveDeepCopyPtrToPtrToBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [PtrToBuiltInTypes]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Bool nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Bool nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Bool]}
	 {*ast.CallExpr [new bool]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.SelectorExpr [dst Bool]}
	 {*ast.StarExpr -> *ast.SelectorExpr [src Bool]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Byte nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Byte nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Byte]}
	 {*ast.CallExpr [new byte]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.SelectorExpr [dst Byte]}
	 {*ast.StarExpr -> *ast.SelectorExpr [src Byte]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Complex128 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex128 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex128]}
	 {*ast.CallExpr [new complex128]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.SelectorExpr [dst Complex128]}
	 {*ast.StarExpr -> *ast.SelectorExpr [src Complex128]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Complex64 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex64 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex64]}
	 {*ast.CallExpr [new complex64]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.SelectorExpr [dst Complex64]}
	 {*ast.StarExpr -> *ast.SelectorExpr [src Complex64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Float64 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float64 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float64]}
	 {*ast.CallExpr [new float64]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.SelectorExpr [dst Float64]}
	 {*ast.StarExpr -> *ast.SelectorExpr [src Float64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Float32 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float32 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float32]}
	 {*ast.CallExpr [new float32]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.SelectorExpr [dst Float32]}
	 {*ast.StarExpr -> *ast.SelectorExpr [src Float32]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Int nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int]}
	 {*ast.CallExpr [new int]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.SelectorExpr [dst Int]}
	 {*ast.StarExpr -> *ast.SelectorExpr [src Int]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Int16 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int16 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int16]}
	 {*ast.CallExpr [new int16]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.SelectorExpr [dst Int16]}
	 {*ast.StarExpr -> *ast.SelectorExpr [src Int16]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Int32 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int32 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int32]}
	 {*ast.CallExpr [new int32]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.SelectorExpr [dst Int32]}
	 {*ast.StarExpr -> *ast.SelectorExpr [src Int32]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Int64 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int64 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int64]}
	 {*ast.CallExpr [new int64]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.SelectorExpr [dst Int64]}
	 {*ast.StarExpr -> *ast.SelectorExpr [src Int64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Int8 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int8 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int8]}
	 {*ast.CallExpr [new int8]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.SelectorExpr [dst Int8]}
	 {*ast.StarExpr -> *ast.SelectorExpr [src Int8]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Rune nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Rune nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Rune]}
	 {*ast.CallExpr [new rune]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.SelectorExpr [dst Rune]}
	 {*ast.StarExpr -> *ast.SelectorExpr [src Rune]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src String nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst String nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst String]}
	 {*ast.CallExpr [new string]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.SelectorExpr [dst String]}
	 {*ast.StarExpr -> *ast.SelectorExpr [src String]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Uint nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint]}
	 {*ast.CallExpr [new uint]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.SelectorExpr [dst Uint]}
	 {*ast.StarExpr -> *ast.SelectorExpr [src Uint]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Uint16 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint16 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint16]}
	 {*ast.CallExpr [new uint16]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.SelectorExpr [dst Uint16]}
	 {*ast.StarExpr -> *ast.SelectorExpr [src Uint16]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Uint32 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint32 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint32]}
	 {*ast.CallExpr [new uint32]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.SelectorExpr [dst Uint32]}
	 {*ast.StarExpr -> *ast.SelectorExpr [src Uint32]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Uint64 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint64 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint64]}
	 {*ast.CallExpr [new uint64]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.SelectorExpr [dst Uint64]}
	 {*ast.StarExpr -> *ast.SelectorExpr [src Uint64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Uint8 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint8 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint8]}
	 {*ast.CallExpr [new uint8]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.SelectorExpr [dst Uint8]}
	 {*ast.StarExpr -> *ast.SelectorExpr [src Uint8]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src UintPtr nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst UintPtr nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst UintPtr]}
	 {*ast.CallExpr [new uintptr]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.SelectorExpr [dst UintPtr]}
	 {*ast.StarExpr -> *ast.SelectorExpr [src UintPtr]}


function name is deriveDeepCopyPtrToSliceOfBuiltInTypes 
	 { [deriveDeepCopyPtrToSliceOfBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [SliceOfBuiltInTypes]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Bool nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Bool nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Bool nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Bool]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Bool]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Bool]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Bool]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Bool]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Bool]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Bool]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [bool]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Bool]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Bool]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Bool]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Bool]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Bool]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Bool]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Bool]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [bool]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Bool]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.SelectorExpr [dst Bool]}
	 {*ast.SelectorExpr [src Bool]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Byte nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Byte nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Byte nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Byte]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Byte]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Byte]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Byte]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Byte]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Byte]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Byte]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Byte]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [byte]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Byte]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Byte]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Byte]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Byte]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Byte]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Byte]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Byte]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [byte]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Byte]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.SelectorExpr [dst Byte]}
	 {*ast.SelectorExpr [src Byte]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Complex128 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex128 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Complex128 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex128]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Complex128]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Complex128]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex128]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex128]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Complex128]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex128]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex128]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [complex128]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex128]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex128]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Complex128]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex128]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Complex128]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex128]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex128]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [complex128]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex128]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.SelectorExpr [dst Complex128]}
	 {*ast.SelectorExpr [src Complex128]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Complex64 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex64 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Complex64 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Complex64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Complex64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex64]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Complex64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex64]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [complex64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Complex64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex64]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Complex64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex64]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [complex64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex64]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.SelectorExpr [dst Complex64]}
	 {*ast.SelectorExpr [src Complex64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Float64 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float64 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Float64 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Float64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Float64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float64]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Float64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float64]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [float64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Float64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float64]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Float64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float64]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [float64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float64]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.SelectorExpr [dst Float64]}
	 {*ast.SelectorExpr [src Float64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Float32 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float32 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Float32 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Float32]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Float32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float32]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float32]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Float32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float32]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float32]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [float32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float32]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Float32]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float32]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Float32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float32]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float32]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [float32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float32]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.SelectorExpr [dst Float32]}
	 {*ast.SelectorExpr [src Float32]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Int nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Int nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Int]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Int]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Int]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.SelectorExpr [dst Int]}
	 {*ast.SelectorExpr [src Int]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Int16 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int16 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Int16 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int16]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Int16]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Int16]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int16]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int16]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Int16]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int16]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int16]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int16]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int16]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int16]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Int16]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int16]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Int16]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int16]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int16]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int16]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int16]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.SelectorExpr [dst Int16]}
	 {*ast.SelectorExpr [src Int16]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Int32 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int32 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Int32 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Int32]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Int32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int32]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int32]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Int32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int32]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int32]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int32]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Int32]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int32]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Int32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int32]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int32]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int32]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.SelectorExpr [dst Int32]}
	 {*ast.SelectorExpr [src Int32]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Int64 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int64 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Int64 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Int64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Int64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int64]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Int64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int64]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Int64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int64]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Int64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int64]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int64]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.SelectorExpr [dst Int64]}
	 {*ast.SelectorExpr [src Int64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Int8 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int8 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Int8 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Int8]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Int8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int8]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int8]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Int8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int8]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int8]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int8]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Int8]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int8]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Int8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int8]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int8]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int8]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.SelectorExpr [dst Int8]}
	 {*ast.SelectorExpr [src Int8]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Rune nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Rune nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Rune nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Rune]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Rune]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Rune]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Rune]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Rune]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Rune]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Rune]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Rune]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [rune]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Rune]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Rune]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Rune]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Rune]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Rune]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Rune]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Rune]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [rune]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Rune]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.SelectorExpr [dst Rune]}
	 {*ast.SelectorExpr [src Rune]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src String nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst String nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst String nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src String]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst String]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst String]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src String]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst String]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst String]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src String]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst String]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [string]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src String]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src String]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst String]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst String]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst String]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src String]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst String]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [string]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src String]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.SelectorExpr [dst String]}
	 {*ast.SelectorExpr [src String]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Uint nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Uint nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Uint]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Uint]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Uint]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [uint]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Uint]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Uint]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [uint]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.SelectorExpr [dst Uint]}
	 {*ast.SelectorExpr [src Uint]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Uint16 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint16 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Uint16 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint16]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Uint16]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Uint16]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint16]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint16]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Uint16]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint16]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint16]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [uint16]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint16]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint16]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Uint16]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint16]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Uint16]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint16]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint16]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [uint16]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint16]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.SelectorExpr [dst Uint16]}
	 {*ast.SelectorExpr [src Uint16]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Uint32 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint32 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Uint32 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Uint32]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Uint32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint32]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint32]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Uint32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint32]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint32]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [uint32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint32]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Uint32]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint32]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Uint32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint32]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint32]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [uint32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint32]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.SelectorExpr [dst Uint32]}
	 {*ast.SelectorExpr [src Uint32]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Uint64 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint64 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Uint64 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Uint64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint64]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Uint64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint64]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [uint64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint64]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Uint64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint64]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [uint64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint64]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.SelectorExpr [dst Uint64]}
	 {*ast.SelectorExpr [src Uint64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Uint8 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint8 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Uint8 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Uint8]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Uint8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint8]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint8]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Uint8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint8]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint8]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [uint8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint8]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Uint8]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint8]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Uint8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint8]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint8]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [uint8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint8]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.SelectorExpr [dst Uint8]}
	 {*ast.SelectorExpr [src Uint8]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src UintPtr nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst UintPtr nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst UintPtr nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src UintPtr]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst UintPtr]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst UintPtr]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src UintPtr]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst UintPtr]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst UintPtr]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src UintPtr]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst UintPtr]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [uintptr]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src UintPtr]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src UintPtr]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst UintPtr]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst UintPtr]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst UintPtr]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src UintPtr]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst UintPtr]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [uintptr]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src UintPtr]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.SelectorExpr [dst UintPtr]}
	 {*ast.SelectorExpr [src UintPtr]}


function name is deriveDeepCopyPtrToSliceOfPtrToBuiltInTypes 
	 { [deriveDeepCopyPtrToSliceOfPtrToBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [SliceOfPtrToBuiltInTypes]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Bool nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Bool nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Bool nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Bool]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Bool]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Bool]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Bool]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Bool]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Bool]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Bool]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [bool]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Bool]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Bool]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Bool]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Bool]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Bool]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Bool]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Bool]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [bool]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Bool]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy]}
	 {*ast.SelectorExpr [dst Bool]}
	 {*ast.SelectorExpr [src Bool]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Byte nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Byte nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Byte nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Byte]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Byte]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Byte]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Byte]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Byte]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Byte]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Byte]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Byte]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [byte]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Byte]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Byte]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Byte]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Byte]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Byte]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Byte]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Byte]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [byte]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Byte]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_]}
	 {*ast.SelectorExpr [dst Byte]}
	 {*ast.SelectorExpr [src Byte]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Complex128 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex128 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Complex128 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex128]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Complex128]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Complex128]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex128]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex128]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Complex128]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex128]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex128]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [complex128]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex128]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex128]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Complex128]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex128]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Complex128]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex128]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex128]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [complex128]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex128]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_1]}
	 {*ast.SelectorExpr [dst Complex128]}
	 {*ast.SelectorExpr [src Complex128]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Complex64 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex64 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Complex64 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Complex64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Complex64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex64]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Complex64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex64]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [complex64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Complex64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex64]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Complex64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex64]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [complex64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex64]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_2]}
	 {*ast.SelectorExpr [dst Complex64]}
	 {*ast.SelectorExpr [src Complex64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Float64 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float64 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Float64 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Float64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Float64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float64]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Float64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float64]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [float64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Float64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float64]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Float64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float64]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [float64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float64]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_3]}
	 {*ast.SelectorExpr [dst Float64]}
	 {*ast.SelectorExpr [src Float64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Float32 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float32 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Float32 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Float32]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Float32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float32]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float32]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Float32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float32]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float32]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [float32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float32]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Float32]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float32]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Float32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float32]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float32]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [float32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float32]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_4]}
	 {*ast.SelectorExpr [dst Float32]}
	 {*ast.SelectorExpr [src Float32]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Int nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Int nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Int]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Int]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [int]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Int]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [int]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_5]}
	 {*ast.SelectorExpr [dst Int]}
	 {*ast.SelectorExpr [src Int]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Int16 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int16 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Int16 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int16]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Int16]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Int16]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int16]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int16]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Int16]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int16]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int16]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [int16]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int16]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int16]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Int16]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int16]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Int16]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int16]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int16]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [int16]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int16]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_6]}
	 {*ast.SelectorExpr [dst Int16]}
	 {*ast.SelectorExpr [src Int16]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Int32 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int32 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Int32 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Int32]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Int32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int32]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int32]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Int32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int32]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int32]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [int32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int32]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Int32]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int32]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Int32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int32]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int32]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [int32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int32]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_7]}
	 {*ast.SelectorExpr [dst Int32]}
	 {*ast.SelectorExpr [src Int32]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Int64 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int64 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Int64 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Int64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Int64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int64]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Int64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int64]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Int64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int64]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Int64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int64]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int64]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_8]}
	 {*ast.SelectorExpr [dst Int64]}
	 {*ast.SelectorExpr [src Int64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Int8 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int8 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Int8 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Int8]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Int8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int8]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int8]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Int8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int8]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int8]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [int8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int8]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Int8]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int8]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Int8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int8]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int8]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [int8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Int8]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_9]}
	 {*ast.SelectorExpr [dst Int8]}
	 {*ast.SelectorExpr [src Int8]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Rune nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Rune nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Rune nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Rune]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Rune]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Rune]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Rune]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Rune]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Rune]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Rune]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Rune]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [rune]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Rune]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Rune]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Rune]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Rune]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Rune]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Rune]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Rune]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [rune]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Rune]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_7]}
	 {*ast.SelectorExpr [dst Rune]}
	 {*ast.SelectorExpr [src Rune]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src String nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst String nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst String nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src String]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst String]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst String]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src String]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst String]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst String]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src String]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst String]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [string]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src String]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src String]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst String]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst String]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst String]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src String]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst String]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [string]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src String]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_10]}
	 {*ast.SelectorExpr [dst String]}
	 {*ast.SelectorExpr [src String]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Uint nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Uint nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Uint]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Uint]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Uint]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [uint]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Uint]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Uint]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [uint]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_11]}
	 {*ast.SelectorExpr [dst Uint]}
	 {*ast.SelectorExpr [src Uint]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Uint16 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint16 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Uint16 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint16]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Uint16]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Uint16]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint16]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint16]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Uint16]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint16]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint16]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [uint16]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint16]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint16]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Uint16]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint16]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Uint16]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint16]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint16]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [uint16]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint16]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_12]}
	 {*ast.SelectorExpr [dst Uint16]}
	 {*ast.SelectorExpr [src Uint16]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Uint32 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint32 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Uint32 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Uint32]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Uint32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint32]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint32]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Uint32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint32]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint32]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [uint32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint32]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Uint32]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint32]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Uint32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint32]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint32]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [uint32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint32]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_13]}
	 {*ast.SelectorExpr [dst Uint32]}
	 {*ast.SelectorExpr [src Uint32]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Uint64 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint64 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Uint64 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Uint64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint64]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Uint64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint64]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [uint64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint64]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Uint64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint64]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [uint64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint64]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_14]}
	 {*ast.SelectorExpr [dst Uint64]}
	 {*ast.SelectorExpr [src Uint64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Uint8 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint8 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Uint8 nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Uint8]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Uint8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint8]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint8]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Uint8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint8]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint8]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [uint8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint8]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Uint8]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint8]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Uint8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint8]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint8]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [uint8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint8]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_]}
	 {*ast.SelectorExpr [dst Uint8]}
	 {*ast.SelectorExpr [src Uint8]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src UintPtr nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst UintPtr nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst UintPtr nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src UintPtr]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst UintPtr]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst UintPtr]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src UintPtr]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst UintPtr]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst UintPtr]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src UintPtr]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst UintPtr]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [uintptr]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src UintPtr]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src UintPtr]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst UintPtr]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst UintPtr]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst UintPtr]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src UintPtr]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst UintPtr]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [uintptr]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src UintPtr]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_15]}
	 {*ast.SelectorExpr [dst UintPtr]}
	 {*ast.SelectorExpr [src UintPtr]}


function name is deriveDeepCopyPtrToArrayOfBuiltInTypes 
	 { [deriveDeepCopyPtrToArrayOfBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [ArrayOfBuiltInTypes]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Bool]}
	 {*ast.SelectorExpr [src Bool]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Byte]}
	 {*ast.SelectorExpr [src Byte]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex128]}
	 {*ast.SelectorExpr [src Complex128]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex64]}
	 {*ast.SelectorExpr [src Complex64]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float64]}
	 {*ast.SelectorExpr [src Float64]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float32]}
	 {*ast.SelectorExpr [src Float32]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int]}
	 {*ast.SelectorExpr [src Int]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int16]}
	 {*ast.SelectorExpr [src Int16]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int32]}
	 {*ast.SelectorExpr [src Int32]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int64]}
	 {*ast.SelectorExpr [src Int64]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Int8]}
	 {*ast.SelectorExpr [src Int8]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Rune]}
	 {*ast.SelectorExpr [src Rune]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst String]}
	 {*ast.SelectorExpr [src String]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint]}
	 {*ast.SelectorExpr [src Uint]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint16]}
	 {*ast.SelectorExpr [src Uint16]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint32]}
	 {*ast.SelectorExpr [src Uint32]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint64]}
	 {*ast.SelectorExpr [src Uint64]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint8]}
	 {*ast.SelectorExpr [src Uint8]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst UintPtr]}
	 {*ast.SelectorExpr [src UintPtr]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst AnotherBoolOfDifferentSize]}
	 {*ast.SelectorExpr [src AnotherBoolOfDifferentSize]}


function name is deriveDeepCopyPtrToArrayOfPtrToBuiltInTypes 
	 { [deriveDeepCopyPtrToArrayOfPtrToBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [ArrayOfPtrToBuiltInTypes]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_i src_value]}
	 {*ast.SelectorExpr [src Bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Bool src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Bool src_i]}
	 {*ast.CallExpr [new bool]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr -> *ast.SelectorExpr [dst Bool src_i]}
	 {*ast.StarExpr [src_value]}
	 {*ast.RangeStmt [src_i src_value]}
	 {*ast.SelectorExpr [src Byte]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Byte src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Byte src_i]}
	 {*ast.CallExpr [new byte]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr -> *ast.SelectorExpr [dst Byte src_i]}
	 {*ast.StarExpr [src_value]}
	 {*ast.RangeStmt [src_i src_value]}
	 {*ast.SelectorExpr [src Complex128]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Complex128 src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Complex128 src_i]}
	 {*ast.CallExpr [new complex128]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr -> *ast.SelectorExpr [dst Complex128 src_i]}
	 {*ast.StarExpr [src_value]}
	 {*ast.RangeStmt [src_i src_value]}
	 {*ast.SelectorExpr [src Complex64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Complex64 src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Complex64 src_i]}
	 {*ast.CallExpr [new complex64]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr -> *ast.SelectorExpr [dst Complex64 src_i]}
	 {*ast.StarExpr [src_value]}
	 {*ast.RangeStmt [src_i src_value]}
	 {*ast.SelectorExpr [src Float64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Float64 src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Float64 src_i]}
	 {*ast.CallExpr [new float64]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr -> *ast.SelectorExpr [dst Float64 src_i]}
	 {*ast.StarExpr [src_value]}
	 {*ast.RangeStmt [src_i src_value]}
	 {*ast.SelectorExpr [src Float32]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Float32 src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Float32 src_i]}
	 {*ast.CallExpr [new float32]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr -> *ast.SelectorExpr [dst Float32 src_i]}
	 {*ast.StarExpr [src_value]}
	 {*ast.RangeStmt [src_i src_value]}
	 {*ast.SelectorExpr [src Int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Int src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Int src_i]}
	 {*ast.CallExpr [new int]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr -> *ast.SelectorExpr [dst Int src_i]}
	 {*ast.StarExpr [src_value]}
	 {*ast.RangeStmt [src_i src_value]}
	 {*ast.SelectorExpr [src Int16]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Int16 src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Int16 src_i]}
	 {*ast.CallExpr [new int16]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr -> *ast.SelectorExpr [dst Int16 src_i]}
	 {*ast.StarExpr [src_value]}
	 {*ast.RangeStmt [src_i src_value]}
	 {*ast.SelectorExpr [src Int32]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Int32 src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Int32 src_i]}
	 {*ast.CallExpr [new int32]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr -> *ast.SelectorExpr [dst Int32 src_i]}
	 {*ast.StarExpr [src_value]}
	 {*ast.RangeStmt [src_i src_value]}
	 {*ast.SelectorExpr [src Int64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Int64 src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Int64 src_i]}
	 {*ast.CallExpr [new int64]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr -> *ast.SelectorExpr [dst Int64 src_i]}
	 {*ast.StarExpr [src_value]}
	 {*ast.RangeStmt [src_i src_value]}
	 {*ast.SelectorExpr [src Int8]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Int8 src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Int8 src_i]}
	 {*ast.CallExpr [new int8]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr -> *ast.SelectorExpr [dst Int8 src_i]}
	 {*ast.StarExpr [src_value]}
	 {*ast.RangeStmt [src_i src_value]}
	 {*ast.SelectorExpr [src Rune]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Rune src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Rune src_i]}
	 {*ast.CallExpr [new rune]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr -> *ast.SelectorExpr [dst Rune src_i]}
	 {*ast.StarExpr [src_value]}
	 {*ast.RangeStmt [src_i src_value]}
	 {*ast.SelectorExpr [src String]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst String src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst String src_i]}
	 {*ast.CallExpr [new string]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr -> *ast.SelectorExpr [dst String src_i]}
	 {*ast.StarExpr [src_value]}
	 {*ast.RangeStmt [src_i src_value]}
	 {*ast.SelectorExpr [src Uint]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Uint src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Uint src_i]}
	 {*ast.CallExpr [new uint]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr -> *ast.SelectorExpr [dst Uint src_i]}
	 {*ast.StarExpr [src_value]}
	 {*ast.RangeStmt [src_i src_value]}
	 {*ast.SelectorExpr [src Uint16]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Uint16 src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Uint16 src_i]}
	 {*ast.CallExpr [new uint16]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr -> *ast.SelectorExpr [dst Uint16 src_i]}
	 {*ast.StarExpr [src_value]}
	 {*ast.RangeStmt [src_i src_value]}
	 {*ast.SelectorExpr [src Uint32]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Uint32 src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Uint32 src_i]}
	 {*ast.CallExpr [new uint32]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr -> *ast.SelectorExpr [dst Uint32 src_i]}
	 {*ast.StarExpr [src_value]}
	 {*ast.RangeStmt [src_i src_value]}
	 {*ast.SelectorExpr [src Uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Uint64 src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Uint64 src_i]}
	 {*ast.CallExpr [new uint64]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr -> *ast.SelectorExpr [dst Uint64 src_i]}
	 {*ast.StarExpr [src_value]}
	 {*ast.RangeStmt [src_i src_value]}
	 {*ast.SelectorExpr [src Uint8]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Uint8 src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst Uint8 src_i]}
	 {*ast.CallExpr [new uint8]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr -> *ast.SelectorExpr [dst Uint8 src_i]}
	 {*ast.StarExpr [src_value]}
	 {*ast.RangeStmt [src_i src_value]}
	 {*ast.SelectorExpr [src UintPtr]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst UintPtr src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst UintPtr src_i]}
	 {*ast.CallExpr [new uintptr]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr -> *ast.SelectorExpr [dst UintPtr src_i]}
	 {*ast.StarExpr [src_value]}
	 {*ast.RangeStmt [src_i src_value]}
	 {*ast.SelectorExpr [src AnotherBoolOfDifferentSize]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst AnotherBoolOfDifferentSize src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr -> *ast.SelectorExpr [dst AnotherBoolOfDifferentSize src_i]}
	 {*ast.CallExpr [new bool]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr -> *ast.SelectorExpr [dst AnotherBoolOfDifferentSize src_i]}
	 {*ast.StarExpr [src_value]}


function name is deriveDeepCopyPtrToMapsOfSimplerBuiltInTypes 
	 { [deriveDeepCopyPtrToMapsOfSimplerBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [MapsOfSimplerBuiltInTypes]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [src StringToUint32 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst StringToUint32]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [string uint32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src StringToUint32]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_16]}
	 {*ast.SelectorExpr [dst StringToUint32]}
	 {*ast.SelectorExpr [src StringToUint32]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst StringToUint32 nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [src Uint64ToInt64 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint64ToInt64]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [uint8 int64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint64ToInt64]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_17]}
	 {*ast.SelectorExpr [dst Uint64ToInt64]}
	 {*ast.SelectorExpr [src Uint64ToInt64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint64ToInt64 nil]}


function name is deriveDeepCopyPtrToMapsOfBuiltInTypes 
	 { [deriveDeepCopyPtrToMapsOfBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [MapsOfBuiltInTypes]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [src BoolToString nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst BoolToString]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [bool string]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src BoolToString]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_18]}
	 {*ast.SelectorExpr [dst BoolToString]}
	 {*ast.SelectorExpr [src BoolToString]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst BoolToString nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [src StringToBool nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst StringToBool]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [string bool]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src StringToBool]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_19]}
	 {*ast.SelectorExpr [dst StringToBool]}
	 {*ast.SelectorExpr [src StringToBool]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst StringToBool nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [src Complex128ToComplex64 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex128ToComplex64]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [complex128 complex64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Complex128ToComplex64]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_20]}
	 {*ast.SelectorExpr [dst Complex128ToComplex64]}
	 {*ast.SelectorExpr [src Complex128ToComplex64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Complex128ToComplex64 nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [src Float64ToUint32 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float64ToUint32]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [float64 uint32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Float64ToUint32]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_21]}
	 {*ast.SelectorExpr [dst Float64ToUint32]}
	 {*ast.SelectorExpr [src Float64ToUint32]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Float64ToUint32 nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [src Uint16ToUint8 nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint16ToUint8]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [uint16 uint8]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Uint16ToUint8]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_22]}
	 {*ast.SelectorExpr [dst Uint16ToUint8]}
	 {*ast.SelectorExpr [src Uint16ToUint8]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Uint16ToUint8 nil]}


function name is deriveDeepCopyPtrToSliceToSlice 
	 { [deriveDeepCopyPtrToSliceToSlice]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [SliceToSlice]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Ints nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Ints nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Ints nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Ints]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Ints]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Ints]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Ints]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Ints]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Ints]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Ints]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Ints]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.ArrayType [int]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Ints]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Ints]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Ints]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Ints]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Ints]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Ints]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Ints]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.ArrayType [int]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Ints]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_23]}
	 {*ast.SelectorExpr [dst Ints]}
	 {*ast.SelectorExpr [src Ints]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Strings nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Strings nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Strings nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Strings]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Strings]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Strings]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Strings]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Strings]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Strings]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Strings]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Strings]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.ArrayType [string]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Strings]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Strings]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Strings]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Strings]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Strings]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Strings]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Strings]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.ArrayType [string]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Strings]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_24]}
	 {*ast.SelectorExpr [dst Strings]}
	 {*ast.SelectorExpr [src Strings]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src IntPtrs nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst IntPtrs nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst IntPtrs nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src IntPtrs]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst IntPtrs]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst IntPtrs]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src IntPtrs]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst IntPtrs]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst IntPtrs]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src IntPtrs]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst IntPtrs]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.ArrayType -> *ast.StarExpr [int]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src IntPtrs]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src IntPtrs]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst IntPtrs]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst IntPtrs]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst IntPtrs]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src IntPtrs]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst IntPtrs]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.ArrayType -> *ast.StarExpr [int]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src IntPtrs]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_25]}
	 {*ast.SelectorExpr [dst IntPtrs]}
	 {*ast.SelectorExpr [src IntPtrs]}


function name is deriveDeepCopyPtrToPtrTo 
	 { [deriveDeepCopyPtrToPtrTo]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [PtrTo]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Basic nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Basic nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Basic]}
	 {*ast.CallExpr [new int]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.SelectorExpr [dst Basic]}
	 {*ast.StarExpr -> *ast.SelectorExpr [src Basic]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Slice nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Slice nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Slice]}
	 {*ast.CallExpr [new]}
	 {*ast.ArrayType [int]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_26]}
	 {*ast.SelectorExpr [dst Slice]}
	 {*ast.SelectorExpr [src Slice]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Array nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Array nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Array]}
	 {*ast.CallExpr [new]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 4]}
	 { [int]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.SelectorExpr [dst Array]}
	 {*ast.StarExpr -> *ast.SelectorExpr [src Array]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Map nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Map nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Map]}
	 {*ast.CallExpr [new]}
	 {*ast.MapType [int int]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_27]}
	 {*ast.SelectorExpr [dst Map]}
	 {*ast.SelectorExpr [src Map]}


function name is deriveDeepCopyPtrToName 
	 { [deriveDeepCopyPtrToName]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [Name]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Name]}
	 {*ast.SelectorExpr [src Name]}


function name is deriveDeepCopyPtrToStructs 
	 { [deriveDeepCopyPtrToStructs]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [Structs]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Struct]}
	 {*ast.SelectorExpr [src Struct]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src PtrToStruct nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst PtrToStruct nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst PtrToStruct]}
	 {*ast.CallExpr [new Name]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr -> *ast.SelectorExpr [src PtrToStruct DeepCopy]}
	 {*ast.SelectorExpr [dst PtrToStruct]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src SliceOfStructs nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceOfStructs nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst SliceOfStructs nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceOfStructs]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst SliceOfStructs]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst SliceOfStructs]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceOfStructs]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceOfStructs]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst SliceOfStructs]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceOfStructs]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceOfStructs]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [Name]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceOfStructs]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceOfStructs]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst SliceOfStructs]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceOfStructs]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst SliceOfStructs]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceOfStructs]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceOfStructs]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [Name]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceOfStructs]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.SelectorExpr [dst SliceOfStructs]}
	 {*ast.SelectorExpr [src SliceOfStructs]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src SliceToPtrOfStruct nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceToPtrOfStruct nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst SliceToPtrOfStruct nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToPtrOfStruct]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst SliceToPtrOfStruct]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst SliceToPtrOfStruct]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToPtrOfStruct]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceToPtrOfStruct]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst SliceToPtrOfStruct]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToPtrOfStruct]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceToPtrOfStruct]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [Name]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToPtrOfStruct]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToPtrOfStruct]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst SliceToPtrOfStruct]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceToPtrOfStruct]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst SliceToPtrOfStruct]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToPtrOfStruct]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceToPtrOfStruct]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [Name]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToPtrOfStruct]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_28]}
	 {*ast.SelectorExpr [dst SliceToPtrOfStruct]}
	 {*ast.SelectorExpr [src SliceToPtrOfStruct]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst StructWithoutMethod]}
	 {*ast.SelectorExpr [src StructWithoutMethod]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src PtrToStructWithoutMethod nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst PtrToStructWithoutMethod nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst PtrToStructWithoutMethod]}
	 {*ast.CallExpr [new StructWithoutMethod]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.SelectorExpr [dst PtrToStructWithoutMethod]}
	 {*ast.StarExpr -> *ast.SelectorExpr [src PtrToStructWithoutMethod]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src SliceOfStructWithoutMethod nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceOfStructWithoutMethod nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst SliceOfStructWithoutMethod nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceOfStructWithoutMethod]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst SliceOfStructWithoutMethod]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst SliceOfStructWithoutMethod]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceOfStructWithoutMethod]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceOfStructWithoutMethod]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst SliceOfStructWithoutMethod]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceOfStructWithoutMethod]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceOfStructWithoutMethod]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [StructWithoutMethod]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceOfStructWithoutMethod]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceOfStructWithoutMethod]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst SliceOfStructWithoutMethod]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceOfStructWithoutMethod]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst SliceOfStructWithoutMethod]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceOfStructWithoutMethod]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceOfStructWithoutMethod]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [StructWithoutMethod]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceOfStructWithoutMethod]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.SelectorExpr [dst SliceOfStructWithoutMethod]}
	 {*ast.SelectorExpr [src SliceOfStructWithoutMethod]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src SliceToPtrOfStructWithoutMethod nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceToPtrOfStructWithoutMethod nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst SliceToPtrOfStructWithoutMethod nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToPtrOfStructWithoutMethod]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst SliceToPtrOfStructWithoutMethod]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst SliceToPtrOfStructWithoutMethod]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToPtrOfStructWithoutMethod]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceToPtrOfStructWithoutMethod]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst SliceToPtrOfStructWithoutMethod]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToPtrOfStructWithoutMethod]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceToPtrOfStructWithoutMethod]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [StructWithoutMethod]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToPtrOfStructWithoutMethod]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToPtrOfStructWithoutMethod]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst SliceToPtrOfStructWithoutMethod]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceToPtrOfStructWithoutMethod]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst SliceToPtrOfStructWithoutMethod]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToPtrOfStructWithoutMethod]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceToPtrOfStructWithoutMethod]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [StructWithoutMethod]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToPtrOfStructWithoutMethod]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_29]}
	 {*ast.SelectorExpr [dst SliceToPtrOfStructWithoutMethod]}
	 {*ast.SelectorExpr [src SliceToPtrOfStructWithoutMethod]}


function name is deriveDeepCopyPtrToMapWithStructs 
	 { [deriveDeepCopyPtrToMapWithStructs]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [MapWithStructs]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [src NameToString nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst NameToString]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [Name string]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src NameToString]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_30]}
	 {*ast.SelectorExpr [dst NameToString]}
	 {*ast.SelectorExpr [src NameToString]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst NameToString nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [src StringToName nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst StringToName]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [string Name]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src StringToName]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_31]}
	 {*ast.SelectorExpr [dst StringToName]}
	 {*ast.SelectorExpr [src StringToName]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst StringToName nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [src StringToPtrToName nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst StringToPtrToName]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [string]}
	 {*ast.StarExpr [Name]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src StringToPtrToName]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_32]}
	 {*ast.SelectorExpr [dst StringToPtrToName]}
	 {*ast.SelectorExpr [src StringToPtrToName]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst StringToPtrToName nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [src StringToSliceOfName nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst StringToSliceOfName]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType [Name]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src StringToSliceOfName]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_33]}
	 {*ast.SelectorExpr [dst StringToSliceOfName]}
	 {*ast.SelectorExpr [src StringToSliceOfName]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst StringToSliceOfName nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [src StringToSliceOfPtrToName nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst StringToSliceOfPtrToName]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType -> *ast.StarExpr [Name]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src StringToSliceOfPtrToName]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_34]}
	 {*ast.SelectorExpr [dst StringToSliceOfPtrToName]}
	 {*ast.SelectorExpr [src StringToSliceOfPtrToName]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst StringToSliceOfPtrToName nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [src StringToStructWithoutMethod nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst StringToStructWithoutMethod]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [string StructWithoutMethod]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src StringToStructWithoutMethod]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_35]}
	 {*ast.SelectorExpr [dst StringToStructWithoutMethod]}
	 {*ast.SelectorExpr [src StringToStructWithoutMethod]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst StringToStructWithoutMethod nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [src StructWithoutMethodToString nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst StructWithoutMethodToString]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [StructWithoutMethod string]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src StructWithoutMethodToString]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_36]}
	 {*ast.SelectorExpr [dst StructWithoutMethodToString]}
	 {*ast.SelectorExpr [src StructWithoutMethodToString]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst StructWithoutMethodToString nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [src StringToPtrToStructWithoutMethod nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst StringToPtrToStructWithoutMethod]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [string]}
	 {*ast.StarExpr [StructWithoutMethod]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src StringToPtrToStructWithoutMethod]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_37]}
	 {*ast.SelectorExpr [dst StringToPtrToStructWithoutMethod]}
	 {*ast.SelectorExpr [src StringToPtrToStructWithoutMethod]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst StringToPtrToStructWithoutMethod nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [src StringToSliceOfStructWithoutMethod nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst StringToSliceOfStructWithoutMethod]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType [StructWithoutMethod]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src StringToSliceOfStructWithoutMethod]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_38]}
	 {*ast.SelectorExpr [dst StringToSliceOfStructWithoutMethod]}
	 {*ast.SelectorExpr [src StringToSliceOfStructWithoutMethod]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst StringToSliceOfStructWithoutMethod nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [src StringToSliceOfPtrToStructWithoutMethod nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst StringToSliceOfPtrToStructWithoutMethod]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType -> *ast.StarExpr [StructWithoutMethod]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src StringToSliceOfPtrToStructWithoutMethod]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_39]}
	 {*ast.SelectorExpr [dst StringToSliceOfPtrToStructWithoutMethod]}
	 {*ast.SelectorExpr [src StringToSliceOfPtrToStructWithoutMethod]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst StringToSliceOfPtrToStructWithoutMethod nil]}


function name is deriveDeepCopyPtrToRecursiveType 
	 { [deriveDeepCopyPtrToRecursiveType]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [RecursiveType]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Bytes nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Bytes nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Bytes nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Bytes]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Bytes]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Bytes]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Bytes]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Bytes]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Bytes]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Bytes]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Bytes]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [byte]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Bytes]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Bytes]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Bytes]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Bytes]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Bytes]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Bytes]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Bytes]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [byte]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Bytes]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.SelectorExpr [dst Bytes]}
	 {*ast.SelectorExpr [src Bytes]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [src N nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst N]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [int RecursiveType]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src N]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_40]}
	 {*ast.SelectorExpr [dst N]}
	 {*ast.SelectorExpr [src N]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst N nil]}


function name is deriveDeepCopyPtrToEmbeddedStruct1 
	 { [deriveDeepCopyPtrToEmbeddedStruct1]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [EmbeddedStruct1]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Name]}
	 {*ast.SelectorExpr [src Name]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst StructWithoutMethod]}
	 {*ast.SelectorExpr [src StructWithoutMethod]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Structs nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Structs nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Structs]}
	 {*ast.CallExpr [new Structs]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr -> *ast.SelectorExpr [src Structs DeepCopy]}
	 {*ast.SelectorExpr [dst Structs]}


function name is deriveDeepCopyPtrToEmbeddedStruct2 
	 { [deriveDeepCopyPtrToEmbeddedStruct2]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [EmbeddedStruct2]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.BlockStmt -> *ast.AssignStmt [:= field]}
	 {*ast.CallExpr [new Structs]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr -> *ast.SelectorExpr [src Structs DeepCopy field]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Structs]}
	 {*ast.StarExpr [field]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Name nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Name nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Name]}
	 {*ast.CallExpr [new Name]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr -> *ast.SelectorExpr [src Name DeepCopy]}
	 {*ast.SelectorExpr [dst Name]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src StructWithoutMethod nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst StructWithoutMethod nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst StructWithoutMethod]}
	 {*ast.CallExpr [new StructWithoutMethod]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.SelectorExpr [dst StructWithoutMethod]}
	 {*ast.StarExpr -> *ast.SelectorExpr [src StructWithoutMethod]}


function name is deriveDeepCopyPtrToUnnamedStruct 
	 { [deriveDeepCopyPtrToUnnamedStruct]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [UnnamedStruct]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Unnamed]}
	 {*ast.SelectorExpr [src Unnamed]}


function name is deriveDeepCopyPtrToStructWithStructFieldWithoutEqualMethod 
	 { [deriveDeepCopyPtrToStructWithStructFieldWithoutEqualMethod]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [StructWithStructFieldWithoutEqualMethod]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src A nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst A nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst A]}
	 {*ast.CallExpr [new StructWithoutEqualMethod]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.SelectorExpr [dst A]}
	 {*ast.StarExpr -> *ast.SelectorExpr [src A]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst B]}
	 {*ast.SelectorExpr [src B]}


function name is deriveDeepCopyPtrToStructWithStructWithFromAnotherPackage 
	 { [deriveDeepCopyPtrToStructWithStructWithFromAnotherPackage]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [StructWithStructWithFromAnotherPackage]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src A nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst A nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst A]}
	 {*ast.CallExpr [new]}
	 {*ast.SelectorExpr [extra StructWithoutEqualMethod]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.SelectorExpr [dst A]}
	 {*ast.StarExpr -> *ast.SelectorExpr [src A]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst B]}
	 {*ast.SelectorExpr [src B]}


function name is deriveDeepCopyPtrToFieldWithStructWithPrivateFields 
	 { [deriveDeepCopyPtrToFieldWithStructWithPrivateFields]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [FieldWithStructWithPrivateFields]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src A nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst A nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst A]}
	 {*ast.CallExpr [new]}
	 {*ast.SelectorExpr [extra PrivateFieldAndNoEqualMethod]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_41]}
	 {*ast.SelectorExpr [dst A]}
	 {*ast.SelectorExpr [src A]}


function name is deriveDeepCopyPtrToEnums 
	 { [deriveDeepCopyPtrToEnums]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [Enums]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Enum]}
	 {*ast.SelectorExpr [src Enum]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src PtrToEnum nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst PtrToEnum nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst PtrToEnum]}
	 {*ast.CallExpr [new MyEnum]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.SelectorExpr [dst PtrToEnum]}
	 {*ast.StarExpr -> *ast.SelectorExpr [src PtrToEnum]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src SliceToEnum nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceToEnum nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst SliceToEnum nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToEnum]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst SliceToEnum]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst SliceToEnum]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToEnum]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceToEnum]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst SliceToEnum]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToEnum]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceToEnum]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [MyEnum]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToEnum]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToEnum]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst SliceToEnum]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceToEnum]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst SliceToEnum]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToEnum]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceToEnum]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [MyEnum]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToEnum]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.SelectorExpr [dst SliceToEnum]}
	 {*ast.SelectorExpr [src SliceToEnum]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src SliceToPtrToEnum nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceToPtrToEnum nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst SliceToPtrToEnum nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToPtrToEnum]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst SliceToPtrToEnum]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst SliceToPtrToEnum]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToPtrToEnum]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceToPtrToEnum]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst SliceToPtrToEnum]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToPtrToEnum]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceToPtrToEnum]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [MyEnum]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToPtrToEnum]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToPtrToEnum]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst SliceToPtrToEnum]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceToPtrToEnum]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst SliceToPtrToEnum]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToPtrToEnum]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceToPtrToEnum]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [MyEnum]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToPtrToEnum]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_42]}
	 {*ast.SelectorExpr [dst SliceToPtrToEnum]}
	 {*ast.SelectorExpr [src SliceToPtrToEnum]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [src MapToEnum nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst MapToEnum]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [int32 MyEnum]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src MapToEnum]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_43]}
	 {*ast.SelectorExpr [dst MapToEnum]}
	 {*ast.SelectorExpr [src MapToEnum]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst MapToEnum nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [src EnumToMap nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst EnumToMap]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [MyEnum int32]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src EnumToMap]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_44]}
	 {*ast.SelectorExpr [dst EnumToMap]}
	 {*ast.SelectorExpr [src EnumToMap]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst EnumToMap nil]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst ArrayEnum]}
	 {*ast.SelectorExpr [src ArrayEnum]}


function name is deriveDeepCopyPtrToNamedTypes 
	 { [deriveDeepCopyPtrToNamedTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [NamedTypes]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Slice nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Slice nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Slice nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Slice]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Slice]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Slice]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Slice]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Slice]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Slice]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Slice]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Slice]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Slice]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Slice]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Slice]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Slice]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Slice]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Slice]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Slice]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int64]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Slice]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.SelectorExpr [dst Slice]}
	 {*ast.SelectorExpr [src Slice]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src PtrToSlice nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst PtrToSlice nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst PtrToSlice]}
	 {*ast.CallExpr [new MySlice]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_45]}
	 {*ast.SelectorExpr [dst PtrToSlice]}
	 {*ast.SelectorExpr [src PtrToSlice]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src SliceToSlice nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceToSlice nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst SliceToSlice nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToSlice]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst SliceToSlice]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst SliceToSlice]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToSlice]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceToSlice]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst SliceToSlice]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToSlice]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceToSlice]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [MySlice]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToSlice]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToSlice]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst SliceToSlice]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceToSlice]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst SliceToSlice]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToSlice]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst SliceToSlice]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [MySlice]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src SliceToSlice]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_46]}
	 {*ast.SelectorExpr [dst SliceToSlice]}
	 {*ast.SelectorExpr [src SliceToSlice]}


function name is deriveDeepCopyPtrToDuration 
	 { [deriveDeepCopyPtrToDuration]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [Duration]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst D]}
	 {*ast.SelectorExpr [src D]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src P nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst P nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst P]}
	 {*ast.CallExpr [new]}
	 {*ast.SelectorExpr [time Duration]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.SelectorExpr [dst P]}
	 {*ast.StarExpr -> *ast.SelectorExpr [src P]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src Ds nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Ds nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst Ds nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Ds]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Ds]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst Ds]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Ds]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Ds]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Ds]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Ds]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Ds]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.SelectorExpr [time Duration]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Ds]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Ds]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst Ds]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Ds]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst Ds]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Ds]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Ds]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.SelectorExpr [time Duration]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Ds]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.SelectorExpr [dst Ds]}
	 {*ast.SelectorExpr [src Ds]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src DPs nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst DPs nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [dst DPs nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src DPs]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst DPs]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.SelectorExpr [dst DPs]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src DPs]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst DPs]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst DPs]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src DPs]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst DPs]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr -> *ast.SelectorExpr [time Duration]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src DPs]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src DPs]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [dst DPs]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst DPs]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.SelectorExpr [dst DPs]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src DPs]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst DPs]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr -> *ast.SelectorExpr [time Duration]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src DPs]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_47]}
	 {*ast.SelectorExpr [dst DPs]}
	 {*ast.SelectorExpr [src DPs]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [src MD nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst MD]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [int]}
	 {*ast.SelectorExpr [time Duration]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src MD]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_48]}
	 {*ast.SelectorExpr [dst MD]}
	 {*ast.SelectorExpr [src MD]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst MD nil]}


function name is deriveDeepCopyPtrToNickname 
	 { [deriveDeepCopyPtrToNickname]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [Nickname]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [src Alias nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Alias]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType -> *ast.StarExpr -> *ast.SelectorExpr [pickle Rick]}
	 {*ast.CallExpr [len]}
	 {*ast.SelectorExpr [src Alias]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_49]}
	 {*ast.SelectorExpr [dst Alias]}
	 {*ast.SelectorExpr [src Alias]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst Alias nil]}


function name is deriveDeepCopyPtrToPrivateEmbedded 
	 { [deriveDeepCopyPtrToPrivateEmbedded]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [PrivateEmbedded]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.BlockStmt -> *ast.AssignStmt [:= field]}
	 {*ast.CallExpr [new privateStruct]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_50 field]}
	 {*ast.UnaryExpr [&]}
	 {*ast.SelectorExpr [src privateStruct]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst privateStruct]}
	 {*ast.StarExpr [field]}


function name is deriveDeepCopyPtrToStructOfStructs 
	 { [deriveDeepCopyPtrToStructOfStructs]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [StructOfStructs]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.BlockStmt -> *ast.AssignStmt [:= field]}
	 {*ast.CallExpr [new Structs]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr -> *ast.SelectorExpr [src S1 DeepCopy field]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst S1]}
	 {*ast.StarExpr [field]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.BlockStmt -> *ast.AssignStmt [:= field]}
	 {*ast.CallExpr [new Structs]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr -> *ast.SelectorExpr [src S2 DeepCopy field]}
	 {*ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst S2]}
	 {*ast.StarExpr [field]}


function name is deriveContainsInt64s 
	 { [deriveContainsInt64s]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType [int64]}
	 {*ast.Field [item int64]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.RangeStmt [_ v list]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== v item]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [true]}
	 {*ast.ReturnStmt [false]}


function name is deriveContainsStruct 
	 { [deriveContainsStruct]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType -> *ast.StarExpr [BuiltInTypes]}
	 {*ast.Field [item]}
	 {*ast.StarExpr [BuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.RangeStmt [_ v list]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.CallExpr [deriveEqualPtrToBuiltInTypes v item]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [true]}
	 {*ast.ReturnStmt [false]}


function name is deriveContainsStructPtr 
	 { [deriveContainsStructPtr]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType [PtrToBuiltInTypes]}
	 {*ast.Field [item PtrToBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.RangeStmt [_ v list]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.CallExpr [deriveEqual_ v item]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [true]}
	 {*ast.ReturnStmt [false]}


function name is deriveUncurryMarshal 
	 { [deriveUncurryMarshal]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [data]}
	 {*ast.ArrayType [byte]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [v]}
	 {*ast.InterfaceType []}
	 {*ast.FieldList -> *ast.FieldList -> *ast.Field [error]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [data]}
	 {*ast.ArrayType [byte]}
	 {*ast.Field [v]}
	 {*ast.InterfaceType []}
	 {*ast.FieldList -> *ast.FieldList -> *ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [data]}
	 {*ast.ArrayType [byte]}
	 {*ast.Field [v]}
	 {*ast.InterfaceType []}
	 {*ast.FieldList -> *ast.FieldList -> *ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr -> *ast.CallExpr [f data v]}


function name is deriveUncurry3 
	 { [deriveUncurry3]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [a int]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [b string]}
	 {*ast.Field [c bool]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [a int]}
	 {*ast.Field [b string]}
	 {*ast.Field [c bool]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [a int]}
	 {*ast.Field [b string]}
	 {*ast.Field [c bool]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr -> *ast.CallExpr [f a b c]}


function name is deriveUncurryCurried 
	 { [deriveUncurryCurried]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [b string]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [c bool]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [b string]}
	 {*ast.Field [c bool]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [b string]}
	 {*ast.Field [c bool]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr -> *ast.CallExpr [f b c]}


function name is deriveUncurryBlankIdentifier 
	 { [deriveUncurryBlankIdentifier]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [param_0 string]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [innerParam_0 bool]}
	 {*ast.Field [c int]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [param_0 string]}
	 {*ast.Field [innerParam_0 bool]}
	 {*ast.Field [c int]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [param_0 string]}
	 {*ast.Field [innerParam_0 bool]}
	 {*ast.Field [c int]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr -> *ast.CallExpr [f param_0 innerParam_0 c]}


function name is deriveToError0 
	 { [deriveToError0]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [err error]}
	 {*ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [bool]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [error]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= success]}
	 {*ast.CallExpr [f]}
	 {*ast.IfStmt [success]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [nil]}
	 {*ast.ReturnStmt [err]}


function name is deriveToError1 
	 { [deriveToError1]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [err error]}
	 {*ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [bool]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= out0 success]}
	 {*ast.CallExpr [f]}
	 {*ast.IfStmt [success]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [out0 nil]}
	 {*ast.ReturnStmt [out0 err]}


function name is deriveToError2 
	 { [deriveToError2]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [err error]}
	 {*ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [a int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [bool]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [a int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [a int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= out0 success]}
	 {*ast.CallExpr [f a]}
	 {*ast.IfStmt [success]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [out0 nil]}
	 {*ast.ReturnStmt [out0 err]}


function name is deriveToError3 
	 { [deriveToError3]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [err error]}
	 {*ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [a int]}
	 {*ast.Field [b int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [bool]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [a int]}
	 {*ast.Field [b int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [a int]}
	 {*ast.Field [b int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= out0 success]}
	 {*ast.CallExpr [f a b]}
	 {*ast.IfStmt [success]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [out0 nil]}
	 {*ast.ReturnStmt [out0 err]}


function name is deriveToError4 
	 { [deriveToError4]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [err error]}
	 {*ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [a int]}
	 {*ast.Field [b int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [int]}
	 {*ast.Field [bool]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [a int]}
	 {*ast.Field [b int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [int]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [a int]}
	 {*ast.Field [b int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [int]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= out0 out1 success]}
	 {*ast.CallExpr [f a b]}
	 {*ast.IfStmt [success]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [out0 out1 nil]}
	 {*ast.ReturnStmt [out0 out1 err]}


function name is deriveToError5 
	 { [deriveToError5]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [err error]}
	 {*ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [lt]}
	 {*ast.StarExpr [LocalType]}
	 {*ast.FieldList -> *ast.Field -> *ast.StarExpr [LocalType]}
	 {*ast.Field [bool]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [lt]}
	 {*ast.StarExpr [LocalType]}
	 {*ast.FieldList -> *ast.Field -> *ast.StarExpr [LocalType]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [lt]}
	 {*ast.StarExpr [LocalType]}
	 {*ast.FieldList -> *ast.Field -> *ast.StarExpr [LocalType]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= out0 success]}
	 {*ast.CallExpr [f lt]}
	 {*ast.IfStmt [success]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [out0 nil]}
	 {*ast.ReturnStmt [out0 err]}


function name is deriveToError6 
	 { [deriveToError6]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [err error]}
	 {*ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [t]}
	 {*ast.StarExpr -> *ast.SelectorExpr [time Time]}
	 {*ast.FieldList -> *ast.Field -> *ast.StarExpr -> *ast.SelectorExpr [time Time]}
	 {*ast.Field [bool]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [t]}
	 {*ast.StarExpr -> *ast.SelectorExpr [time Time]}
	 {*ast.FieldList -> *ast.Field -> *ast.StarExpr -> *ast.SelectorExpr [time Time]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [t]}
	 {*ast.StarExpr -> *ast.SelectorExpr [time Time]}
	 {*ast.FieldList -> *ast.Field -> *ast.StarExpr -> *ast.SelectorExpr [time Time]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= out0 success]}
	 {*ast.CallExpr [f t]}
	 {*ast.IfStmt [success]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [out0 nil]}
	 {*ast.ReturnStmt [out0 err]}


function name is deriveToError7 
	 { [deriveToError7]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [err error]}
	 {*ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [param_0 string]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.Field [bool]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [param_0 string]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [param_0 string]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= out0 success]}
	 {*ast.CallExpr [f param_0]}
	 {*ast.IfStmt [success]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [out0 nil]}
	 {*ast.ReturnStmt [out0 err]}


function name is deriveCompose 
	 { [deriveCompose]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f0]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.Field [error]}
	 {*ast.Field [f1]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.FieldList -> *ast.Field [float64]}
	 {*ast.Field [error]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [float64]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [float64]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= v_1_0 err0]}
	 {*ast.CallExpr [f0]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!= err0 nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 { [err0]}
	 {*ast.AssignStmt [:= v_2_0 err1]}
	 {*ast.CallExpr [f1 v_1_0]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!= err1 nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 { [err1]}
	 {*ast.ReturnStmt [v_2_0 nil]}


function name is deriveComposeA 
	 { [deriveComposeA]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f0]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.Field [error]}
	 {*ast.Field [f1]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.FieldList -> *ast.Field [float64]}
	 {*ast.Field [error]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.FieldList -> *ast.Field [float64]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [v_0_0 string]}
	 {*ast.FieldList -> *ast.Field [float64]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= v_1_0 err0]}
	 {*ast.CallExpr [f0 v_0_0]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!= err0 nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 { [err0]}
	 {*ast.AssignStmt [:= v_2_0 err1]}
	 {*ast.CallExpr [f1 v_1_0]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!= err1 nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 { [err1]}
	 {*ast.ReturnStmt [v_2_0 nil]}


function name is deriveCompose2 
	 { [deriveCompose2]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f0]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.Field [string]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [string]}
	 {*ast.Field [string]}
	 {*ast.Field [error]}
	 {*ast.Field [f1]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field -> *ast.ArrayType [string]}
	 {*ast.Field [string]}
	 {*ast.FieldList -> *ast.Field [float64]}
	 {*ast.Field [error]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.Field [string]}
	 {*ast.FieldList -> *ast.Field [float64]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [v_0_0 string]}
	 {*ast.Field [v_0_1 string]}
	 {*ast.FieldList -> *ast.Field [float64]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= v_1_0 v_1_1 err0]}
	 {*ast.CallExpr [f0 v_0_0 v_0_1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!= err0 nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 { [err0]}
	 {*ast.AssignStmt [:= v_2_0 err1]}
	 {*ast.CallExpr [f1 v_1_0 v_1_1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!= err1 nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 { [err1]}
	 {*ast.ReturnStmt [v_2_0 nil]}


function name is deriveComposeRetBool 
	 { [deriveComposeRetBool]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f0]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.Field [error]}
	 {*ast.Field [f1]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.Field [error]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [v_0_0 string]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= v_1_0 err0]}
	 {*ast.CallExpr [f0 v_0_0]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!= err0 nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false err0]}
	 {*ast.AssignStmt [:= v_2_0 err1]}
	 {*ast.CallExpr [f1 v_1_0]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!= err1 nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false err1]}
	 {*ast.ReturnStmt [v_2_0 nil]}


function name is deriveComposeVariadic 
	 { [deriveComposeVariadic]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f0]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.Field [error]}
	 {*ast.Field [f1]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.FieldList -> *ast.Field [float64]}
	 {*ast.Field [error]}
	 {*ast.Field [f2]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [float64]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [error]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [v_0_0 string]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= v_1_0 err0]}
	 {*ast.CallExpr [f0 v_0_0]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!= err0 nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 { [err0]}
	 {*ast.AssignStmt [:= v_2_0 err1]}
	 {*ast.CallExpr [f1 v_1_0]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!= err1 nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 { [err1]}
	 {*ast.AssignStmt [:= v_3_0 err2]}
	 {*ast.CallExpr [f2 v_2_0]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!= err2 nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 { [err2]}
	 {*ast.ReturnStmt [v_3_0 nil]}


function name is deriveComparePtrToEmpty 
	 { [deriveComparePtrToEmpty]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [Empty]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveComparePtrToBuiltInTypes 
	 { [deriveComparePtrToBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [BuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare]}
	 {*ast.SelectorExpr [this Bool]}
	 {*ast.SelectorExpr [that Bool]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_]}
	 {*ast.SelectorExpr [this Byte]}
	 {*ast.SelectorExpr [that Byte]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompareComplex64]}
	 {*ast.SelectorExpr [this Complex128]}
	 {*ast.SelectorExpr [that Complex128]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompareComplex32]}
	 {*ast.SelectorExpr [this Complex64]}
	 {*ast.SelectorExpr [that Complex64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_f]}
	 {*ast.SelectorExpr [this Float64]}
	 {*ast.SelectorExpr [that Float64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_fl]}
	 {*ast.SelectorExpr [this Float32]}
	 {*ast.SelectorExpr [that Float32]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_i]}
	 {*ast.SelectorExpr [this Int]}
	 {*ast.SelectorExpr [that Int]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_in]}
	 {*ast.SelectorExpr [this Int16]}
	 {*ast.SelectorExpr [that Int16]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_int]}
	 {*ast.SelectorExpr [this Int32]}
	 {*ast.SelectorExpr [that Int32]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_int6]}
	 {*ast.SelectorExpr [this Int64]}
	 {*ast.SelectorExpr [that Int64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_int8]}
	 {*ast.SelectorExpr [this Int8]}
	 {*ast.SelectorExpr [that Int8]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_int]}
	 {*ast.SelectorExpr [this Rune]}
	 {*ast.SelectorExpr [that Rune]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr [strings Compare]}
	 {*ast.SelectorExpr [this String]}
	 {*ast.SelectorExpr [that String]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_u]}
	 {*ast.SelectorExpr [this Uint]}
	 {*ast.SelectorExpr [that Uint]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_ui]}
	 {*ast.SelectorExpr [this Uint16]}
	 {*ast.SelectorExpr [that Uint16]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_uin]}
	 {*ast.SelectorExpr [this Uint32]}
	 {*ast.SelectorExpr [that Uint32]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_uint]}
	 {*ast.SelectorExpr [this Uint64]}
	 {*ast.SelectorExpr [that Uint64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_]}
	 {*ast.SelectorExpr [this Uint8]}
	 {*ast.SelectorExpr [that Uint8]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_1]}
	 {*ast.SelectorExpr [this UintPtr]}
	 {*ast.SelectorExpr [that UintPtr]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveComparePtrToPrivateBuiltInTypes 
	 { [deriveComparePtrToPrivateBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [PrivateBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare]}
	 {*ast.SelectorExpr [this privateBool]}
	 {*ast.SelectorExpr [that privateBool]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_]}
	 {*ast.SelectorExpr [this privateByte]}
	 {*ast.SelectorExpr [that privateByte]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompareComplex64]}
	 {*ast.SelectorExpr [this privateComplex128]}
	 {*ast.SelectorExpr [that privateComplex128]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompareComplex32]}
	 {*ast.SelectorExpr [this privateComplex64]}
	 {*ast.SelectorExpr [that privateComplex64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_f]}
	 {*ast.SelectorExpr [this privateFloat64]}
	 {*ast.SelectorExpr [that privateFloat64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_fl]}
	 {*ast.SelectorExpr [this privateFloat32]}
	 {*ast.SelectorExpr [that privateFloat32]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_i]}
	 {*ast.SelectorExpr [this privateInt]}
	 {*ast.SelectorExpr [that privateInt]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_in]}
	 {*ast.SelectorExpr [this privateInt16]}
	 {*ast.SelectorExpr [that privateInt16]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_int]}
	 {*ast.SelectorExpr [this privateInt32]}
	 {*ast.SelectorExpr [that privateInt32]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_int6]}
	 {*ast.SelectorExpr [this privateInt64]}
	 {*ast.SelectorExpr [that privateInt64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_int8]}
	 {*ast.SelectorExpr [this privateInt8]}
	 {*ast.SelectorExpr [that privateInt8]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_int]}
	 {*ast.SelectorExpr [this privateRune]}
	 {*ast.SelectorExpr [that privateRune]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr [strings Compare]}
	 {*ast.SelectorExpr [this privateString]}
	 {*ast.SelectorExpr [that privateString]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_u]}
	 {*ast.SelectorExpr [this privateUint]}
	 {*ast.SelectorExpr [that privateUint]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_ui]}
	 {*ast.SelectorExpr [this privateUint16]}
	 {*ast.SelectorExpr [that privateUint16]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_uin]}
	 {*ast.SelectorExpr [this privateUint32]}
	 {*ast.SelectorExpr [that privateUint32]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_uint]}
	 {*ast.SelectorExpr [this privateUint64]}
	 {*ast.SelectorExpr [that privateUint64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_]}
	 {*ast.SelectorExpr [this privateUint8]}
	 {*ast.SelectorExpr [that privateUint8]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_1]}
	 {*ast.SelectorExpr [this privateUintPtr]}
	 {*ast.SelectorExpr [that privateUintPtr]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveComparePtrToPtrToBuiltInTypes 
	 { [deriveComparePtrToPtrToBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [PtrToBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_2]}
	 {*ast.SelectorExpr [this Bool]}
	 {*ast.SelectorExpr [that Bool]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_3]}
	 {*ast.SelectorExpr [this Byte]}
	 {*ast.SelectorExpr [that Byte]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_4]}
	 {*ast.SelectorExpr [this Complex128]}
	 {*ast.SelectorExpr [that Complex128]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_5]}
	 {*ast.SelectorExpr [this Complex64]}
	 {*ast.SelectorExpr [that Complex64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_6]}
	 {*ast.SelectorExpr [this Float64]}
	 {*ast.SelectorExpr [that Float64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_7]}
	 {*ast.SelectorExpr [this Float32]}
	 {*ast.SelectorExpr [that Float32]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_8]}
	 {*ast.SelectorExpr [this Int]}
	 {*ast.SelectorExpr [that Int]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_9]}
	 {*ast.SelectorExpr [this Int16]}
	 {*ast.SelectorExpr [that Int16]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_10]}
	 {*ast.SelectorExpr [this Int32]}
	 {*ast.SelectorExpr [that Int32]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_11]}
	 {*ast.SelectorExpr [this Int64]}
	 {*ast.SelectorExpr [that Int64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_12]}
	 {*ast.SelectorExpr [this Int8]}
	 {*ast.SelectorExpr [that Int8]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_10]}
	 {*ast.SelectorExpr [this Rune]}
	 {*ast.SelectorExpr [that Rune]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_13]}
	 {*ast.SelectorExpr [this String]}
	 {*ast.SelectorExpr [that String]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_14]}
	 {*ast.SelectorExpr [this Uint]}
	 {*ast.SelectorExpr [that Uint]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_15]}
	 {*ast.SelectorExpr [this Uint16]}
	 {*ast.SelectorExpr [that Uint16]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_16]}
	 {*ast.SelectorExpr [this Uint32]}
	 {*ast.SelectorExpr [that Uint32]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_17]}
	 {*ast.SelectorExpr [this Uint64]}
	 {*ast.SelectorExpr [that Uint64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_3]}
	 {*ast.SelectorExpr [this Uint8]}
	 {*ast.SelectorExpr [that Uint8]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_18]}
	 {*ast.SelectorExpr [this UintPtr]}
	 {*ast.SelectorExpr [that UintPtr]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveComparePtrToSliceOfBuiltInTypes 
	 { [deriveComparePtrToSliceOfBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [SliceOfBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_19]}
	 {*ast.SelectorExpr [this Bool]}
	 {*ast.SelectorExpr [that Bool]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes Compare]}
	 {*ast.SelectorExpr [this Byte]}
	 {*ast.SelectorExpr [that Byte]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_20]}
	 {*ast.SelectorExpr [this Complex128]}
	 {*ast.SelectorExpr [that Complex128]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_21]}
	 {*ast.SelectorExpr [this Complex64]}
	 {*ast.SelectorExpr [that Complex64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_22]}
	 {*ast.SelectorExpr [this Float64]}
	 {*ast.SelectorExpr [that Float64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_23]}
	 {*ast.SelectorExpr [this Float32]}
	 {*ast.SelectorExpr [that Float32]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_24]}
	 {*ast.SelectorExpr [this Int]}
	 {*ast.SelectorExpr [that Int]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_25]}
	 {*ast.SelectorExpr [this Int16]}
	 {*ast.SelectorExpr [that Int16]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_26]}
	 {*ast.SelectorExpr [this Int32]}
	 {*ast.SelectorExpr [that Int32]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_27]}
	 {*ast.SelectorExpr [this Int64]}
	 {*ast.SelectorExpr [that Int64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_28]}
	 {*ast.SelectorExpr [this Int8]}
	 {*ast.SelectorExpr [that Int8]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_26]}
	 {*ast.SelectorExpr [this Rune]}
	 {*ast.SelectorExpr [that Rune]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_29]}
	 {*ast.SelectorExpr [this String]}
	 {*ast.SelectorExpr [that String]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_30]}
	 {*ast.SelectorExpr [this Uint]}
	 {*ast.SelectorExpr [that Uint]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_31]}
	 {*ast.SelectorExpr [this Uint16]}
	 {*ast.SelectorExpr [that Uint16]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_32]}
	 {*ast.SelectorExpr [this Uint32]}
	 {*ast.SelectorExpr [that Uint32]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_33]}
	 {*ast.SelectorExpr [this Uint64]}
	 {*ast.SelectorExpr [that Uint64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes Compare]}
	 {*ast.SelectorExpr [this Uint8]}
	 {*ast.SelectorExpr [that Uint8]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_34]}
	 {*ast.SelectorExpr [this UintPtr]}
	 {*ast.SelectorExpr [that UintPtr]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveComparePtrToSliceOfPtrToBuiltInTypes 
	 { [deriveComparePtrToSliceOfPtrToBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [SliceOfPtrToBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_35]}
	 {*ast.SelectorExpr [this Bool]}
	 {*ast.SelectorExpr [that Bool]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_36]}
	 {*ast.SelectorExpr [this Byte]}
	 {*ast.SelectorExpr [that Byte]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_37]}
	 {*ast.SelectorExpr [this Complex128]}
	 {*ast.SelectorExpr [that Complex128]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_38]}
	 {*ast.SelectorExpr [this Complex64]}
	 {*ast.SelectorExpr [that Complex64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_39]}
	 {*ast.SelectorExpr [this Float64]}
	 {*ast.SelectorExpr [that Float64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_40]}
	 {*ast.SelectorExpr [this Float32]}
	 {*ast.SelectorExpr [that Float32]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_41]}
	 {*ast.SelectorExpr [this Int]}
	 {*ast.SelectorExpr [that Int]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_42]}
	 {*ast.SelectorExpr [this Int16]}
	 {*ast.SelectorExpr [that Int16]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_43]}
	 {*ast.SelectorExpr [this Int32]}
	 {*ast.SelectorExpr [that Int32]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_44]}
	 {*ast.SelectorExpr [this Int64]}
	 {*ast.SelectorExpr [that Int64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_45]}
	 {*ast.SelectorExpr [this Int8]}
	 {*ast.SelectorExpr [that Int8]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_43]}
	 {*ast.SelectorExpr [this Rune]}
	 {*ast.SelectorExpr [that Rune]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_46]}
	 {*ast.SelectorExpr [this String]}
	 {*ast.SelectorExpr [that String]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_47]}
	 {*ast.SelectorExpr [this Uint]}
	 {*ast.SelectorExpr [that Uint]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_48]}
	 {*ast.SelectorExpr [this Uint16]}
	 {*ast.SelectorExpr [that Uint16]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_49]}
	 {*ast.SelectorExpr [this Uint32]}
	 {*ast.SelectorExpr [that Uint32]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_50]}
	 {*ast.SelectorExpr [this Uint64]}
	 {*ast.SelectorExpr [that Uint64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_36]}
	 {*ast.SelectorExpr [this Uint8]}
	 {*ast.SelectorExpr [that Uint8]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_51]}
	 {*ast.SelectorExpr [this UintPtr]}
	 {*ast.SelectorExpr [that UintPtr]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveComparePtrToArrayOfBuiltInTypes 
	 { [deriveComparePtrToArrayOfBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [ArrayOfBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_52]}
	 {*ast.SelectorExpr [this Bool]}
	 {*ast.SelectorExpr [that Bool]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_53]}
	 {*ast.SelectorExpr [this Byte]}
	 {*ast.SelectorExpr [that Byte]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_54]}
	 {*ast.SelectorExpr [this Complex128]}
	 {*ast.SelectorExpr [that Complex128]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_55]}
	 {*ast.SelectorExpr [this Complex64]}
	 {*ast.SelectorExpr [that Complex64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_56]}
	 {*ast.SelectorExpr [this Float64]}
	 {*ast.SelectorExpr [that Float64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_57]}
	 {*ast.SelectorExpr [this Float32]}
	 {*ast.SelectorExpr [that Float32]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_58]}
	 {*ast.SelectorExpr [this Int]}
	 {*ast.SelectorExpr [that Int]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_59]}
	 {*ast.SelectorExpr [this Int16]}
	 {*ast.SelectorExpr [that Int16]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_60]}
	 {*ast.SelectorExpr [this Int32]}
	 {*ast.SelectorExpr [that Int32]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_61]}
	 {*ast.SelectorExpr [this Int64]}
	 {*ast.SelectorExpr [that Int64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_62]}
	 {*ast.SelectorExpr [this Int8]}
	 {*ast.SelectorExpr [that Int8]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_63]}
	 {*ast.SelectorExpr [this Rune]}
	 {*ast.SelectorExpr [that Rune]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_64]}
	 {*ast.SelectorExpr [this String]}
	 {*ast.SelectorExpr [that String]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_65]}
	 {*ast.SelectorExpr [this Uint]}
	 {*ast.SelectorExpr [that Uint]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_66]}
	 {*ast.SelectorExpr [this Uint16]}
	 {*ast.SelectorExpr [that Uint16]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_67]}
	 {*ast.SelectorExpr [this Uint32]}
	 {*ast.SelectorExpr [that Uint32]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_68]}
	 {*ast.SelectorExpr [this Uint64]}
	 {*ast.SelectorExpr [that Uint64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_69]}
	 {*ast.SelectorExpr [this Uint8]}
	 {*ast.SelectorExpr [that Uint8]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_70]}
	 {*ast.SelectorExpr [this UintPtr]}
	 {*ast.SelectorExpr [that UintPtr]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_71]}
	 {*ast.SelectorExpr [this AnotherBoolOfDifferentSize]}
	 {*ast.SelectorExpr [that AnotherBoolOfDifferentSize]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveComparePtrToArrayOfPtrToBuiltInTypes 
	 { [deriveComparePtrToArrayOfPtrToBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [ArrayOfPtrToBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_72]}
	 {*ast.SelectorExpr [this Bool]}
	 {*ast.SelectorExpr [that Bool]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_73]}
	 {*ast.SelectorExpr [this Byte]}
	 {*ast.SelectorExpr [that Byte]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_74]}
	 {*ast.SelectorExpr [this Complex128]}
	 {*ast.SelectorExpr [that Complex128]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_75]}
	 {*ast.SelectorExpr [this Complex64]}
	 {*ast.SelectorExpr [that Complex64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_76]}
	 {*ast.SelectorExpr [this Float64]}
	 {*ast.SelectorExpr [that Float64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_77]}
	 {*ast.SelectorExpr [this Float32]}
	 {*ast.SelectorExpr [that Float32]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_78]}
	 {*ast.SelectorExpr [this Int]}
	 {*ast.SelectorExpr [that Int]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_79]}
	 {*ast.SelectorExpr [this Int16]}
	 {*ast.SelectorExpr [that Int16]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_80]}
	 {*ast.SelectorExpr [this Int32]}
	 {*ast.SelectorExpr [that Int32]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_81]}
	 {*ast.SelectorExpr [this Int64]}
	 {*ast.SelectorExpr [that Int64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_82]}
	 {*ast.SelectorExpr [this Int8]}
	 {*ast.SelectorExpr [that Int8]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_83]}
	 {*ast.SelectorExpr [this Rune]}
	 {*ast.SelectorExpr [that Rune]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_84]}
	 {*ast.SelectorExpr [this String]}
	 {*ast.SelectorExpr [that String]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_85]}
	 {*ast.SelectorExpr [this Uint]}
	 {*ast.SelectorExpr [that Uint]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_86]}
	 {*ast.SelectorExpr [this Uint16]}
	 {*ast.SelectorExpr [that Uint16]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_87]}
	 {*ast.SelectorExpr [this Uint32]}
	 {*ast.SelectorExpr [that Uint32]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_88]}
	 {*ast.SelectorExpr [this Uint64]}
	 {*ast.SelectorExpr [that Uint64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_89]}
	 {*ast.SelectorExpr [this Uint8]}
	 {*ast.SelectorExpr [that Uint8]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_90]}
	 {*ast.SelectorExpr [this UintPtr]}
	 {*ast.SelectorExpr [that UintPtr]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_91]}
	 {*ast.SelectorExpr [this AnotherBoolOfDifferentSize]}
	 {*ast.SelectorExpr [that AnotherBoolOfDifferentSize]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveComparePtrToMapsOfSimplerBuiltInTypes 
	 { [deriveComparePtrToMapsOfSimplerBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [MapsOfSimplerBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_92]}
	 {*ast.SelectorExpr [this StringToUint32]}
	 {*ast.SelectorExpr [that StringToUint32]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_93]}
	 {*ast.SelectorExpr [this Uint64ToInt64]}
	 {*ast.SelectorExpr [that Uint64ToInt64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveComparePtrToMapsOfBuiltInTypes 
	 { [deriveComparePtrToMapsOfBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [MapsOfBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_94]}
	 {*ast.SelectorExpr [this BoolToString]}
	 {*ast.SelectorExpr [that BoolToString]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_95]}
	 {*ast.SelectorExpr [this StringToBool]}
	 {*ast.SelectorExpr [that StringToBool]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_96]}
	 {*ast.SelectorExpr [this Complex128ToComplex64]}
	 {*ast.SelectorExpr [that Complex128ToComplex64]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_97]}
	 {*ast.SelectorExpr [this Float64ToUint32]}
	 {*ast.SelectorExpr [that Float64ToUint32]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_98]}
	 {*ast.SelectorExpr [this Uint16ToUint8]}
	 {*ast.SelectorExpr [that Uint16ToUint8]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveComparePtrToSliceToSlice 
	 { [deriveComparePtrToSliceToSlice]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [SliceToSlice]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_99]}
	 {*ast.SelectorExpr [this Ints]}
	 {*ast.SelectorExpr [that Ints]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_100]}
	 {*ast.SelectorExpr [this Strings]}
	 {*ast.SelectorExpr [that Strings]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_101]}
	 {*ast.SelectorExpr [this IntPtrs]}
	 {*ast.SelectorExpr [that IntPtrs]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveComparePtrToPtrTo 
	 { [deriveComparePtrToPtrTo]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [PtrTo]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_8]}
	 {*ast.SelectorExpr [this Basic]}
	 {*ast.SelectorExpr [that Basic]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_102]}
	 {*ast.SelectorExpr [this Slice]}
	 {*ast.SelectorExpr [that Slice]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_103]}
	 {*ast.SelectorExpr [this Array]}
	 {*ast.SelectorExpr [that Array]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_104]}
	 {*ast.SelectorExpr [this Map]}
	 {*ast.SelectorExpr [that Map]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveComparePtrToName 
	 { [deriveComparePtrToName]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [Name]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr [strings Compare]}
	 {*ast.SelectorExpr [this Name]}
	 {*ast.SelectorExpr [that Name]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveComparePtrToStructs 
	 { [deriveComparePtrToStructs]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [Structs]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.SelectorExpr [this Struct Compare]}
	 {*ast.UnaryExpr [&]}
	 {*ast.SelectorExpr [that Struct]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.SelectorExpr [this PtrToStruct Compare]}
	 {*ast.SelectorExpr [that PtrToStruct]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_105]}
	 {*ast.SelectorExpr [this SliceOfStructs]}
	 {*ast.SelectorExpr [that SliceOfStructs]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_106]}
	 {*ast.SelectorExpr [this SliceToPtrOfStruct]}
	 {*ast.SelectorExpr [that SliceToPtrOfStruct]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_107]}
	 {*ast.UnaryExpr [&]}
	 {*ast.SelectorExpr [this StructWithoutMethod]}
	 {*ast.UnaryExpr [&]}
	 {*ast.SelectorExpr [that StructWithoutMethod]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_107]}
	 {*ast.SelectorExpr [this PtrToStructWithoutMethod]}
	 {*ast.SelectorExpr [that PtrToStructWithoutMethod]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_108]}
	 {*ast.SelectorExpr [this SliceOfStructWithoutMethod]}
	 {*ast.SelectorExpr [that SliceOfStructWithoutMethod]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_109]}
	 {*ast.SelectorExpr [this SliceToPtrOfStructWithoutMethod]}
	 {*ast.SelectorExpr [that SliceToPtrOfStructWithoutMethod]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveComparePtrToMapWithStructs 
	 { [deriveComparePtrToMapWithStructs]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [MapWithStructs]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_110]}
	 {*ast.SelectorExpr [this NameToString]}
	 {*ast.SelectorExpr [that NameToString]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_111]}
	 {*ast.SelectorExpr [this StringToName]}
	 {*ast.SelectorExpr [that StringToName]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_112]}
	 {*ast.SelectorExpr [this StringToPtrToName]}
	 {*ast.SelectorExpr [that StringToPtrToName]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_113]}
	 {*ast.SelectorExpr [this StringToSliceOfName]}
	 {*ast.SelectorExpr [that StringToSliceOfName]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_114]}
	 {*ast.SelectorExpr [this StringToSliceOfPtrToName]}
	 {*ast.SelectorExpr [that StringToSliceOfPtrToName]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_115]}
	 {*ast.SelectorExpr [this StringToStructWithoutMethod]}
	 {*ast.SelectorExpr [that StringToStructWithoutMethod]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_116]}
	 {*ast.SelectorExpr [this StructWithoutMethodToString]}
	 {*ast.SelectorExpr [that StructWithoutMethodToString]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_117]}
	 {*ast.SelectorExpr [this StringToPtrToStructWithoutMethod]}
	 {*ast.SelectorExpr [that StringToPtrToStructWithoutMethod]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_118]}
	 {*ast.SelectorExpr [this StringToSliceOfStructWithoutMethod]}
	 {*ast.SelectorExpr [that StringToSliceOfStructWithoutMethod]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_119]}
	 {*ast.SelectorExpr [this StringToSliceOfPtrToStructWithoutMethod]}
	 {*ast.SelectorExpr [that StringToSliceOfPtrToStructWithoutMethod]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveComparePtrToRecursiveType 
	 { [deriveComparePtrToRecursiveType]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [RecursiveType]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes Compare]}
	 {*ast.SelectorExpr [this Bytes]}
	 {*ast.SelectorExpr [that Bytes]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_120]}
	 {*ast.SelectorExpr [this N]}
	 {*ast.SelectorExpr [that N]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveComparePtrToEmbeddedStruct1 
	 { [deriveComparePtrToEmbeddedStruct1]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [EmbeddedStruct1]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.SelectorExpr [this Name Compare]}
	 {*ast.UnaryExpr [&]}
	 {*ast.SelectorExpr [that Name]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_107]}
	 {*ast.UnaryExpr [&]}
	 {*ast.SelectorExpr [this StructWithoutMethod]}
	 {*ast.UnaryExpr [&]}
	 {*ast.SelectorExpr [that StructWithoutMethod]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.SelectorExpr [this Structs Compare]}
	 {*ast.SelectorExpr [that Structs]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveComparePtrToEmbeddedStruct2 
	 { [deriveComparePtrToEmbeddedStruct2]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [EmbeddedStruct2]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.SelectorExpr [this Structs Compare]}
	 {*ast.UnaryExpr [&]}
	 {*ast.SelectorExpr [that Structs]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.SelectorExpr [this Name Compare]}
	 {*ast.SelectorExpr [that Name]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_107]}
	 {*ast.SelectorExpr [this StructWithoutMethod]}
	 {*ast.SelectorExpr [that StructWithoutMethod]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveComparePtrToStructWithStructFieldWithoutEqualMethod 
	 { [deriveComparePtrToStructWithStructFieldWithoutEqualMethod]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [StructWithStructFieldWithoutEqualMethod]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_121]}
	 {*ast.SelectorExpr [this A]}
	 {*ast.SelectorExpr [that A]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_121]}
	 {*ast.UnaryExpr [&]}
	 {*ast.SelectorExpr [this B]}
	 {*ast.UnaryExpr [&]}
	 {*ast.SelectorExpr [that B]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveComparePtrToStructWithStructWithFromAnotherPackage 
	 { [deriveComparePtrToStructWithStructWithFromAnotherPackage]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [StructWithStructWithFromAnotherPackage]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_122]}
	 {*ast.SelectorExpr [this A]}
	 {*ast.SelectorExpr [that A]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_122]}
	 {*ast.UnaryExpr [&]}
	 {*ast.SelectorExpr [this B]}
	 {*ast.UnaryExpr [&]}
	 {*ast.SelectorExpr [that B]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveComparePtrToFieldWithStructWithPrivateFields 
	 { [deriveComparePtrToFieldWithStructWithPrivateFields]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [FieldWithStructWithPrivateFields]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_123]}
	 {*ast.SelectorExpr [this A]}
	 {*ast.SelectorExpr [that A]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveComparePtrToEnums 
	 { [deriveComparePtrToEnums]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [Enums]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_M]}
	 {*ast.SelectorExpr [this Enum]}
	 {*ast.SelectorExpr [that Enum]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_124]}
	 {*ast.SelectorExpr [this PtrToEnum]}
	 {*ast.SelectorExpr [that PtrToEnum]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_125]}
	 {*ast.SelectorExpr [this SliceToEnum]}
	 {*ast.SelectorExpr [that SliceToEnum]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_126]}
	 {*ast.SelectorExpr [this SliceToPtrToEnum]}
	 {*ast.SelectorExpr [that SliceToPtrToEnum]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_127]}
	 {*ast.SelectorExpr [this MapToEnum]}
	 {*ast.SelectorExpr [that MapToEnum]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_128]}
	 {*ast.SelectorExpr [this EnumToMap]}
	 {*ast.SelectorExpr [that EnumToMap]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_129]}
	 {*ast.SelectorExpr [this ArrayEnum]}
	 {*ast.SelectorExpr [that ArrayEnum]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveComparePtrToNamedTypes 
	 { [deriveComparePtrToNamedTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [NamedTypes]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_27]}
	 {*ast.SelectorExpr [this Slice]}
	 {*ast.SelectorExpr [that Slice]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_130]}
	 {*ast.SelectorExpr [this PtrToSlice]}
	 {*ast.SelectorExpr [that PtrToSlice]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_131]}
	 {*ast.SelectorExpr [this SliceToSlice]}
	 {*ast.SelectorExpr [that SliceToSlice]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveComparePtrToDuration 
	 { [deriveComparePtrToDuration]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [Duration]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_D]}
	 {*ast.SelectorExpr [this D]}
	 {*ast.SelectorExpr [that D]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_132]}
	 {*ast.SelectorExpr [this P]}
	 {*ast.SelectorExpr [that P]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_133]}
	 {*ast.SelectorExpr [this Ds]}
	 {*ast.SelectorExpr [that Ds]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_134]}
	 {*ast.SelectorExpr [this DPs]}
	 {*ast.SelectorExpr [that DPs]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_135]}
	 {*ast.SelectorExpr [this MD]}
	 {*ast.SelectorExpr [that MD]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveComparePtrToNickname 
	 { [deriveComparePtrToNickname]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [Nickname]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_136]}
	 {*ast.SelectorExpr [this Alias]}
	 {*ast.SelectorExpr [that Alias]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveComparePtrToPrivateEmbedded 
	 { [deriveComparePtrToPrivateEmbedded]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [PrivateEmbedded]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_137]}
	 {*ast.UnaryExpr [&]}
	 {*ast.SelectorExpr [this privateStruct]}
	 {*ast.UnaryExpr [&]}
	 {*ast.SelectorExpr [that privateStruct]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompareComplex32 
	 { [deriveCompareComplex32]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that complex64]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= thisr thatr]}
	 {*ast.CallExpr [real this]}
	 {*ast.CallExpr [real that]}
	 {*ast.BinaryExpr [== thisr thatr]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= thisi thati]}
	 {*ast.CallExpr [imag this]}
	 {*ast.CallExpr [imag that]}
	 {*ast.BinaryExpr [== thisi thati]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [< thisi thati]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [< thisr thatr]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}


function name is deriveCompareComplex64 
	 { [deriveCompareComplex64]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that complex128]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= thisr thatr]}
	 {*ast.CallExpr [real this]}
	 {*ast.CallExpr [real that]}
	 {*ast.BinaryExpr [== thisr thatr]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= thisi thati]}
	 {*ast.CallExpr [imag this]}
	 {*ast.CallExpr [imag that]}
	 {*ast.BinaryExpr [== thisi thati]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [< thisi thati]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [< thisr thatr]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}


function name is deriveCompareCurryComplex64 
	 { [deriveCompareCurryComplex64]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this complex128]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [complex128]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [that complex128]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= thisr thatr]}
	 {*ast.CallExpr [real this]}
	 {*ast.CallExpr [real that]}
	 {*ast.BinaryExpr [== thisr thatr]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= thisi thati]}
	 {*ast.CallExpr [imag this]}
	 {*ast.CallExpr [imag that]}
	 {*ast.BinaryExpr [== thisi thati]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [< thisi thati]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [< thisr thatr]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}


function name is deriveCompareDeriveTheDerived 
	 { [deriveCompareDeriveTheDerived]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [DeriveTheDerived]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_i]}
	 {*ast.SelectorExpr [this Field]}
	 {*ast.SelectorExpr [that Field]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveUniqueInt64s 
	 { [deriveUniqueInt64s]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType [int64]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [int64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.CallExpr [len list]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [nil]}
	 {*ast.ReturnStmt -> *ast.CallExpr [deriveKeysForInt64s]}
	 {*ast.CallExpr [deriveSetInt64s list]}


function name is deriveUniqueStructs 
	 { [deriveUniqueStructs]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType -> *ast.StarExpr [BuiltInTypes]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType -> *ast.StarExpr [BuiltInTypes]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.CallExpr [len list]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [nil]}
	 {*ast.AssignStmt [:= table]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [uint64]}
	 {*ast.ArrayType [int]}
	 {*ast.AssignStmt [:= u]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len list]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= contains false]}
	 {*ast.AssignStmt [:= hash]}
	 {*ast.CallExpr [deriveHashBuiltInTypes]}
	 {*ast.IndexExpr [list i]}
	 {*ast.AssignStmt [:= indexes]}
	 {*ast.IndexExpr [table hash]}
	 {*ast.RangeStmt [_ index indexes]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.CallExpr [deriveEqualPtrToBuiltInTypes]}
	 {*ast.IndexExpr [list index]}
	 {*ast.IndexExpr [list i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= contains true]}
	 {*ast.BranchStmt -> *ast.IfStmt [contains]}
	 {*ast.BlockStmt -> *ast.BranchStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!= i u]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [list u]}
	 {*ast.IndexExpr [list i]}
	 {*ast.AssignStmt [=]}
	 {*ast.IndexExpr [table hash]}
	 {*ast.CallExpr [append]}
	 {*ast.IndexExpr [table hash u]}
	 {*ast.IncDecStmt [u]}
	 {*ast.ReturnStmt -> *ast.SliceExpr [list u]}


function name is deriveUniqueStructsPtrs 
	 { [deriveUniqueStructsPtrs]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType [PtrToBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [PtrToBuiltInTypes]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.CallExpr [len list]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [nil]}
	 {*ast.AssignStmt [:= table]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [uint64]}
	 {*ast.ArrayType [int]}
	 {*ast.AssignStmt [:= u]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len list]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= contains false]}
	 {*ast.AssignStmt [:= hash]}
	 {*ast.CallExpr [deriveHash]}
	 {*ast.IndexExpr [list i]}
	 {*ast.AssignStmt [:= indexes]}
	 {*ast.IndexExpr [table hash]}
	 {*ast.RangeStmt [_ index indexes]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.CallExpr [deriveEqual_]}
	 {*ast.IndexExpr [list index]}
	 {*ast.IndexExpr [list i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= contains true]}
	 {*ast.BranchStmt -> *ast.IfStmt [contains]}
	 {*ast.BlockStmt -> *ast.BranchStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!= i u]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [list u]}
	 {*ast.IndexExpr [list i]}
	 {*ast.AssignStmt [=]}
	 {*ast.IndexExpr [table hash]}
	 {*ast.CallExpr [append]}
	 {*ast.IndexExpr [table hash u]}
	 {*ast.IncDecStmt [u]}
	 {*ast.ReturnStmt -> *ast.SliceExpr [list u]}


function name is deriveFilter 
	 { [deriveFilter]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [predicate]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.Field [list]}
	 {*ast.ArrayType [int]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= j]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.RangeStmt [i elem list]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.CallExpr [predicate elem]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!= i j]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [list j]}
	 {*ast.IndexExpr [list i]}
	 {*ast.IncDecStmt [j]}
	 {*ast.ReturnStmt -> *ast.SliceExpr [list j]}


function name is deriveFilterJudy 
	 { [deriveFilterJudy]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [predicate]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.Field [list]}
	 {*ast.ArrayType [string]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= j]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.RangeStmt [i elem list]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.CallExpr [predicate elem]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!= i j]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [list j]}
	 {*ast.IndexExpr [list i]}
	 {*ast.IncDecStmt [j]}
	 {*ast.ReturnStmt -> *ast.SliceExpr [list j]}


function name is deriveUnionSetOfInt64s 
	 { [deriveUnionSetOfInt64s]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [union that]}
	 {*ast.MapType [int64]}
	 {*ast.StructType -> *ast.FieldList -> *ast.FieldList -> *ast.Field -> *ast.MapType [int64]}
	 {*ast.StructType -> *ast.FieldList -> *ast.BlockStmt -> *ast.RangeStmt [k that]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [union k]}
	 {*ast.CompositeLit -> *ast.StructType -> *ast.FieldList -> *ast.ReturnStmt [union]}


function name is deriveUnionOfInt64s 
	 { [deriveUnionOfInt64s]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [int64]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [int64]}
	 {*ast.BlockStmt -> *ast.RangeStmt [i v that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.CallExpr [deriveContainsInt64s this v]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= this]}
	 {*ast.CallExpr [append this]}
	 {*ast.IndexExpr [that i]}
	 {*ast.ReturnStmt [this]}


function name is deriveTuple1 
	 { [deriveTuple1]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [v0 int]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [v0]}


function name is deriveTuple2 
	 { [deriveTuple2]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [v0 int]}
	 {*ast.Field [v1 string]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [v0 v1]}


function name is deriveTuple3 
	 { [deriveTuple3]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [v0 int]}
	 {*ast.Field [v1 string]}
	 {*ast.Field [v2]}
	 {*ast.StarExpr [BuiltInTypes]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [string]}
	 {*ast.Field -> *ast.StarExpr [BuiltInTypes]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [string]}
	 {*ast.Field -> *ast.StarExpr [BuiltInTypes]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [v0 v1 v2]}


function name is deriveTupleError 
	 { [deriveTupleError]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [v0]}
	 {*ast.ArrayType [byte]}
	 {*ast.Field [v1 error]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field -> *ast.ArrayType [byte]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field -> *ast.ArrayType [byte]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [v0 v1]}


function name is deriveEqualPtrToEmpty 
	 { [deriveEqualPtrToEmpty]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [Empty]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [!= that nil]}


function name is deriveEqualPtrToBuiltInTypes 
	 { [deriveEqualPtrToBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [BuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Bool]}
	 {*ast.SelectorExpr [that Bool]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Byte]}
	 {*ast.SelectorExpr [that Byte]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Complex128]}
	 {*ast.SelectorExpr [that Complex128]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Complex64]}
	 {*ast.SelectorExpr [that Complex64]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Float64]}
	 {*ast.SelectorExpr [that Float64]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Float32]}
	 {*ast.SelectorExpr [that Float32]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Int]}
	 {*ast.SelectorExpr [that Int]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Int16]}
	 {*ast.SelectorExpr [that Int16]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Int32]}
	 {*ast.SelectorExpr [that Int32]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Int64]}
	 {*ast.SelectorExpr [that Int64]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Int8]}
	 {*ast.SelectorExpr [that Int8]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Rune]}
	 {*ast.SelectorExpr [that Rune]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this String]}
	 {*ast.SelectorExpr [that String]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Uint]}
	 {*ast.SelectorExpr [that Uint]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Uint16]}
	 {*ast.SelectorExpr [that Uint16]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Uint32]}
	 {*ast.SelectorExpr [that Uint32]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Uint64]}
	 {*ast.SelectorExpr [that Uint64]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Uint8]}
	 {*ast.SelectorExpr [that Uint8]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this UintPtr]}
	 {*ast.SelectorExpr [that UintPtr]}


function name is deriveEqualPtrToPrivateBuiltInTypes 
	 { [deriveEqualPtrToPrivateBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [PrivateBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this privateBool]}
	 {*ast.SelectorExpr [that privateBool]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this privateByte]}
	 {*ast.SelectorExpr [that privateByte]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this privateComplex128]}
	 {*ast.SelectorExpr [that privateComplex128]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this privateComplex64]}
	 {*ast.SelectorExpr [that privateComplex64]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this privateFloat64]}
	 {*ast.SelectorExpr [that privateFloat64]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this privateFloat32]}
	 {*ast.SelectorExpr [that privateFloat32]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this privateInt]}
	 {*ast.SelectorExpr [that privateInt]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this privateInt16]}
	 {*ast.SelectorExpr [that privateInt16]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this privateInt32]}
	 {*ast.SelectorExpr [that privateInt32]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this privateInt64]}
	 {*ast.SelectorExpr [that privateInt64]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this privateInt8]}
	 {*ast.SelectorExpr [that privateInt8]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this privateRune]}
	 {*ast.SelectorExpr [that privateRune]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this privateString]}
	 {*ast.SelectorExpr [that privateString]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this privateUint]}
	 {*ast.SelectorExpr [that privateUint]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this privateUint16]}
	 {*ast.SelectorExpr [that privateUint16]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this privateUint32]}
	 {*ast.SelectorExpr [that privateUint32]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this privateUint64]}
	 {*ast.SelectorExpr [that privateUint64]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this privateUint8]}
	 {*ast.SelectorExpr [that privateUint8]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this privateUintPtr]}
	 {*ast.SelectorExpr [that privateUintPtr]}


function name is deriveEqualPtrToPtrToBuiltInTypes 
	 { [deriveEqualPtrToPtrToBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [PtrToBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Bool nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [that Bool nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Bool nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [that Bool nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [this Bool]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [that Bool]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Byte nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [that Byte nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Byte nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [that Byte nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [this Byte]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [that Byte]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Complex128 nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [that Complex128 nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Complex128 nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [that Complex128 nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [this Complex128]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [that Complex128]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Complex64 nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [that Complex64 nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Complex64 nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [that Complex64 nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [this Complex64]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [that Complex64]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Float64 nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [that Float64 nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Float64 nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [that Float64 nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [this Float64]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [that Float64]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Float32 nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [that Float32 nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Float32 nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [that Float32 nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [this Float32]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [that Float32]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Int nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [that Int nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Int nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [that Int nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [this Int]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [that Int]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Int16 nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [that Int16 nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Int16 nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [that Int16 nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [this Int16]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [that Int16]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Int32 nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [that Int32 nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Int32 nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [that Int32 nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [this Int32]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [that Int32]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Int64 nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [that Int64 nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Int64 nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [that Int64 nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [this Int64]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [that Int64]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Int8 nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [that Int8 nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Int8 nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [that Int8 nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [this Int8]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [that Int8]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Rune nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [that Rune nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Rune nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [that Rune nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [this Rune]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [that Rune]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this String nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [that String nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this String nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [that String nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [this String]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [that String]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Uint nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [that Uint nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Uint nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [that Uint nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [this Uint]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [that Uint]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Uint16 nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [that Uint16 nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Uint16 nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [that Uint16 nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [this Uint16]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [that Uint16]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Uint32 nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [that Uint32 nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Uint32 nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [that Uint32 nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [this Uint32]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [that Uint32]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Uint64 nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [that Uint64 nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Uint64 nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [that Uint64 nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [this Uint64]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [that Uint64]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Uint8 nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [that Uint8 nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Uint8 nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [that Uint8 nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [this Uint8]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [that Uint8]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this UintPtr nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [that UintPtr nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this UintPtr nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [that UintPtr nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [this UintPtr]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [that UintPtr]}


function name is deriveEqualPtrToSliceOfBuiltInTypes 
	 { [deriveEqualPtrToSliceOfBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [SliceOfBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.CallExpr [deriveEqual_1]}
	 {*ast.SelectorExpr [this Bool]}
	 {*ast.SelectorExpr [that Bool]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes Equal]}
	 {*ast.SelectorExpr [this Byte]}
	 {*ast.SelectorExpr [that Byte]}
	 {*ast.CallExpr [deriveEqual_2]}
	 {*ast.SelectorExpr [this Complex128]}
	 {*ast.SelectorExpr [that Complex128]}
	 {*ast.CallExpr [deriveEqual_3]}
	 {*ast.SelectorExpr [this Complex64]}
	 {*ast.SelectorExpr [that Complex64]}
	 {*ast.CallExpr [deriveEqual_4]}
	 {*ast.SelectorExpr [this Float64]}
	 {*ast.SelectorExpr [that Float64]}
	 {*ast.CallExpr [deriveEqual_5]}
	 {*ast.SelectorExpr [this Float32]}
	 {*ast.SelectorExpr [that Float32]}
	 {*ast.CallExpr [deriveEqualSliceOfint]}
	 {*ast.SelectorExpr [this Int]}
	 {*ast.SelectorExpr [that Int]}
	 {*ast.CallExpr [deriveEqual_6]}
	 {*ast.SelectorExpr [this Int16]}
	 {*ast.SelectorExpr [that Int16]}
	 {*ast.CallExpr [deriveEqual_7]}
	 {*ast.SelectorExpr [this Int32]}
	 {*ast.SelectorExpr [that Int32]}
	 {*ast.CallExpr [deriveEqual_8]}
	 {*ast.SelectorExpr [this Int64]}
	 {*ast.SelectorExpr [that Int64]}
	 {*ast.CallExpr [deriveEqual_9]}
	 {*ast.SelectorExpr [this Int8]}
	 {*ast.SelectorExpr [that Int8]}
	 {*ast.CallExpr [deriveEqual_7]}
	 {*ast.SelectorExpr [this Rune]}
	 {*ast.SelectorExpr [that Rune]}
	 {*ast.CallExpr [deriveEqual_10]}
	 {*ast.SelectorExpr [this String]}
	 {*ast.SelectorExpr [that String]}
	 {*ast.CallExpr [deriveEqual_11]}
	 {*ast.SelectorExpr [this Uint]}
	 {*ast.SelectorExpr [that Uint]}
	 {*ast.CallExpr [deriveEqual_12]}
	 {*ast.SelectorExpr [this Uint16]}
	 {*ast.SelectorExpr [that Uint16]}
	 {*ast.CallExpr [deriveEqual_13]}
	 {*ast.SelectorExpr [this Uint32]}
	 {*ast.SelectorExpr [that Uint32]}
	 {*ast.CallExpr [deriveEqual_14]}
	 {*ast.SelectorExpr [this Uint64]}
	 {*ast.SelectorExpr [that Uint64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes Equal]}
	 {*ast.SelectorExpr [this Uint8]}
	 {*ast.SelectorExpr [that Uint8]}
	 {*ast.CallExpr [deriveEqual_15]}
	 {*ast.SelectorExpr [this UintPtr]}
	 {*ast.SelectorExpr [that UintPtr]}


function name is deriveEqualPtrToSliceOfPtrToBuiltInTypes 
	 { [deriveEqualPtrToSliceOfPtrToBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [SliceOfPtrToBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.CallExpr [deriveEqual_16]}
	 {*ast.SelectorExpr [this Bool]}
	 {*ast.SelectorExpr [that Bool]}
	 {*ast.CallExpr [deriveEqual_17]}
	 {*ast.SelectorExpr [this Byte]}
	 {*ast.SelectorExpr [that Byte]}
	 {*ast.CallExpr [deriveEqual_18]}
	 {*ast.SelectorExpr [this Complex128]}
	 {*ast.SelectorExpr [that Complex128]}
	 {*ast.CallExpr [deriveEqual_19]}
	 {*ast.SelectorExpr [this Complex64]}
	 {*ast.SelectorExpr [that Complex64]}
	 {*ast.CallExpr [deriveEqual_20]}
	 {*ast.SelectorExpr [this Float64]}
	 {*ast.SelectorExpr [that Float64]}
	 {*ast.CallExpr [deriveEqual_21]}
	 {*ast.SelectorExpr [this Float32]}
	 {*ast.SelectorExpr [that Float32]}
	 {*ast.CallExpr [deriveEqual_22]}
	 {*ast.SelectorExpr [this Int]}
	 {*ast.SelectorExpr [that Int]}
	 {*ast.CallExpr [deriveEqual_23]}
	 {*ast.SelectorExpr [this Int16]}
	 {*ast.SelectorExpr [that Int16]}
	 {*ast.CallExpr [deriveEqual_24]}
	 {*ast.SelectorExpr [this Int32]}
	 {*ast.SelectorExpr [that Int32]}
	 {*ast.CallExpr [deriveEqual_25]}
	 {*ast.SelectorExpr [this Int64]}
	 {*ast.SelectorExpr [that Int64]}
	 {*ast.CallExpr [deriveEqual_26]}
	 {*ast.SelectorExpr [this Int8]}
	 {*ast.SelectorExpr [that Int8]}
	 {*ast.CallExpr [deriveEqual_24]}
	 {*ast.SelectorExpr [this Rune]}
	 {*ast.SelectorExpr [that Rune]}
	 {*ast.CallExpr [deriveEqual_27]}
	 {*ast.SelectorExpr [this String]}
	 {*ast.SelectorExpr [that String]}
	 {*ast.CallExpr [deriveEqual_28]}
	 {*ast.SelectorExpr [this Uint]}
	 {*ast.SelectorExpr [that Uint]}
	 {*ast.CallExpr [deriveEqual_29]}
	 {*ast.SelectorExpr [this Uint16]}
	 {*ast.SelectorExpr [that Uint16]}
	 {*ast.CallExpr [deriveEqual_30]}
	 {*ast.SelectorExpr [this Uint32]}
	 {*ast.SelectorExpr [that Uint32]}
	 {*ast.CallExpr [deriveEqual_31]}
	 {*ast.SelectorExpr [this Uint64]}
	 {*ast.SelectorExpr [that Uint64]}
	 {*ast.CallExpr [deriveEqual_17]}
	 {*ast.SelectorExpr [this Uint8]}
	 {*ast.SelectorExpr [that Uint8]}
	 {*ast.CallExpr [deriveEqual_32]}
	 {*ast.SelectorExpr [this UintPtr]}
	 {*ast.SelectorExpr [that UintPtr]}


function name is deriveEqualPtrToArrayOfBuiltInTypes 
	 { [deriveEqualPtrToArrayOfBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [ArrayOfBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Bool]}
	 {*ast.SelectorExpr [that Bool]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Byte]}
	 {*ast.SelectorExpr [that Byte]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Complex128]}
	 {*ast.SelectorExpr [that Complex128]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Complex64]}
	 {*ast.SelectorExpr [that Complex64]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Float64]}
	 {*ast.SelectorExpr [that Float64]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Float32]}
	 {*ast.SelectorExpr [that Float32]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Int]}
	 {*ast.SelectorExpr [that Int]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Int16]}
	 {*ast.SelectorExpr [that Int16]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Int32]}
	 {*ast.SelectorExpr [that Int32]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Int64]}
	 {*ast.SelectorExpr [that Int64]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Int8]}
	 {*ast.SelectorExpr [that Int8]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Rune]}
	 {*ast.SelectorExpr [that Rune]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this String]}
	 {*ast.SelectorExpr [that String]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Uint]}
	 {*ast.SelectorExpr [that Uint]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Uint16]}
	 {*ast.SelectorExpr [that Uint16]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Uint32]}
	 {*ast.SelectorExpr [that Uint32]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Uint64]}
	 {*ast.SelectorExpr [that Uint64]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Uint8]}
	 {*ast.SelectorExpr [that Uint8]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this UintPtr]}
	 {*ast.SelectorExpr [that UintPtr]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this AnotherBoolOfDifferentSize]}
	 {*ast.SelectorExpr [that AnotherBoolOfDifferentSize]}


function name is deriveEqualPtrToArrayOfPtrToBuiltInTypes 
	 { [deriveEqualPtrToArrayOfPtrToBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [ArrayOfPtrToBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.CallExpr [deriveEqual_33]}
	 {*ast.SelectorExpr [this Bool]}
	 {*ast.SelectorExpr [that Bool]}
	 {*ast.CallExpr [deriveEqual_34]}
	 {*ast.SelectorExpr [this Byte]}
	 {*ast.SelectorExpr [that Byte]}
	 {*ast.CallExpr [deriveEqual_35]}
	 {*ast.SelectorExpr [this Complex128]}
	 {*ast.SelectorExpr [that Complex128]}
	 {*ast.CallExpr [deriveEqual_36]}
	 {*ast.SelectorExpr [this Complex64]}
	 {*ast.SelectorExpr [that Complex64]}
	 {*ast.CallExpr [deriveEqual_37]}
	 {*ast.SelectorExpr [this Float64]}
	 {*ast.SelectorExpr [that Float64]}
	 {*ast.CallExpr [deriveEqual_38]}
	 {*ast.SelectorExpr [this Float32]}
	 {*ast.SelectorExpr [that Float32]}
	 {*ast.CallExpr [deriveEqual_39]}
	 {*ast.SelectorExpr [this Int]}
	 {*ast.SelectorExpr [that Int]}
	 {*ast.CallExpr [deriveEqual_40]}
	 {*ast.SelectorExpr [this Int16]}
	 {*ast.SelectorExpr [that Int16]}
	 {*ast.CallExpr [deriveEqual_41]}
	 {*ast.SelectorExpr [this Int32]}
	 {*ast.SelectorExpr [that Int32]}
	 {*ast.CallExpr [deriveEqual_42]}
	 {*ast.SelectorExpr [this Int64]}
	 {*ast.SelectorExpr [that Int64]}
	 {*ast.CallExpr [deriveEqual_43]}
	 {*ast.SelectorExpr [this Int8]}
	 {*ast.SelectorExpr [that Int8]}
	 {*ast.CallExpr [deriveEqual_44]}
	 {*ast.SelectorExpr [this Rune]}
	 {*ast.SelectorExpr [that Rune]}
	 {*ast.CallExpr [deriveEqual_45]}
	 {*ast.SelectorExpr [this String]}
	 {*ast.SelectorExpr [that String]}
	 {*ast.CallExpr [deriveEqual_46]}
	 {*ast.SelectorExpr [this Uint]}
	 {*ast.SelectorExpr [that Uint]}
	 {*ast.CallExpr [deriveEqual_47]}
	 {*ast.SelectorExpr [this Uint16]}
	 {*ast.SelectorExpr [that Uint16]}
	 {*ast.CallExpr [deriveEqual_48]}
	 {*ast.SelectorExpr [this Uint32]}
	 {*ast.SelectorExpr [that Uint32]}
	 {*ast.CallExpr [deriveEqual_49]}
	 {*ast.SelectorExpr [this Uint64]}
	 {*ast.SelectorExpr [that Uint64]}
	 {*ast.CallExpr [deriveEqual_50]}
	 {*ast.SelectorExpr [this Uint8]}
	 {*ast.SelectorExpr [that Uint8]}
	 {*ast.CallExpr [deriveEqual_51]}
	 {*ast.SelectorExpr [this UintPtr]}
	 {*ast.SelectorExpr [that UintPtr]}
	 {*ast.CallExpr [deriveEqual_52]}
	 {*ast.SelectorExpr [this AnotherBoolOfDifferentSize]}
	 {*ast.SelectorExpr [that AnotherBoolOfDifferentSize]}


function name is deriveEqualPtrToMapsOfSimplerBuiltInTypes 
	 { [deriveEqualPtrToMapsOfSimplerBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [MapsOfSimplerBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.CallExpr [deriveEqual_53]}
	 {*ast.SelectorExpr [this StringToUint32]}
	 {*ast.SelectorExpr [that StringToUint32]}
	 {*ast.CallExpr [deriveEqual_54]}
	 {*ast.SelectorExpr [this Uint64ToInt64]}
	 {*ast.SelectorExpr [that Uint64ToInt64]}


function name is deriveEqualPtrToMapsOfBuiltInTypes 
	 { [deriveEqualPtrToMapsOfBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [MapsOfBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.CallExpr [deriveEqual_55]}
	 {*ast.SelectorExpr [this BoolToString]}
	 {*ast.SelectorExpr [that BoolToString]}
	 {*ast.CallExpr [deriveEqual_56]}
	 {*ast.SelectorExpr [this StringToBool]}
	 {*ast.SelectorExpr [that StringToBool]}
	 {*ast.CallExpr [deriveEqual_57]}
	 {*ast.SelectorExpr [this Complex128ToComplex64]}
	 {*ast.SelectorExpr [that Complex128ToComplex64]}
	 {*ast.CallExpr [deriveEqual_58]}
	 {*ast.SelectorExpr [this Float64ToUint32]}
	 {*ast.SelectorExpr [that Float64ToUint32]}
	 {*ast.CallExpr [deriveEqual_59]}
	 {*ast.SelectorExpr [this Uint16ToUint8]}
	 {*ast.SelectorExpr [that Uint16ToUint8]}


function name is deriveEqualPtrToSliceToSlice 
	 { [deriveEqualPtrToSliceToSlice]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [SliceToSlice]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.CallExpr [deriveEqual_60]}
	 {*ast.SelectorExpr [this Ints]}
	 {*ast.SelectorExpr [that Ints]}
	 {*ast.CallExpr [deriveEqual_61]}
	 {*ast.SelectorExpr [this Strings]}
	 {*ast.SelectorExpr [that Strings]}
	 {*ast.CallExpr [deriveEqual_62]}
	 {*ast.SelectorExpr [this IntPtrs]}
	 {*ast.SelectorExpr [that IntPtrs]}


function name is deriveEqualPtrToPtrTo 
	 { [deriveEqualPtrToPtrTo]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [PtrTo]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Basic nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [that Basic nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Basic nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [that Basic nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [this Basic]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [that Basic]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Slice nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [that Slice nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Slice nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [that Slice nil]}
	 {*ast.CallExpr [deriveEqualSliceOfint]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [this Slice]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [that Slice]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Array nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [that Array nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Array nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [that Array nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [this Array]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [that Array]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Map nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [that Map nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Map nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [that Map nil]}
	 {*ast.CallExpr [deriveEqualMapOfintToint]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [this Map]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [that Map]}


function name is deriveEqualPtrToName 
	 { [deriveEqualPtrToName]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [Name]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Name]}
	 {*ast.SelectorExpr [that Name]}


function name is deriveEqualPtrToStructs 
	 { [deriveEqualPtrToStructs]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [Structs]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.SelectorExpr [this Struct Equal]}
	 {*ast.UnaryExpr [&]}
	 {*ast.SelectorExpr [that Struct]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.SelectorExpr [this PtrToStruct Equal]}
	 {*ast.SelectorExpr [that PtrToStruct]}
	 {*ast.CallExpr [deriveEqual_63]}
	 {*ast.SelectorExpr [this SliceOfStructs]}
	 {*ast.SelectorExpr [that SliceOfStructs]}
	 {*ast.CallExpr [deriveEqual_64]}
	 {*ast.SelectorExpr [this SliceToPtrOfStruct]}
	 {*ast.SelectorExpr [that SliceToPtrOfStruct]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this StructWithoutMethod]}
	 {*ast.SelectorExpr [that StructWithoutMethod]}
	 {*ast.CallExpr [deriveEqual_65]}
	 {*ast.SelectorExpr [this PtrToStructWithoutMethod]}
	 {*ast.SelectorExpr [that PtrToStructWithoutMethod]}
	 {*ast.CallExpr [deriveEqual_66]}
	 {*ast.SelectorExpr [this SliceOfStructWithoutMethod]}
	 {*ast.SelectorExpr [that SliceOfStructWithoutMethod]}
	 {*ast.CallExpr [deriveEqual_67]}
	 {*ast.SelectorExpr [this SliceToPtrOfStructWithoutMethod]}
	 {*ast.SelectorExpr [that SliceToPtrOfStructWithoutMethod]}


function name is deriveEqualPtrToMapWithStructs 
	 { [deriveEqualPtrToMapWithStructs]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [MapWithStructs]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.CallExpr [deriveEqual_68]}
	 {*ast.SelectorExpr [this NameToString]}
	 {*ast.SelectorExpr [that NameToString]}
	 {*ast.CallExpr [deriveEqual_69]}
	 {*ast.SelectorExpr [this StringToName]}
	 {*ast.SelectorExpr [that StringToName]}
	 {*ast.CallExpr [deriveEqual_70]}
	 {*ast.SelectorExpr [this StringToPtrToName]}
	 {*ast.SelectorExpr [that StringToPtrToName]}
	 {*ast.CallExpr [deriveEqual_71]}
	 {*ast.SelectorExpr [this StringToSliceOfName]}
	 {*ast.SelectorExpr [that StringToSliceOfName]}
	 {*ast.CallExpr [deriveEqual_72]}
	 {*ast.SelectorExpr [this StringToSliceOfPtrToName]}
	 {*ast.SelectorExpr [that StringToSliceOfPtrToName]}
	 {*ast.CallExpr [deriveEqual_73]}
	 {*ast.SelectorExpr [this StringToStructWithoutMethod]}
	 {*ast.SelectorExpr [that StringToStructWithoutMethod]}
	 {*ast.CallExpr [deriveEqual_74]}
	 {*ast.SelectorExpr [this StructWithoutMethodToString]}
	 {*ast.SelectorExpr [that StructWithoutMethodToString]}
	 {*ast.CallExpr [deriveEqual_75]}
	 {*ast.SelectorExpr [this StringToPtrToStructWithoutMethod]}
	 {*ast.SelectorExpr [that StringToPtrToStructWithoutMethod]}
	 {*ast.CallExpr [deriveEqual_76]}
	 {*ast.SelectorExpr [this StringToSliceOfStructWithoutMethod]}
	 {*ast.SelectorExpr [that StringToSliceOfStructWithoutMethod]}
	 {*ast.CallExpr [deriveEqual_77]}
	 {*ast.SelectorExpr [this StringToSliceOfPtrToStructWithoutMethod]}
	 {*ast.SelectorExpr [that StringToSliceOfPtrToStructWithoutMethod]}


function name is deriveEqualPtrToRecursiveType 
	 { [deriveEqualPtrToRecursiveType]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [RecursiveType]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes Equal]}
	 {*ast.SelectorExpr [this Bytes]}
	 {*ast.SelectorExpr [that Bytes]}
	 {*ast.CallExpr [deriveEqual_78]}
	 {*ast.SelectorExpr [this N]}
	 {*ast.SelectorExpr [that N]}


function name is deriveEqualPtrToEmbeddedStruct1 
	 { [deriveEqualPtrToEmbeddedStruct1]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [EmbeddedStruct1]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.SelectorExpr [this Name Equal]}
	 {*ast.UnaryExpr [&]}
	 {*ast.SelectorExpr [that Name]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this StructWithoutMethod]}
	 {*ast.SelectorExpr [that StructWithoutMethod]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.SelectorExpr [this Structs Equal]}
	 {*ast.SelectorExpr [that Structs]}


function name is deriveEqualPtrToEmbeddedStruct2 
	 { [deriveEqualPtrToEmbeddedStruct2]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [EmbeddedStruct2]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.SelectorExpr [this Structs Equal]}
	 {*ast.UnaryExpr [&]}
	 {*ast.SelectorExpr [that Structs]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.SelectorExpr [this Name Equal]}
	 {*ast.SelectorExpr [that Name]}
	 {*ast.CallExpr [deriveEqual_65]}
	 {*ast.SelectorExpr [this StructWithoutMethod]}
	 {*ast.SelectorExpr [that StructWithoutMethod]}


function name is deriveEqualPtrToUnnamedStruct 
	 { [deriveEqualPtrToUnnamedStruct]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [UnnamedStruct]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Unnamed]}
	 {*ast.SelectorExpr [that Unnamed]}


function name is deriveEqualPtrToStructWithStructFieldWithoutEqualMethod 
	 { [deriveEqualPtrToStructWithStructFieldWithoutEqualMethod]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [StructWithStructFieldWithoutEqualMethod]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.CallExpr [deriveEqual_79]}
	 {*ast.SelectorExpr [this A]}
	 {*ast.SelectorExpr [that A]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this B]}
	 {*ast.SelectorExpr [that B]}


function name is deriveEqualPtrToStructWithStructWithFromAnotherPackage 
	 { [deriveEqualPtrToStructWithStructWithFromAnotherPackage]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [StructWithStructWithFromAnotherPackage]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.CallExpr [deriveEqual_80]}
	 {*ast.SelectorExpr [this A]}
	 {*ast.SelectorExpr [that A]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this B]}
	 {*ast.SelectorExpr [that B]}


function name is deriveEqualPtrToFieldWithStructWithPrivateFields 
	 { [deriveEqualPtrToFieldWithStructWithPrivateFields]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [FieldWithStructWithPrivateFields]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.CallExpr [deriveEqual_81]}
	 {*ast.SelectorExpr [this A]}
	 {*ast.SelectorExpr [that A]}


function name is deriveEqualPtrToEnums 
	 { [deriveEqualPtrToEnums]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [Enums]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Enum]}
	 {*ast.SelectorExpr [that Enum]}
	 {*ast.CallExpr [deriveEqual_82]}
	 {*ast.SelectorExpr [this PtrToEnum]}
	 {*ast.SelectorExpr [that PtrToEnum]}
	 {*ast.CallExpr [deriveEqual_83]}
	 {*ast.SelectorExpr [this SliceToEnum]}
	 {*ast.SelectorExpr [that SliceToEnum]}
	 {*ast.CallExpr [deriveEqual_84]}
	 {*ast.SelectorExpr [this SliceToPtrToEnum]}
	 {*ast.SelectorExpr [that SliceToPtrToEnum]}
	 {*ast.CallExpr [deriveEqual_85]}
	 {*ast.SelectorExpr [this MapToEnum]}
	 {*ast.SelectorExpr [that MapToEnum]}
	 {*ast.CallExpr [deriveEqual_86]}
	 {*ast.SelectorExpr [this EnumToMap]}
	 {*ast.SelectorExpr [that EnumToMap]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this ArrayEnum]}
	 {*ast.SelectorExpr [that ArrayEnum]}


function name is deriveEqualPtrToNamedTypes 
	 { [deriveEqualPtrToNamedTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [NamedTypes]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.CallExpr [deriveEqual_8]}
	 {*ast.SelectorExpr [this Slice]}
	 {*ast.SelectorExpr [that Slice]}
	 {*ast.CallExpr [deriveEqual_87]}
	 {*ast.SelectorExpr [this PtrToSlice]}
	 {*ast.SelectorExpr [that PtrToSlice]}
	 {*ast.CallExpr [deriveEqual_88]}
	 {*ast.SelectorExpr [this SliceToSlice]}
	 {*ast.SelectorExpr [that SliceToSlice]}


function name is deriveEqualPtrToTime 
	 { [deriveEqualPtrToTime]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [Time]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.SelectorExpr [this T Equal]}
	 {*ast.SelectorExpr [that T]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this P nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [that P nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this P nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [that P nil]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [this P Equal]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [that P]}


function name is deriveEqualPtrToDuration 
	 { [deriveEqualPtrToDuration]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [Duration]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this D]}
	 {*ast.SelectorExpr [that D]}
	 {*ast.CallExpr [deriveEqual_89]}
	 {*ast.SelectorExpr [this P]}
	 {*ast.SelectorExpr [that P]}
	 {*ast.CallExpr [deriveEqual_90]}
	 {*ast.SelectorExpr [this Ds]}
	 {*ast.SelectorExpr [that Ds]}
	 {*ast.CallExpr [deriveEqual_91]}
	 {*ast.SelectorExpr [this DPs]}
	 {*ast.SelectorExpr [that DPs]}
	 {*ast.CallExpr [deriveEqual_92]}
	 {*ast.SelectorExpr [this MD]}
	 {*ast.SelectorExpr [that MD]}


function name is deriveEqualPtrToNickname 
	 { [deriveEqualPtrToNickname]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [Nickname]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.CallExpr [deriveEqual_93]}
	 {*ast.SelectorExpr [this Alias]}
	 {*ast.SelectorExpr [that Alias]}


function name is deriveEqualPtrToPrivateEmbedded 
	 { [deriveEqualPtrToPrivateEmbedded]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [PrivateEmbedded]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.CallExpr [deriveEqual_94]}
	 {*ast.UnaryExpr [&]}
	 {*ast.SelectorExpr [this privateStruct]}
	 {*ast.UnaryExpr [&]}
	 {*ast.SelectorExpr [that privateStruct]}


function name is deriveEqualInefficientDeriveTheDerived 
	 { [deriveEqualInefficientDeriveTheDerived]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [== this that]}


function name is deriveEqualSliceOfint 
	 { [deriveEqualSliceOfint]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqualMapOfintToint 
	 { [deriveEqualMapOfintToint]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [int int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatv ok]}
	 {*ast.IndexExpr [that k]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [! ok]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [== v thatv]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqualPtrToint 
	 { [deriveEqualPtrToint]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [true]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr [this]}
	 {*ast.StarExpr [that]}
	 {*ast.ReturnStmt [false]}


function name is deriveEqualPtrToSliceOfint 
	 { [deriveEqualPtrToSliceOfint]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr -> *ast.ArrayType [int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [true]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr [this nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr [that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr [this nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr [that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr [this]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr [that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr [this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr -> *ast.ParenExpr -> *ast.StarExpr [this i]}
	 {*ast.IndexExpr -> *ast.ParenExpr -> *ast.StarExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}
	 {*ast.ReturnStmt [false]}


function name is deriveEqualPtrToArray10Ofint 
	 { [deriveEqualPtrToArray10Ofint]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr -> *ast.ArrayType -> *ast.BasicLit [INT 10]}
	 { [int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [true]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.BlockStmt -> *ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr [this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr -> *ast.ParenExpr -> *ast.StarExpr [this i]}
	 {*ast.IndexExpr -> *ast.ParenExpr -> *ast.StarExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}
	 {*ast.ReturnStmt [false]}


function name is deriveEqualPtrToMapOfintToint 
	 { [deriveEqualPtrToMapOfintToint]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr -> *ast.MapType [int int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [true]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr [this nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr [that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr [this nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr [that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr [this]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr [that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.RangeStmt [k v]}
	 {*ast.StarExpr [this]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatv ok]}
	 {*ast.IndexExpr -> *ast.ParenExpr -> *ast.StarExpr [that k]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [! ok]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [== v thatv]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}
	 {*ast.ReturnStmt [false]}


function name is deriveEqual1 
	 { [deriveEqual1]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that BuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr -> *ast.ParenExpr []}
	 {*ast.UnaryExpr [& this Equal]}
	 {*ast.UnaryExpr [& that]}


function name is deriveEqualCurry 
	 { [deriveEqualCurry]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [BuiltInTypes]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field -> *ast.StarExpr [BuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [that]}
	 {*ast.StarExpr [BuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Bool]}
	 {*ast.SelectorExpr [that Bool]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Byte]}
	 {*ast.SelectorExpr [that Byte]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Complex128]}
	 {*ast.SelectorExpr [that Complex128]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Complex64]}
	 {*ast.SelectorExpr [that Complex64]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Float64]}
	 {*ast.SelectorExpr [that Float64]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Float32]}
	 {*ast.SelectorExpr [that Float32]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Int]}
	 {*ast.SelectorExpr [that Int]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Int16]}
	 {*ast.SelectorExpr [that Int16]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Int32]}
	 {*ast.SelectorExpr [that Int32]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Int64]}
	 {*ast.SelectorExpr [that Int64]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Int8]}
	 {*ast.SelectorExpr [that Int8]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Rune]}
	 {*ast.SelectorExpr [that Rune]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this String]}
	 {*ast.SelectorExpr [that String]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Uint]}
	 {*ast.SelectorExpr [that Uint]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Uint16]}
	 {*ast.SelectorExpr [that Uint16]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Uint32]}
	 {*ast.SelectorExpr [that Uint32]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Uint64]}
	 {*ast.SelectorExpr [that Uint64]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Uint8]}
	 {*ast.SelectorExpr [that Uint8]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this UintPtr]}
	 {*ast.SelectorExpr [that UintPtr]}


function name is deriveEqualMapTypes 
	 { [deriveEqualMapTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [SomeJson]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Name]}
	 {*ast.SelectorExpr [that Name]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.SelectorExpr [this Other Equal]}
	 {*ast.SelectorExpr [that Other]}


function name is deriveEqualVisitor 
	 { [deriveEqualVisitor]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that Visitor]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr [deriveEqual_95]}
	 {*ast.UnaryExpr [& this]}
	 {*ast.UnaryExpr [& that]}


function name is deriveEqual 
	 { [deriveEqual]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [UseVendor]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.CallExpr [deriveEqual_96]}
	 {*ast.SelectorExpr [this Vendors]}
	 {*ast.SelectorExpr [that Vendors]}


function name is deriveEqual_ 
	 { [deriveEqual_]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that PtrToBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr -> *ast.ParenExpr []}
	 {*ast.UnaryExpr [& this Equal]}
	 {*ast.UnaryExpr [& that]}


function name is deriveCurryMarshal 
	 { [deriveCurryMarshal]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [data]}
	 {*ast.ArrayType [byte]}
	 {*ast.Field [v]}
	 {*ast.InterfaceType []}
	 {*ast.FieldList -> *ast.FieldList -> *ast.Field [error]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [data]}
	 {*ast.ArrayType [byte]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [v]}
	 {*ast.InterfaceType []}
	 {*ast.FieldList -> *ast.FieldList -> *ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [data]}
	 {*ast.ArrayType [byte]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [v]}
	 {*ast.InterfaceType []}
	 {*ast.FieldList -> *ast.FieldList -> *ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [v]}
	 {*ast.InterfaceType []}
	 {*ast.FieldList -> *ast.FieldList -> *ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr [f data v]}


function name is deriveCurry3 
	 { [deriveCurry3]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [a int]}
	 {*ast.Field [b string]}
	 {*ast.Field [c bool]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [a int]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [b string]}
	 {*ast.Field [c bool]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [a int]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [b string]}
	 {*ast.Field [c bool]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [b string]}
	 {*ast.Field [c bool]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr [f a b c]}


function name is deriveCurryCurried 
	 { [deriveCurryCurried]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [b string]}
	 {*ast.Field [c bool]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [b string]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [c bool]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [b string]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [c bool]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [c bool]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr [f b c]}


function name is deriveCurryBlackIdentifier 
	 { [deriveCurryBlackIdentifier]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [param_0 string]}
	 {*ast.Field [param_1 bool]}
	 {*ast.Field [param_2 int]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [param_0 string]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [param_1 bool]}
	 {*ast.Field [param_2 int]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [param_0 string]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [param_1 bool]}
	 {*ast.Field [param_2 int]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [param_1 bool]}
	 {*ast.Field [param_2 int]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr [f param_0 param_1 param_2]}


function name is deriveCloneEmpty 
	 { [deriveCloneEmpty]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [src]}
	 {*ast.StarExpr [Empty]}
	 {*ast.FieldList -> *ast.Field -> *ast.StarExpr [Empty]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [nil]}
	 {*ast.AssignStmt [:= dst]}
	 {*ast.CallExpr [new Empty]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopyPtrToEmpty dst src]}
	 {*ast.ReturnStmt [dst]}


function name is deriveCloneBuiltInTypes 
	 { [deriveCloneBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [src]}
	 {*ast.StarExpr [BuiltInTypes]}
	 {*ast.FieldList -> *ast.Field -> *ast.StarExpr [BuiltInTypes]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [nil]}
	 {*ast.AssignStmt [:= dst]}
	 {*ast.CallExpr [new BuiltInTypes]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopyPtrToBuiltInTypes dst src]}
	 {*ast.ReturnStmt [dst]}


function name is deriveClonePtrToBuiltInTypes 
	 { [deriveClonePtrToBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [src]}
	 {*ast.StarExpr [PtrToBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field -> *ast.StarExpr [PtrToBuiltInTypes]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [nil]}
	 {*ast.AssignStmt [:= dst]}
	 {*ast.CallExpr [new PtrToBuiltInTypes]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopyPtrToPtrToBuiltInTypes dst src]}
	 {*ast.ReturnStmt [dst]}


function name is deriveCloneSliceOfint 
	 { [deriveCloneSliceOfint]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [src]}
	 {*ast.ArrayType [int]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [nil]}
	 {*ast.AssignStmt [:= dst]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int]}
	 {*ast.CallExpr [len src]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_51 dst src]}
	 {*ast.ReturnStmt [dst]}


function name is deriveCloneMapOfintToint 
	 { [deriveCloneMapOfintToint]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [src]}
	 {*ast.MapType [int int]}
	 {*ast.FieldList -> *ast.Field -> *ast.MapType [int int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [nil]}
	 {*ast.AssignStmt [:= dst]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [int int]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_52 dst src]}
	 {*ast.ReturnStmt [dst]}


function name is deriveClonePtrToint 
	 { [deriveClonePtrToint]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [src]}
	 {*ast.StarExpr [int]}
	 {*ast.FieldList -> *ast.Field -> *ast.StarExpr [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [nil]}
	 {*ast.AssignStmt [:= dst]}
	 {*ast.CallExpr [new int]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_53 dst src]}
	 {*ast.ReturnStmt [dst]}


function name is deriveClonePtrToSliceOfint 
	 { [deriveClonePtrToSliceOfint]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [src]}
	 {*ast.StarExpr -> *ast.ArrayType [int]}
	 {*ast.FieldList -> *ast.Field -> *ast.StarExpr -> *ast.ArrayType [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [nil]}
	 {*ast.AssignStmt [:= dst]}
	 {*ast.CallExpr [new]}
	 {*ast.ArrayType [int]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_26 dst src]}
	 {*ast.ReturnStmt [dst]}


function name is deriveClonePtrToArray10Ofint 
	 { [deriveClonePtrToArray10Ofint]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [src]}
	 {*ast.StarExpr -> *ast.ArrayType -> *ast.BasicLit [INT 10]}
	 { [int]}
	 {*ast.FieldList -> *ast.Field -> *ast.StarExpr -> *ast.ArrayType -> *ast.BasicLit [INT 10]}
	 { [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [nil]}
	 {*ast.AssignStmt [:= dst]}
	 {*ast.CallExpr [new]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 10]}
	 { [int]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_54 dst src]}
	 {*ast.ReturnStmt [dst]}


function name is deriveClonePtrToMapOfintToint 
	 { [deriveClonePtrToMapOfintToint]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [src]}
	 {*ast.StarExpr -> *ast.MapType [int int]}
	 {*ast.FieldList -> *ast.Field -> *ast.StarExpr -> *ast.MapType [int int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [nil]}
	 {*ast.AssignStmt [:= dst]}
	 {*ast.CallExpr [new]}
	 {*ast.MapType [int int]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_27 dst src]}
	 {*ast.ReturnStmt [dst]}


function name is deriveClone1 
	 { [deriveClone1]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [src BuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [BuiltInTypes]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= dst]}
	 {*ast.CallExpr [new BuiltInTypes]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopyPtrToBuiltInTypes dst]}
	 {*ast.UnaryExpr [& src]}
	 {*ast.ReturnStmt -> *ast.StarExpr [dst]}


function name is deriveApplyMarshal 
	 { [deriveApplyMarshal]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [v]}
	 {*ast.InterfaceType []}
	 {*ast.FieldList -> *ast.FieldList -> *ast.Field -> *ast.ArrayType [byte]}
	 {*ast.Field [error]}
	 {*ast.Field [v]}
	 {*ast.InterfaceType []}
	 {*ast.FieldList -> *ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field -> *ast.ArrayType [byte]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field -> *ast.ArrayType [byte]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr [f v]}


function name is deriveApplyMultiple 
	 { [deriveApplyMultiple]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [a int]}
	 {*ast.Field [b string]}
	 {*ast.Field [c bool]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.Field [c bool]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [a int]}
	 {*ast.Field [b string]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [a int]}
	 {*ast.Field [b string]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr [f a b c]}


function name is deriveApply3 
	 { [deriveApply3]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [a string]}
	 {*ast.Field [b int]}
	 {*ast.Field [c bool]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.Field [c bool]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [a string]}
	 {*ast.Field [b int]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [a string]}
	 {*ast.Field [b int]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr [f a b c]}


function name is deriveApplyApplied 
	 { [deriveApplyApplied]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [a string]}
	 {*ast.Field [b int]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.Field [b int]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [a string]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [a string]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr [f a b]}


function name is deriveApplyBlankIdentifier 
	 { [deriveApplyBlankIdentifier]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [a string]}
	 {*ast.Field [param_1 bool]}
	 {*ast.Field [c int]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.Field [c int]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [a string]}
	 {*ast.Field [param_1 bool]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [a string]}
	 {*ast.Field [param_1 bool]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr [f a param_1 c]}


function name is deriveSortedInts 
	 { [deriveSortedInts]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType [int]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [int]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [sort Ints list]}
	 {*ast.ReturnStmt [list]}


function name is deriveSortInt64s 
	 { [deriveSortInt64s]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType [int64]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [int64]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [sort Slice list]}
	 {*ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [i j int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.IndexExpr [list i]}
	 {*ast.IndexExpr [list j]}
	 {*ast.ReturnStmt [list]}


function name is deriveSortStructs 
	 { [deriveSortStructs]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType -> *ast.StarExpr [BuiltInTypes]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType -> *ast.StarExpr [BuiltInTypes]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [sort Slice list]}
	 {*ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [i j int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [deriveComparePtrToBuiltInTypes]}
	 {*ast.IndexExpr [list i]}
	 {*ast.IndexExpr [list j]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt [list]}


function name is deriveSortedSliceIntAlias 
	 { [deriveSortedSliceIntAlias]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType [intAlias]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [intAlias]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [sort Slice list]}
	 {*ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [i j int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.IndexExpr [list i]}
	 {*ast.IndexExpr [list j]}
	 {*ast.ReturnStmt [list]}


function name is deriveSortedSliceStringAlias 
	 { [deriveSortedSliceStringAlias]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType [stringAlias]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [stringAlias]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [sort Slice list]}
	 {*ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [i j int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.IndexExpr [list i]}
	 {*ast.IndexExpr [list j]}
	 {*ast.ReturnStmt [list]}


function name is deriveSortedSliceFloat64Alias 
	 { [deriveSortedSliceFloat64Alias]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType [float64Alias]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [float64Alias]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [sort Slice list]}
	 {*ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [i j int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.IndexExpr [list i]}
	 {*ast.IndexExpr [list j]}
	 {*ast.ReturnStmt [list]}


function name is deriveSortedStrings 
	 { [deriveSortedStrings]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType [string]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [string]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [sort Strings list]}
	 {*ast.ReturnStmt [list]}


function name is deriveSortedStringKeyAlias 
	 { [deriveSortedStringKeyAlias]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType [stringKeyAlias]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [stringKeyAlias]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [sort Slice list]}
	 {*ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [i j int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.IndexExpr [list i]}
	 {*ast.IndexExpr [list j]}
	 {*ast.ReturnStmt [list]}


function name is deriveKeysForInt64s 
	 { [deriveKeysForInt64s]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [int64]}
	 {*ast.StructType -> *ast.FieldList -> *ast.FieldList -> *ast.Field -> *ast.ArrayType [int64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int64]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveKeysForFmap 
	 { [deriveKeysForFmap]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [int string]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveKeysForMapStringToString 
	 { [deriveKeysForMapStringToString]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [string string]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [string]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveKeysForMapStringAliasToString 
	 { [deriveKeysForMapStringAliasToString]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [stringKeyAlias string]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [stringKeyAlias]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [stringKeyAlias]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveKeysForMapStringToStringAlias 
	 { [deriveKeysForMapStringToStringAlias]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [string stringAlias]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [string]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveKeysForMapIntToInt64 
	 { [deriveKeysForMapIntToInt64]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [int int64]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveKeysForMapInt64ToInt64 
	 { [deriveKeysForMapInt64ToInt64]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [int64 int64]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [int64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int64]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveJoinSS 
	 { [deriveJoinSS]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [listOfLists]}
	 {*ast.ArrayType -> *ast.ArrayType [string]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [string]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== listOfLists nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [nil]}
	 {*ast.AssignStmt [:= l]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.RangeStmt [_ elem listOfLists]}
	 {*ast.BlockStmt -> *ast.AssignStmt [+= l]}
	 {*ast.CallExpr [len elem]}
	 {*ast.AssignStmt [:= res]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [string]}
	 {*ast.BasicLit [INT 0]}
	 { [l]}
	 {*ast.RangeStmt [_ elem listOfLists]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= res]}
	 {*ast.CallExpr [append res elem]}
	 {*ast.ReturnStmt [res]}


function name is deriveJoinEE 
	 { [deriveJoinEE]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [int64]}
	 {*ast.Field [error]}
	 {*ast.Field [err error]}
	 {*ast.FieldList -> *ast.Field [int64]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!= err nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 { [err]}
	 {*ast.ReturnStmt -> *ast.CallExpr [f]}


function name is deriveJoinChannels 
	 { [deriveJoinChannels]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [in]}
	 {*ast.ChanType -> *ast.ParenExpr -> *ast.ChanType [int]}
	 {*ast.FieldList -> *ast.Field -> *ast.ChanType [int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= out]}
	 {*ast.CallExpr [make]}
	 {*ast.ChanType [int]}
	 {*ast.GoStmt -> *ast.CallExpr -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.BlockStmt -> *ast.AssignStmt [:= wait]}
	 {*ast.CompositeLit -> *ast.SelectorExpr [sync WaitGroup]}
	 {*ast.RangeStmt [c in]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [wait Add]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.AssignStmt [:= res c]}
	 {*ast.GoStmt -> *ast.CallExpr -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.BlockStmt -> *ast.RangeStmt [r res]}
	 {*ast.BlockStmt -> *ast.SendStmt [out r]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [wait Done]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [wait Wait]}
	 {*ast.ExprStmt -> *ast.CallExpr [close out]}
	 {*ast.ReturnStmt [out]}


function name is deriveJoin 
	 { [deriveJoin]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [listOfLists]}
	 {*ast.ArrayType -> *ast.ArrayType [int]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== listOfLists nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [nil]}
	 {*ast.AssignStmt [:= l]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.RangeStmt [_ elem listOfLists]}
	 {*ast.BlockStmt -> *ast.AssignStmt [+= l]}
	 {*ast.CallExpr [len elem]}
	 {*ast.AssignStmt [:= res]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int]}
	 {*ast.BasicLit [INT 0]}
	 { [l]}
	 {*ast.RangeStmt [_ elem listOfLists]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= res]}
	 {*ast.CallExpr [append res elem]}
	 {*ast.ReturnStmt [res]}


function name is deriveJoinString 
	 { [deriveJoinString]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType [string]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [strings Join list]}
	 {*ast.BasicLit [STRING ""]}


function name is deriveJoinJustError 
	 { [deriveJoinJustError]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [error]}
	 {*ast.Field [err error]}
	 {*ast.FieldList -> *ast.Field [error]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!= err nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [err]}
	 {*ast.ReturnStmt -> *ast.CallExpr [f]}


function name is deriveJoinErrorAndString 
	 { [deriveJoinErrorAndString]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.Field [error]}
	 {*ast.Field [err error]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!= err nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [STRING ""]}
	 { [err]}
	 {*ast.ReturnStmt -> *ast.CallExpr [f]}


function name is deriveJoinErrorAndValues 
	 { [deriveJoinErrorAndValues]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.Field [int]}
	 {*ast.Field [error]}
	 {*ast.Field [err error]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.Field [int]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!= err nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [STRING ""]}
	 {*ast.BasicLit [INT 0]}
	 { [err]}
	 {*ast.ReturnStmt -> *ast.CallExpr [f]}


function name is deriveJoinSendRecvChannels 
	 { [deriveJoinSendRecvChannels]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [in]}
	 {*ast.ChanType -> *ast.ParenExpr -> *ast.ChanType [int64]}
	 {*ast.FieldList -> *ast.Field -> *ast.ChanType [int64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= out]}
	 {*ast.CallExpr [make]}
	 {*ast.ChanType [int64]}
	 {*ast.GoStmt -> *ast.CallExpr -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.BlockStmt -> *ast.AssignStmt [:= wait]}
	 {*ast.CompositeLit -> *ast.SelectorExpr [sync WaitGroup]}
	 {*ast.RangeStmt [c in]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [wait Add]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.AssignStmt [:= res c]}
	 {*ast.GoStmt -> *ast.CallExpr -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.BlockStmt -> *ast.RangeStmt [r res]}
	 {*ast.BlockStmt -> *ast.SendStmt [out r]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [wait Done]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [wait Wait]}
	 {*ast.ExprStmt -> *ast.CallExpr [close out]}
	 {*ast.ReturnStmt [out]}


function name is deriveJoinSliceOfRecvChannels 
	 { [deriveJoinSliceOfRecvChannels]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [in]}
	 {*ast.ArrayType -> *ast.ChanType [int]}
	 {*ast.FieldList -> *ast.Field -> *ast.ChanType [int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= out]}
	 {*ast.CallExpr [make]}
	 {*ast.ChanType [int]}
	 {*ast.GoStmt -> *ast.CallExpr -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.BlockStmt -> *ast.AssignStmt [:= wait]}
	 {*ast.CompositeLit -> *ast.SelectorExpr [sync WaitGroup]}
	 {*ast.RangeStmt [_ c in]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [wait Add]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.AssignStmt [:= res c]}
	 {*ast.GoStmt -> *ast.CallExpr -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.BlockStmt -> *ast.RangeStmt [r res]}
	 {*ast.BlockStmt -> *ast.SendStmt [out r]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [wait Done]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [wait Wait]}
	 {*ast.ExprStmt -> *ast.CallExpr [close out]}
	 {*ast.ReturnStmt [out]}


function name is deriveJoinSliceOfSendRecvChannels 
	 { [deriveJoinSliceOfSendRecvChannels]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [in]}
	 {*ast.ArrayType -> *ast.ChanType [int]}
	 {*ast.FieldList -> *ast.Field -> *ast.ChanType [int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= out]}
	 {*ast.CallExpr [make]}
	 {*ast.ChanType [int]}
	 {*ast.GoStmt -> *ast.CallExpr -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.BlockStmt -> *ast.AssignStmt [:= wait]}
	 {*ast.CompositeLit -> *ast.SelectorExpr [sync WaitGroup]}
	 {*ast.RangeStmt [_ c in]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [wait Add]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.AssignStmt [:= res c]}
	 {*ast.GoStmt -> *ast.CallExpr -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.BlockStmt -> *ast.RangeStmt [r res]}
	 {*ast.BlockStmt -> *ast.SendStmt [out r]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [wait Done]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [wait Wait]}
	 {*ast.ExprStmt -> *ast.CallExpr [close out]}
	 {*ast.ReturnStmt [out]}


function name is deriveJoinVariantOfSendRecvChannels 
	 { [deriveJoinVariantOfSendRecvChannels]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [c0]}
	 {*ast.ChanType [int]}
	 {*ast.Field [c1]}
	 {*ast.ChanType [int]}
	 {*ast.FieldList -> *ast.Field -> *ast.ChanType [int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= out]}
	 {*ast.CallExpr [make]}
	 {*ast.ChanType [int]}
	 {*ast.GoStmt -> *ast.CallExpr -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.BlockStmt -> *ast.ForStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [!= c0 nil]}
	 {*ast.BinaryExpr [!= c1 nil]}
	 {*ast.BlockStmt -> *ast.SelectStmt -> *ast.BlockStmt -> *ast.CommClause -> *ast.AssignStmt [:= v0 ok0]}
	 {*ast.UnaryExpr [<- c0]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [! ok0]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= c0 nil]}
	 {*ast.BlockStmt -> *ast.SendStmt [out v0]}
	 {*ast.CommClause -> *ast.AssignStmt [:= v1 ok1]}
	 {*ast.UnaryExpr [<- c1]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [! ok1]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= c1 nil]}
	 {*ast.BlockStmt -> *ast.SendStmt [out v1]}
	 {*ast.ExprStmt -> *ast.CallExpr [close out]}
	 {*ast.ReturnStmt [out]}


function name is deriveHashEmpty 
	 { [deriveHashEmpty]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [Empty]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 17]}


function name is deriveHashBuiltInTypes 
	 { [deriveHashBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [BuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_]}
	 {*ast.SelectorExpr [object Bool]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object Byte]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float64bits]}
	 {*ast.CallExpr [real]}
	 {*ast.SelectorExpr [object Complex128]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float64bits]}
	 {*ast.CallExpr [imag]}
	 {*ast.SelectorExpr [object Complex128]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr [uint64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float32bits]}
	 {*ast.CallExpr [real]}
	 {*ast.SelectorExpr [object Complex64]}
	 {*ast.CallExpr [uint64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float32bits]}
	 {*ast.CallExpr [imag]}
	 {*ast.SelectorExpr [object Complex64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float64bits]}
	 {*ast.SelectorExpr [object Float64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float32bits]}
	 {*ast.SelectorExpr [object Float32]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object Int]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object Int16]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object Int32]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object Int64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object Int8]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object Rune]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_s]}
	 {*ast.SelectorExpr [object String]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object Uint]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object Uint16]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object Uint32]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.SelectorExpr [object Uint64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object Uint8]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object UintPtr]}
	 {*ast.ReturnStmt [h]}


function name is deriveHashPtrToPrivateBuiltInTypes 
	 { [deriveHashPtrToPrivateBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [PrivateBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_]}
	 {*ast.SelectorExpr [object privateBool]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object privateByte]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float64bits]}
	 {*ast.CallExpr [real]}
	 {*ast.SelectorExpr [object privateComplex128]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float64bits]}
	 {*ast.CallExpr [imag]}
	 {*ast.SelectorExpr [object privateComplex128]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr [uint64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float32bits]}
	 {*ast.CallExpr [real]}
	 {*ast.SelectorExpr [object privateComplex64]}
	 {*ast.CallExpr [uint64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float32bits]}
	 {*ast.CallExpr [imag]}
	 {*ast.SelectorExpr [object privateComplex64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float64bits]}
	 {*ast.SelectorExpr [object privateFloat64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float32bits]}
	 {*ast.SelectorExpr [object privateFloat32]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object privateInt]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object privateInt16]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object privateInt32]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object privateInt64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object privateInt8]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object privateRune]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_s]}
	 {*ast.SelectorExpr [object privateString]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object privateUint]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object privateUint16]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object privateUint32]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.SelectorExpr [object privateUint64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object privateUint8]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object privateUintPtr]}
	 {*ast.ReturnStmt [h]}


function name is deriveHashPtrToBuiltInTypes 
	 { [deriveHashPtrToBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [PtrToBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_1]}
	 {*ast.SelectorExpr [object Bool]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_2]}
	 {*ast.SelectorExpr [object Byte]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_3]}
	 {*ast.SelectorExpr [object Complex128]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_4]}
	 {*ast.SelectorExpr [object Complex64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_5]}
	 {*ast.SelectorExpr [object Float64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_6]}
	 {*ast.SelectorExpr [object Float32]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHashPtrToint]}
	 {*ast.SelectorExpr [object Int]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_7]}
	 {*ast.SelectorExpr [object Int16]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_8]}
	 {*ast.SelectorExpr [object Int32]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_9]}
	 {*ast.SelectorExpr [object Int64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_10]}
	 {*ast.SelectorExpr [object Int8]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_8]}
	 {*ast.SelectorExpr [object Rune]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_11]}
	 {*ast.SelectorExpr [object String]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_12]}
	 {*ast.SelectorExpr [object Uint]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_13]}
	 {*ast.SelectorExpr [object Uint16]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_14]}
	 {*ast.SelectorExpr [object Uint32]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_15]}
	 {*ast.SelectorExpr [object Uint64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_2]}
	 {*ast.SelectorExpr [object Uint8]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_16]}
	 {*ast.SelectorExpr [object UintPtr]}
	 {*ast.ReturnStmt [h]}


function name is deriveHashSliceOfBuiltInTypes 
	 { [deriveHashSliceOfBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [SliceOfBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_17]}
	 {*ast.SelectorExpr [object Bool]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_18]}
	 {*ast.SelectorExpr [object Byte]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_19]}
	 {*ast.SelectorExpr [object Complex128]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_20]}
	 {*ast.SelectorExpr [object Complex64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_21]}
	 {*ast.SelectorExpr [object Float64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_22]}
	 {*ast.SelectorExpr [object Float32]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHashSliceOfint]}
	 {*ast.SelectorExpr [object Int]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_23]}
	 {*ast.SelectorExpr [object Int16]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_24]}
	 {*ast.SelectorExpr [object Int32]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_25]}
	 {*ast.SelectorExpr [object Int64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_26]}
	 {*ast.SelectorExpr [object Int8]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_24]}
	 {*ast.SelectorExpr [object Rune]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_27]}
	 {*ast.SelectorExpr [object String]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_28]}
	 {*ast.SelectorExpr [object Uint]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_29]}
	 {*ast.SelectorExpr [object Uint16]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_30]}
	 {*ast.SelectorExpr [object Uint32]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_31]}
	 {*ast.SelectorExpr [object Uint64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_18]}
	 {*ast.SelectorExpr [object Uint8]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_32]}
	 {*ast.SelectorExpr [object UintPtr]}
	 {*ast.ReturnStmt [h]}


function name is deriveHashSliceOfPtrToBuiltInTypes 
	 { [deriveHashSliceOfPtrToBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [SliceOfPtrToBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_33]}
	 {*ast.SelectorExpr [object Bool]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_34]}
	 {*ast.SelectorExpr [object Byte]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_35]}
	 {*ast.SelectorExpr [object Complex128]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_36]}
	 {*ast.SelectorExpr [object Complex64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_37]}
	 {*ast.SelectorExpr [object Float64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_38]}
	 {*ast.SelectorExpr [object Float32]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_39]}
	 {*ast.SelectorExpr [object Int]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_40]}
	 {*ast.SelectorExpr [object Int16]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_41]}
	 {*ast.SelectorExpr [object Int32]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_42]}
	 {*ast.SelectorExpr [object Int64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_43]}
	 {*ast.SelectorExpr [object Int8]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_41]}
	 {*ast.SelectorExpr [object Rune]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_44]}
	 {*ast.SelectorExpr [object String]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_45]}
	 {*ast.SelectorExpr [object Uint]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_46]}
	 {*ast.SelectorExpr [object Uint16]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_47]}
	 {*ast.SelectorExpr [object Uint32]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_48]}
	 {*ast.SelectorExpr [object Uint64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_34]}
	 {*ast.SelectorExpr [object Uint8]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_49]}
	 {*ast.SelectorExpr [object UintPtr]}
	 {*ast.ReturnStmt [h]}


function name is deriveHashArrayOfBuiltInTypes 
	 { [deriveHashArrayOfBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [ArrayOfBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_50]}
	 {*ast.SelectorExpr [object Bool]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_51]}
	 {*ast.SelectorExpr [object Byte]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_52]}
	 {*ast.SelectorExpr [object Complex128]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_53]}
	 {*ast.SelectorExpr [object Complex64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_54]}
	 {*ast.SelectorExpr [object Float64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_55]}
	 {*ast.SelectorExpr [object Float32]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_56]}
	 {*ast.SelectorExpr [object Int]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_57]}
	 {*ast.SelectorExpr [object Int16]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_58]}
	 {*ast.SelectorExpr [object Int32]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_59]}
	 {*ast.SelectorExpr [object Int64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_60]}
	 {*ast.SelectorExpr [object Int8]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_61]}
	 {*ast.SelectorExpr [object Rune]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_62]}
	 {*ast.SelectorExpr [object String]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_63]}
	 {*ast.SelectorExpr [object Uint]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_64]}
	 {*ast.SelectorExpr [object Uint16]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_65]}
	 {*ast.SelectorExpr [object Uint32]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_66]}
	 {*ast.SelectorExpr [object Uint64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_67]}
	 {*ast.SelectorExpr [object Uint8]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_68]}
	 {*ast.SelectorExpr [object UintPtr]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_69]}
	 {*ast.SelectorExpr [object AnotherBoolOfDifferentSize]}
	 {*ast.ReturnStmt [h]}


function name is deriveHashArrayOfPtrToBuiltInTypes 
	 { [deriveHashArrayOfPtrToBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [ArrayOfPtrToBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_70]}
	 {*ast.SelectorExpr [object Bool]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_71]}
	 {*ast.SelectorExpr [object Byte]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_72]}
	 {*ast.SelectorExpr [object Complex128]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_73]}
	 {*ast.SelectorExpr [object Complex64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_74]}
	 {*ast.SelectorExpr [object Float64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_75]}
	 {*ast.SelectorExpr [object Float32]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_76]}
	 {*ast.SelectorExpr [object Int]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_77]}
	 {*ast.SelectorExpr [object Int16]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_78]}
	 {*ast.SelectorExpr [object Int32]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_79]}
	 {*ast.SelectorExpr [object Int64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_80]}
	 {*ast.SelectorExpr [object Int8]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_81]}
	 {*ast.SelectorExpr [object Rune]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_82]}
	 {*ast.SelectorExpr [object String]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_83]}
	 {*ast.SelectorExpr [object Uint]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_84]}
	 {*ast.SelectorExpr [object Uint16]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_85]}
	 {*ast.SelectorExpr [object Uint32]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_86]}
	 {*ast.SelectorExpr [object Uint64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_87]}
	 {*ast.SelectorExpr [object Uint8]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_88]}
	 {*ast.SelectorExpr [object UintPtr]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_89]}
	 {*ast.SelectorExpr [object AnotherBoolOfDifferentSize]}
	 {*ast.ReturnStmt [h]}


function name is deriveHashMapsOfSimplerBuiltInTypes 
	 { [deriveHashMapsOfSimplerBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [MapsOfSimplerBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_90]}
	 {*ast.SelectorExpr [object StringToUint32]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_91]}
	 {*ast.SelectorExpr [object Uint64ToInt64]}
	 {*ast.ReturnStmt [h]}


function name is deriveHashMapsOfBuiltInTypes 
	 { [deriveHashMapsOfBuiltInTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [MapsOfBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_92]}
	 {*ast.SelectorExpr [object BoolToString]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_93]}
	 {*ast.SelectorExpr [object StringToBool]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_94]}
	 {*ast.SelectorExpr [object Complex128ToComplex64]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_95]}
	 {*ast.SelectorExpr [object Float64ToUint32]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_96]}
	 {*ast.SelectorExpr [object Uint16ToUint8]}
	 {*ast.ReturnStmt [h]}


function name is deriveHashSliceToSlice 
	 { [deriveHashSliceToSlice]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [SliceToSlice]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_97]}
	 {*ast.SelectorExpr [object Ints]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_98]}
	 {*ast.SelectorExpr [object Strings]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_99]}
	 {*ast.SelectorExpr [object IntPtrs]}
	 {*ast.ReturnStmt [h]}


function name is deriveHashPtrTo 
	 { [deriveHashPtrTo]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [PtrTo]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHashPtrToint]}
	 {*ast.SelectorExpr [object Basic]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHashPtrToSliceOfint]}
	 {*ast.SelectorExpr [object Slice]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_100]}
	 {*ast.SelectorExpr [object Array]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHashPtrToMapOfintToint]}
	 {*ast.SelectorExpr [object Map]}
	 {*ast.ReturnStmt [h]}


function name is deriveHashName 
	 { [deriveHashName]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [Name]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_s]}
	 {*ast.SelectorExpr [object Name]}
	 {*ast.ReturnStmt [h]}


function name is deriveHashStructs 
	 { [deriveHashStructs]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [Structs]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_N]}
	 {*ast.SelectorExpr [object Struct]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHashName]}
	 {*ast.SelectorExpr [object PtrToStruct]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_101]}
	 {*ast.SelectorExpr [object SliceOfStructs]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_102]}
	 {*ast.SelectorExpr [object SliceToPtrOfStruct]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_S]}
	 {*ast.SelectorExpr [object StructWithoutMethod]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_103]}
	 {*ast.SelectorExpr [object PtrToStructWithoutMethod]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_104]}
	 {*ast.SelectorExpr [object SliceOfStructWithoutMethod]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_105]}
	 {*ast.SelectorExpr [object SliceToPtrOfStructWithoutMethod]}
	 {*ast.ReturnStmt [h]}


function name is deriveHashMapWithStructs 
	 { [deriveHashMapWithStructs]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [MapWithStructs]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_106]}
	 {*ast.SelectorExpr [object NameToString]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_107]}
	 {*ast.SelectorExpr [object StringToName]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_108]}
	 {*ast.SelectorExpr [object StringToPtrToName]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_109]}
	 {*ast.SelectorExpr [object StringToSliceOfName]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_110]}
	 {*ast.SelectorExpr [object StringToSliceOfPtrToName]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_111]}
	 {*ast.SelectorExpr [object StringToStructWithoutMethod]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_112]}
	 {*ast.SelectorExpr [object StructWithoutMethodToString]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_113]}
	 {*ast.SelectorExpr [object StringToPtrToStructWithoutMethod]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_114]}
	 {*ast.SelectorExpr [object StringToSliceOfStructWithoutMethod]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_115]}
	 {*ast.SelectorExpr [object StringToSliceOfPtrToStructWithoutMethod]}
	 {*ast.ReturnStmt [h]}


function name is deriveHashRecursiveType 
	 { [deriveHashRecursiveType]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [RecursiveType]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_18]}
	 {*ast.SelectorExpr [object Bytes]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_116]}
	 {*ast.SelectorExpr [object N]}
	 {*ast.ReturnStmt [h]}


function name is deriveHashEmbeddedStruct1 
	 { [deriveHashEmbeddedStruct1]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [EmbeddedStruct1]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_N]}
	 {*ast.SelectorExpr [object Name]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_S]}
	 {*ast.SelectorExpr [object StructWithoutMethod]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHashStructs]}
	 {*ast.SelectorExpr [object Structs]}
	 {*ast.ReturnStmt [h]}


function name is deriveHashEmbeddedStruct2 
	 { [deriveHashEmbeddedStruct2]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [EmbeddedStruct2]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_St]}
	 {*ast.SelectorExpr [object Structs]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHashName]}
	 {*ast.SelectorExpr [object Name]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_103]}
	 {*ast.SelectorExpr [object StructWithoutMethod]}
	 {*ast.ReturnStmt [h]}


function name is deriveHashStructWithStructFieldWithoutEqualMethod 
	 { [deriveHashStructWithStructFieldWithoutEqualMethod]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [StructWithStructFieldWithoutEqualMethod]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_117]}
	 {*ast.SelectorExpr [object A]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_Str]}
	 {*ast.SelectorExpr [object B]}
	 {*ast.ReturnStmt [h]}


function name is deriveHashStructWithStructWithFromAnotherPackage 
	 { [deriveHashStructWithStructWithFromAnotherPackage]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [StructWithStructWithFromAnotherPackage]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_118]}
	 {*ast.SelectorExpr [object A]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_Stru]}
	 {*ast.SelectorExpr [object B]}
	 {*ast.ReturnStmt [h]}


function name is deriveHashEnums 
	 { [deriveHashEnums]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [Enums]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object Enum]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_119]}
	 {*ast.SelectorExpr [object PtrToEnum]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_120]}
	 {*ast.SelectorExpr [object SliceToEnum]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_121]}
	 {*ast.SelectorExpr [object SliceToPtrToEnum]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_122]}
	 {*ast.SelectorExpr [object MapToEnum]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_123]}
	 {*ast.SelectorExpr [object EnumToMap]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_124]}
	 {*ast.SelectorExpr [object ArrayEnum]}
	 {*ast.ReturnStmt [h]}


function name is deriveHashNamedTypes 
	 { [deriveHashNamedTypes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [NamedTypes]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_25]}
	 {*ast.SelectorExpr [object Slice]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_125]}
	 {*ast.SelectorExpr [object PtrToSlice]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_126]}
	 {*ast.SelectorExpr [object SliceToSlice]}
	 {*ast.ReturnStmt [h]}


function name is deriveHashDuration 
	 { [deriveHashDuration]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [Duration]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object D]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_127]}
	 {*ast.SelectorExpr [object P]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_128]}
	 {*ast.SelectorExpr [object Ds]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_129]}
	 {*ast.SelectorExpr [object DPs]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_130]}
	 {*ast.SelectorExpr [object MD]}
	 {*ast.ReturnStmt [h]}


function name is deriveHashNickname 
	 { [deriveHashNickname]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [Nickname]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_131]}
	 {*ast.SelectorExpr [object Alias]}
	 {*ast.ReturnStmt [h]}


function name is deriveHashPrivateEmbedded 
	 { [deriveHashPrivateEmbedded]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [PrivateEmbedded]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_p]}
	 {*ast.SelectorExpr [object privateStruct]}
	 {*ast.ReturnStmt [h]}


function name is deriveHashSliceOfint 
	 { [deriveHashSliceOfint]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType [int]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHashMapOfintToint 
	 { [deriveHashMapOfintToint]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.MapType [int int]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.RangeStmt [_ k]}
	 {*ast.CallExpr [deriveSortedInts]}
	 {*ast.CallExpr [deriveKeys object]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64 k]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object k]}
	 {*ast.ReturnStmt [h]}


function name is deriveHashPtrToint 
	 { [deriveHashPtrToint]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [int]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr [uint64]}
	 {*ast.StarExpr [object]}


function name is deriveHashPtrToSliceOfint 
	 { [deriveHashPtrToSliceOfint]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr -> *ast.ArrayType [int]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr [deriveHashSliceOfint]}
	 {*ast.StarExpr [object]}


function name is deriveHashPtrToArray10Ofint 
	 { [deriveHashPtrToArray10Ofint]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr -> *ast.ArrayType -> *ast.BasicLit [INT 10]}
	 { [int]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr [deriveHash_132]}
	 {*ast.StarExpr [object]}


function name is deriveHashPtrToMapOfintToint 
	 { [deriveHashPtrToMapOfintToint]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr -> *ast.MapType [int int]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr [deriveHashMapOfintToint]}
	 {*ast.StarExpr [object]}


function name is deriveHash1 
	 { [deriveHash1]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object BuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr [deriveHashBuiltInTypes]}
	 {*ast.UnaryExpr [& object]}


function name is deriveHash 
	 { [deriveHash]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object PtrToBuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr [deriveHashPtrToBuiltInTypes]}
	 {*ast.UnaryExpr [& object]}


function name is deriveFmapForKeys 
	 { [deriveFmapForKeys]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [int]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.Field [list]}
	 {*ast.ArrayType [int]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= out]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [string]}
	 {*ast.CallExpr [len list]}
	 {*ast.RangeStmt [i elem list]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [out i]}
	 {*ast.CallExpr [f elem]}
	 {*ast.ReturnStmt [out]}


function name is deriveFmap 
	 { [deriveFmap]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [list]}
	 {*ast.ArrayType [int]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= out]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int]}
	 {*ast.CallExpr [len list]}
	 {*ast.RangeStmt [i elem list]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [out i]}
	 {*ast.CallExpr [f elem]}
	 {*ast.ReturnStmt [out]}


function name is deriveFmapString 
	 { [deriveFmapString]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [rune]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.Field [ss string]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [bool]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= out]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [bool]}
	 {*ast.CallExpr [len]}
	 {*ast.CallExpr -> *ast.ArrayType [rune ss]}
	 {*ast.RangeStmt [i elem ss]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [out i]}
	 {*ast.CallExpr [f elem]}
	 {*ast.ReturnStmt [out]}


function name is deriveFmapError 
	 { [deriveFmapError]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [int]}
	 {*ast.FieldList -> *ast.Field [int64]}
	 {*ast.Field [g]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [error]}
	 {*ast.FieldList -> *ast.Field [int64]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= v err]}
	 {*ast.CallExpr [g]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!= err nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 { [err]}
	 {*ast.ReturnStmt -> *ast.CallExpr [f v nil]}


function name is deriveFmapEE 
	 { [deriveFmapEE]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [error]}
	 {*ast.Field [g]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.Field [error]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [error]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= v err]}
	 {*ast.CallExpr [g]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!= err nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [nil err]}
	 {*ast.ReturnStmt -> *ast.CallExpr [deriveTuple]}
	 {*ast.CallExpr [f v nil]}


function name is deriveFmapPrint 
	 { [deriveFmapPrint]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.Field [g]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.Field [error]}
	 {*ast.FieldList -> *ast.Field [error]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= v err]}
	 {*ast.CallExpr [g]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!= err nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [err]}
	 {*ast.ExprStmt -> *ast.CallExpr [f v]}
	 {*ast.ReturnStmt [nil]}


function name is deriveFmapMore 
	 { [deriveFmapMore]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [string]}
	 {*ast.Field [error]}
	 {*ast.Field [g]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.Field [error]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [string]}
	 {*ast.Field [error]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= v err]}
	 {*ast.CallExpr [g]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!= err nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [nil err]}
	 {*ast.ReturnStmt -> *ast.CallExpr [deriveTuple_]}
	 {*ast.CallExpr [f v nil]}


function name is deriveFmapChan 
	 { [deriveFmapChan]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [in]}
	 {*ast.ChanType [string]}
	 {*ast.FieldList -> *ast.Field -> *ast.ChanType [int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= out]}
	 {*ast.CallExpr [make]}
	 {*ast.ChanType [int]}
	 {*ast.CallExpr [cap in]}
	 {*ast.GoStmt -> *ast.CallExpr -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.BlockStmt -> *ast.RangeStmt [a in]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= b]}
	 {*ast.CallExpr [f a]}
	 {*ast.SendStmt [out b]}
	 {*ast.ExprStmt -> *ast.CallExpr [close out]}
	 {*ast.ReturnStmt [out]}


function name is deriveFmapSS 
	 { [deriveFmapSS]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [string]}
	 {*ast.Field [list]}
	 {*ast.ArrayType [string]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType -> *ast.ArrayType [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= out]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.ArrayType [string]}
	 {*ast.CallExpr [len list]}
	 {*ast.RangeStmt [i elem list]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [out i]}
	 {*ast.CallExpr [f elem]}
	 {*ast.ReturnStmt [out]}


function name is deriveFmapEE64 
	 { [deriveFmapEE64]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.FieldList -> *ast.Field [int64]}
	 {*ast.Field [error]}
	 {*ast.Field [g]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.Field [error]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [int64]}
	 {*ast.Field [error]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= v err]}
	 {*ast.CallExpr [g]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!= err nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [nil err]}
	 {*ast.ReturnStmt -> *ast.CallExpr [deriveTuple_i]}
	 {*ast.CallExpr [f v nil]}


function name is deriveFmapChanChan 
	 { [deriveFmapChanChan]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.FieldList -> *ast.Field -> *ast.ChanType [int]}
	 {*ast.Field [in]}
	 {*ast.ChanType [string]}
	 {*ast.FieldList -> *ast.Field -> *ast.ChanType -> *ast.ParenExpr -> *ast.ChanType [int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= out]}
	 {*ast.CallExpr [make]}
	 {*ast.ChanType -> *ast.ParenExpr -> *ast.ChanType [int]}
	 {*ast.CallExpr [cap in]}
	 {*ast.GoStmt -> *ast.CallExpr -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.BlockStmt -> *ast.RangeStmt [a in]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= b]}
	 {*ast.CallExpr [f a]}
	 {*ast.SendStmt [out b]}
	 {*ast.ExprStmt -> *ast.CallExpr [close out]}
	 {*ast.ReturnStmt [out]}


function name is deriveFlipMarshal 
	 { [deriveFlipMarshal]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [data]}
	 {*ast.ArrayType [byte]}
	 {*ast.Field [v]}
	 {*ast.InterfaceType []}
	 {*ast.FieldList -> *ast.FieldList -> *ast.Field [error]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [v]}
	 {*ast.InterfaceType []}
	 {*ast.FieldList -> *ast.Field [data]}
	 {*ast.ArrayType [byte]}
	 {*ast.FieldList -> *ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [v]}
	 {*ast.InterfaceType []}
	 {*ast.FieldList -> *ast.Field [data]}
	 {*ast.ArrayType [byte]}
	 {*ast.FieldList -> *ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr [f data v]}


function name is deriveFlip3 
	 { [deriveFlip3]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [a int]}
	 {*ast.Field [b string]}
	 {*ast.Field [c bool]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [b string]}
	 {*ast.Field [a int]}
	 {*ast.Field [c bool]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [b string]}
	 {*ast.Field [a int]}
	 {*ast.Field [c bool]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr [f a b c]}


function name is deriveFlipBlankIdentifier 
	 { [deriveFlipBlankIdentifier]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [a string]}
	 {*ast.Field [param_1 bool]}
	 {*ast.Field [c int]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [param_1 bool]}
	 {*ast.Field [a string]}
	 {*ast.Field [c int]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [param_1 bool]}
	 {*ast.Field [a string]}
	 {*ast.Field [c int]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr [f a param_1 c]}


function name is deriveSetInt64s 
	 { [deriveSetInt64s]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType [int64]}
	 {*ast.FieldList -> *ast.Field -> *ast.MapType [int64]}
	 {*ast.StructType -> *ast.FieldList -> *ast.BlockStmt -> *ast.AssignStmt [:= set]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [int64]}
	 {*ast.StructType -> *ast.FieldList -> *ast.CallExpr [len list]}
	 {*ast.RangeStmt [_ v list]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [set v]}
	 {*ast.CompositeLit -> *ast.StructType -> *ast.FieldList -> *ast.ReturnStmt [set]}


function name is deriveMinInt64s 
	 { [deriveMinInt64s]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType [int64]}
	 {*ast.Field [def int64]}
	 {*ast.FieldList -> *ast.Field [int64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.CallExpr [len list]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [def]}
	 {*ast.AssignStmt [:= m]}
	 {*ast.IndexExpr [list]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [= list]}
	 {*ast.SliceExpr [list]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.RangeStmt [i v list]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [< v m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= m]}
	 {*ast.IndexExpr [list i]}
	 {*ast.ReturnStmt [m]}


function name is deriveMinInt 
	 { [deriveMinInt]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [a b int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [< a b]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [a]}
	 {*ast.ReturnStmt [b]}


function name is deriveMinStructs 
	 { [deriveMinStructs]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType -> *ast.StarExpr [BuiltInTypes]}
	 {*ast.Field [def]}
	 {*ast.StarExpr [BuiltInTypes]}
	 {*ast.FieldList -> *ast.Field -> *ast.StarExpr [BuiltInTypes]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.CallExpr [len list]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [def]}
	 {*ast.AssignStmt [:= m]}
	 {*ast.IndexExpr [list]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [= list]}
	 {*ast.SliceExpr [list]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.RangeStmt [i v list]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [deriveComparePtrToBuiltInTypes v m]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= m]}
	 {*ast.IndexExpr [list i]}
	 {*ast.ReturnStmt [m]}


function name is deriveMemGet 
	 { [deriveMemGet]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field -> *ast.StarExpr [BuiltInTypes]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field -> *ast.StarExpr [BuiltInTypes]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= memoized false]}
	 {*ast.GenDecl -> *ast.ValueSpec [res0]}
	 {*ast.StarExpr [BuiltInTypes]}
	 {*ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field -> *ast.StarExpr [BuiltInTypes]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [! memoized]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= res0]}
	 {*ast.CallExpr [f]}
	 {*ast.AssignStmt [= memoized true]}
	 {*ast.ReturnStmt [res0]}


function name is deriveMemInc 
	 { [deriveMemInc]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [n int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [n int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= m]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [int int]}
	 {*ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [param0 int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= v ok]}
	 {*ast.IndexExpr [m param0 ok]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [v]}
	 {*ast.AssignStmt [:= v]}
	 {*ast.CallExpr [f param0]}
	 {*ast.AssignStmt [=]}
	 {*ast.IndexExpr [m param0 v]}
	 {*ast.ReturnStmt [v]}


function name is deriveMemIncTo 
	 { [deriveMemIncTo]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [a Adder]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [a Adder]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= m]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [Adder int]}
	 {*ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [param0 Adder]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= v ok]}
	 {*ast.IndexExpr [m param0 ok]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [v]}
	 {*ast.AssignStmt [:= v]}
	 {*ast.CallExpr [f param0]}
	 {*ast.AssignStmt [=]}
	 {*ast.IndexExpr [m param0 v]}
	 {*ast.ReturnStmt [v]}


function name is deriveMemAdd 
	 { [deriveMemAdd]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [a int]}
	 {*ast.Field [b int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [a int]}
	 {*ast.Field [b int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.GenDecl -> *ast.TypeSpec [input]}
	 {*ast.StructType -> *ast.FieldList -> *ast.Field [Param0 int]}
	 {*ast.Field [Param1 int]}
	 {*ast.AssignStmt [:= m]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [input int]}
	 {*ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [param0 int]}
	 {*ast.Field [param1 int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= in]}
	 {*ast.CompositeLit [input param0 param1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= v ok]}
	 {*ast.IndexExpr [m in ok]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [v]}
	 {*ast.AssignStmt [:= v]}
	 {*ast.CallExpr [f param0 param1]}
	 {*ast.AssignStmt [=]}
	 {*ast.IndexExpr [m in v]}
	 {*ast.ReturnStmt [v]}


function name is deriveMemAddTo 
	 { [deriveMemAddTo]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [a Adder]}
	 {*ast.Field [b int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [a Adder]}
	 {*ast.Field [b int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.GenDecl -> *ast.TypeSpec [input]}
	 {*ast.StructType -> *ast.FieldList -> *ast.Field [Param0 Adder]}
	 {*ast.Field [Param1 int]}
	 {*ast.AssignStmt [:= m]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [input int]}
	 {*ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [param0 Adder]}
	 {*ast.Field [param1 int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= in]}
	 {*ast.CompositeLit [input param0 param1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= v ok]}
	 {*ast.IndexExpr [m in ok]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [v]}
	 {*ast.AssignStmt [:= v]}
	 {*ast.CallExpr [f param0 param1]}
	 {*ast.AssignStmt [=]}
	 {*ast.IndexExpr [m in v]}
	 {*ast.ReturnStmt [v]}


function name is deriveMemSet 
	 { [deriveMemSet]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [a]}
	 {*ast.StarExpr [BuiltInTypes]}
	 {*ast.Field [b int]}
	 {*ast.FieldList -> *ast.Field -> *ast.StarExpr [BuiltInTypes]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [a]}
	 {*ast.StarExpr [BuiltInTypes]}
	 {*ast.Field [b int]}
	 {*ast.FieldList -> *ast.Field -> *ast.StarExpr [BuiltInTypes]}
	 {*ast.BlockStmt -> *ast.GenDecl -> *ast.TypeSpec [input]}
	 {*ast.StructType -> *ast.FieldList -> *ast.Field [Param0]}
	 {*ast.StarExpr [BuiltInTypes]}
	 {*ast.Field [Param1 int]}
	 {*ast.GenDecl -> *ast.TypeSpec [mem]}
	 {*ast.StructType -> *ast.FieldList -> *ast.Field [in input]}
	 {*ast.Field [out]}
	 {*ast.StarExpr [BuiltInTypes]}
	 {*ast.AssignStmt [:= m]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [uint64]}
	 {*ast.ArrayType [mem]}
	 {*ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [param0]}
	 {*ast.StarExpr [BuiltInTypes]}
	 {*ast.Field [param1 int]}
	 {*ast.FieldList -> *ast.Field -> *ast.StarExpr [BuiltInTypes]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= in]}
	 {*ast.CompositeLit [input param0 param1]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [deriveHash_133 in]}
	 {*ast.AssignStmt [:= vs ok]}
	 {*ast.IndexExpr [m h]}
	 {*ast.IfStmt [ok]}
	 {*ast.BlockStmt -> *ast.RangeStmt [_ v vs]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.CallExpr [deriveEqual_97]}
	 {*ast.SelectorExpr [v in in]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.SelectorExpr [v out]}
	 {*ast.AssignStmt [:= res0]}
	 {*ast.CallExpr [f param0 param1]}
	 {*ast.AssignStmt [=]}
	 {*ast.IndexExpr [m h]}
	 {*ast.CallExpr [append]}
	 {*ast.IndexExpr [m h]}
	 {*ast.CompositeLit [mem in res0]}
	 {*ast.ReturnStmt [res0]}


function name is deriveMemSetErr 
	 { [deriveMemSetErr]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [a]}
	 {*ast.StarExpr [BuiltInTypes]}
	 {*ast.Field [b int]}
	 {*ast.FieldList -> *ast.Field -> *ast.StarExpr [BuiltInTypes]}
	 {*ast.Field [error]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.Field [a]}
	 {*ast.StarExpr [BuiltInTypes]}
	 {*ast.Field [b int]}
	 {*ast.FieldList -> *ast.Field -> *ast.StarExpr [BuiltInTypes]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.GenDecl -> *ast.TypeSpec [input]}
	 {*ast.StructType -> *ast.FieldList -> *ast.Field [Param0]}
	 {*ast.StarExpr [BuiltInTypes]}
	 {*ast.Field [Param1 int]}
	 {*ast.GenDecl -> *ast.TypeSpec [output]}
	 {*ast.StructType -> *ast.FieldList -> *ast.Field [Res0]}
	 {*ast.StarExpr [BuiltInTypes]}
	 {*ast.Field [Res1 error]}
	 {*ast.GenDecl -> *ast.TypeSpec [mem]}
	 {*ast.StructType -> *ast.FieldList -> *ast.Field [in input]}
	 {*ast.Field [out output]}
	 {*ast.AssignStmt [:= m]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [uint64]}
	 {*ast.ArrayType [mem]}
	 {*ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [param0]}
	 {*ast.StarExpr [BuiltInTypes]}
	 {*ast.Field [param1 int]}
	 {*ast.FieldList -> *ast.Field -> *ast.StarExpr [BuiltInTypes]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= in]}
	 {*ast.CompositeLit [input param0 param1]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [deriveHash_133 in]}
	 {*ast.AssignStmt [:= vs ok]}
	 {*ast.IndexExpr [m h]}
	 {*ast.IfStmt [ok]}
	 {*ast.BlockStmt -> *ast.RangeStmt [_ v vs]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.CallExpr [deriveEqual_97]}
	 {*ast.SelectorExpr [v in in]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.SelectorExpr -> *ast.SelectorExpr [v out Res0]}
	 {*ast.SelectorExpr -> *ast.SelectorExpr [v out Res1]}
	 {*ast.AssignStmt [:= res0 res1]}
	 {*ast.CallExpr [f param0 param1]}
	 {*ast.AssignStmt [=]}
	 {*ast.IndexExpr [m h]}
	 {*ast.CallExpr [append]}
	 {*ast.IndexExpr [m h]}
	 {*ast.CompositeLit [mem in]}
	 {*ast.CompositeLit [output res0 res1]}
	 {*ast.ReturnStmt [res0 res1]}


function name is deriveMaxInt64s 
	 { [deriveMaxInt64s]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType [int64]}
	 {*ast.Field [def int64]}
	 {*ast.FieldList -> *ast.Field [int64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.CallExpr [len list]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [def]}
	 {*ast.AssignStmt [:= m]}
	 {*ast.IndexExpr [list]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [= list]}
	 {*ast.SliceExpr [list]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.RangeStmt [i v list]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [> v m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= m]}
	 {*ast.IndexExpr [list i]}
	 {*ast.ReturnStmt [m]}


function name is deriveMaxInt 
	 { [deriveMaxInt]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [a b int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [> a b]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [a]}
	 {*ast.ReturnStmt [b]}


function name is deriveMaxStructs 
	 { [deriveMaxStructs]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType -> *ast.StarExpr [BuiltInTypes]}
	 {*ast.Field [def]}
	 {*ast.StarExpr [BuiltInTypes]}
	 {*ast.FieldList -> *ast.Field -> *ast.StarExpr [BuiltInTypes]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.CallExpr [len list]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [def]}
	 {*ast.AssignStmt [:= m]}
	 {*ast.IndexExpr [list]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [= list]}
	 {*ast.SliceExpr [list]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.RangeStmt [i v list]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [deriveComparePtrToBuiltInTypes v m]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= m]}
	 {*ast.IndexExpr [list i]}
	 {*ast.ReturnStmt [m]}


function name is deriveDup 
	 { [deriveDup]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [c]}
	 {*ast.ChanType [int]}
	 {*ast.FieldList -> *ast.Field [c1 c2]}
	 {*ast.ChanType [int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= cc1 cc2]}
	 {*ast.CallExpr [make]}
	 {*ast.ChanType [int]}
	 {*ast.CallExpr [cap c]}
	 {*ast.CallExpr [make]}
	 {*ast.ChanType [int]}
	 {*ast.CallExpr [cap c]}
	 {*ast.GoStmt -> *ast.CallExpr -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.BlockStmt -> *ast.RangeStmt [v c]}
	 {*ast.BlockStmt -> *ast.SendStmt [cc1 v]}
	 {*ast.SendStmt [cc2 v]}
	 {*ast.ExprStmt -> *ast.CallExpr [close cc1]}
	 {*ast.ExprStmt -> *ast.CallExpr [close cc2]}
	 {*ast.ReturnStmt [cc1 cc2]}


function name is deriveAny 
	 { [deriveAny]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [pred]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.Field [list]}
	 {*ast.ArrayType [int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.RangeStmt [_ elem list]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.CallExpr [pred elem]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [true]}
	 {*ast.ReturnStmt [false]}


function name is deriveAnyEqualCurry 
	 { [deriveAnyEqualCurry]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [pred]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field -> *ast.StarExpr [BuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.Field [list]}
	 {*ast.ArrayType -> *ast.StarExpr [BuiltInTypes]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.RangeStmt [_ elem list]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.CallExpr [pred elem]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [true]}
	 {*ast.ReturnStmt [false]}


function name is deriveAll 
	 { [deriveAll]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [predicate]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.Field [slice]}
	 {*ast.ArrayType [int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.RangeStmt [_ elem slice]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.CallExpr [predicate elem]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveDo 
	 { [deriveDo]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [f0]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.Field [error]}
	 {*ast.Field [f1]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [error]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.Field [int]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= errChan]}
	 {*ast.CallExpr [make]}
	 {*ast.ChanType [error]}
	 {*ast.GenDecl -> *ast.ValueSpec [v0 string]}
	 {*ast.GoStmt -> *ast.CallExpr -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.BlockStmt -> *ast.GenDecl -> *ast.ValueSpec [v0err error]}
	 {*ast.AssignStmt [= v0 v0err]}
	 {*ast.CallExpr [f0]}
	 {*ast.SendStmt [errChan v0err]}
	 {*ast.GenDecl -> *ast.ValueSpec [v1 int]}
	 {*ast.GoStmt -> *ast.CallExpr -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.BlockStmt -> *ast.GenDecl -> *ast.ValueSpec [v1err error]}
	 {*ast.AssignStmt [= v1 v1err]}
	 {*ast.CallExpr [f1]}
	 {*ast.SendStmt [errChan v1err]}
	 {*ast.GenDecl -> *ast.ValueSpec [err error]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.BasicLit [INT 2]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= errc]}
	 {*ast.UnaryExpr [<- errChan]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!= errc nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== err nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= err errc]}
	 {*ast.ReturnStmt [v0 v1 err]}


function name is deriveGoString 
	 { [deriveGoString]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.StarExpr [bool]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []*bool {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([]*bool, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_71]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_ 
	 { [deriveGoString_]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.StarExpr [byte]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []*byte {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([]*byte, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_72]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_1 
	 { [deriveGoString_1]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.StarExpr [complex128]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []*complex128 {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([]*complex128, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_73]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_2 
	 { [deriveGoString_2]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.StarExpr [complex64]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []*complex64 {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([]*complex64, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_74]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_3 
	 { [deriveGoString_3]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.StarExpr [float64]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []*float64 {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([]*float64, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_75]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_4 
	 { [deriveGoString_4]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.StarExpr [float32]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []*float32 {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([]*float32, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_76]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_5 
	 { [deriveGoString_5]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.StarExpr [int]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []*int {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([]*int, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoStringIntPtr]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_6 
	 { [deriveGoString_6]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.StarExpr [int16]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []*int16 {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([]*int16, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_77]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_7 
	 { [deriveGoString_7]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.StarExpr [int32]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []*int32 {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([]*int32, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_78]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_8 
	 { [deriveGoString_8]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []*int64 {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([]*int64, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_79]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_9 
	 { [deriveGoString_9]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.StarExpr [int8]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []*int8 {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([]*int8, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_80]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_10 
	 { [deriveGoString_10]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.StarExpr [string]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []*string {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([]*string, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_81]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_11 
	 { [deriveGoString_11]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.StarExpr [uint]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []*uint {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([]*uint, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_82]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_12 
	 { [deriveGoString_12]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.StarExpr [uint16]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []*uint16 {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([]*uint16, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_83]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_13 
	 { [deriveGoString_13]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.StarExpr [uint32]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []*uint32 {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([]*uint32, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_84]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_14 
	 { [deriveGoString_14]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.StarExpr [uint64]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []*uint64 {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([]*uint64, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_85]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_15 
	 { [deriveGoString_15]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.StarExpr [uintptr]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []*uintptr {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([]*uintptr, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_86]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_16 
	 { [deriveGoString_16]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 1]}
	 {*ast.StarExpr [bool]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() [1]*bool {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := [1]*bool{}\n"]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_71]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_17 
	 { [deriveGoString_17]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 2]}
	 {*ast.StarExpr [byte]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() [2]*byte {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := [2]*byte{}\n"]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_72]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_18 
	 { [deriveGoString_18]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 3]}
	 {*ast.StarExpr [complex128]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() [3]*complex128 {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := [3]*complex128{}\n"]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_73]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_19 
	 { [deriveGoString_19]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 4]}
	 {*ast.StarExpr [complex64]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() [4]*complex64 {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := [4]*complex64{}\n"]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_74]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_20 
	 { [deriveGoString_20]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 5]}
	 {*ast.StarExpr [float64]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() [5]*float64 {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := [5]*float64{}\n"]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_75]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_21 
	 { [deriveGoString_21]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 6]}
	 {*ast.StarExpr [float32]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() [6]*float32 {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := [6]*float32{}\n"]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_76]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_22 
	 { [deriveGoString_22]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 7]}
	 {*ast.StarExpr [int]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() [7]*int {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := [7]*int{}\n"]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoStringIntPtr]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_23 
	 { [deriveGoString_23]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 8]}
	 {*ast.StarExpr [int16]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() [8]*int16 {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := [8]*int16{}\n"]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_77]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_24 
	 { [deriveGoString_24]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 9]}
	 {*ast.StarExpr [int32]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() [9]*int32 {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := [9]*int32{}\n"]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_78]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_25 
	 { [deriveGoString_25]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 10]}
	 {*ast.StarExpr [int64]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() [10]*int64 {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := [10]*int64{}\n"]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_79]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_26 
	 { [deriveGoString_26]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 11]}
	 {*ast.StarExpr [int8]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() [11]*int8 {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := [11]*int8{}\n"]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_80]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_27 
	 { [deriveGoString_27]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 12]}
	 {*ast.StarExpr [rune]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() [12]*rune {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := [12]*rune{}\n"]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_78]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_28 
	 { [deriveGoString_28]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 13]}
	 {*ast.StarExpr [string]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() [13]*string {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := [13]*string{}\n"]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_81]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_29 
	 { [deriveGoString_29]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 14]}
	 {*ast.StarExpr [uint]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() [14]*uint {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := [14]*uint{}\n"]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_82]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_30 
	 { [deriveGoString_30]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 15]}
	 {*ast.StarExpr [uint16]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() [15]*uint16 {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := [15]*uint16{}\n"]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_83]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_31 
	 { [deriveGoString_31]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 16]}
	 {*ast.StarExpr [uint32]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() [16]*uint32 {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := [16]*uint32{}\n"]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_84]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_32 
	 { [deriveGoString_32]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 17]}
	 {*ast.StarExpr [uint64]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() [17]*uint64 {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := [17]*uint64{}\n"]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_85]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_33 
	 { [deriveGoString_33]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 18]}
	 {*ast.StarExpr [uint8]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() [18]*uint8 {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := [18]*uint8{}\n"]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_72]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_34 
	 { [deriveGoString_34]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 19]}
	 {*ast.StarExpr [uintptr]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() [19]*uintptr {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := [19]*uintptr{}\n"]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_86]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_35 
	 { [deriveGoString_35]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 10]}
	 {*ast.StarExpr [bool]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() [10]*bool {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := [10]*bool{}\n"]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_71]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_36 
	 { [deriveGoString_36]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.ArrayType [int]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() [][]int {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([][]int, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoStringIntSlices]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_37 
	 { [deriveGoString_37]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.ArrayType [string]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() [][]string {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([][]string, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_87]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_38 
	 { [deriveGoString_38]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.ArrayType -> *ast.StarExpr [int]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() [][]*int {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([][]*int, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_5]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_39 
	 { [deriveGoString_39]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr -> *ast.ArrayType -> *ast.BasicLit [INT 4]}
	 { [int]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *[4]int {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := new([4]int)\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "*this = %#v\n"]}
	 {*ast.StarExpr [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_N 
	 { [deriveGoString_N]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this Name]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() test.Name {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.Name{}\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Name = %#v\n"]}
	 {*ast.SelectorExpr [this Name]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return *this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_40 
	 { [deriveGoString_40]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType [Name]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []test.Name {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([]test.Name, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_N]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_41 
	 { [deriveGoString_41]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.StarExpr [Name]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []*test.Name {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([]*test.Name, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoStringName]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_S 
	 { [deriveGoString_S]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() test.StructWithoutMethod {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.StructWithoutMethod{}\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Name = %#v\n"]}
	 {*ast.SelectorExpr [this Name]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return *this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_42 
	 { [deriveGoString_42]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *test.StructWithoutMethod {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.StructWithoutMethod{}\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Name = %#v\n"]}
	 {*ast.SelectorExpr [this Name]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_43 
	 { [deriveGoString_43]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType [StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []test.StructWithoutMethod {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([]test.StructWithoutMethod, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_S]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_44 
	 { [deriveGoString_44]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.StarExpr [StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []*test.StructWithoutMethod {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([]*test.StructWithoutMethod, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_42]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_45 
	 { [deriveGoString_45]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.MapType [Name string]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() map[test.Name]string {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make(map[test.Name]string)\n"]}
	 {*ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "key%d := %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_N k]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[key%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_s v]}
	 {*ast.IncDecStmt [i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_46 
	 { [deriveGoString_46]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.MapType [string Name]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() map[string]test.Name {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make(map[string]test.Name)\n"]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%#v] = %s\n"]}
	 { [k]}
	 {*ast.CallExpr [deriveGoString_N v]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_47 
	 { [deriveGoString_47]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.MapType [string]}
	 {*ast.StarExpr [Name]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() map[string]*test.Name {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make(map[string]*test.Name)\n"]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%#v] = %s\n"]}
	 { [k]}
	 {*ast.CallExpr [deriveGoStringName v]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_48 
	 { [deriveGoString_48]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType [Name]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() map[string][]test.Name {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make(map[string][]test.Name)\n"]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%#v] = %s\n"]}
	 { [k]}
	 {*ast.CallExpr [deriveGoString_40 v]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_49 
	 { [deriveGoString_49]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType -> *ast.StarExpr [Name]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() map[string][]*test.Name {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make(map[string][]*test.Name)\n"]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%#v] = %s\n"]}
	 { [k]}
	 {*ast.CallExpr [deriveGoString_41 v]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_50 
	 { [deriveGoString_50]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.MapType [string StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() map[string]test.StructWithoutMethod {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make(map[string]test.StructWithoutMethod)\n"]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%#v] = %s\n"]}
	 { [k]}
	 {*ast.CallExpr [deriveGoString_S v]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_51 
	 { [deriveGoString_51]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.MapType [StructWithoutMethod string]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() map[test.StructWithoutMethod]string {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make(map[test.StructWithoutMethod]string)\n"]}
	 {*ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "key%d := %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_S k]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[key%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_s v]}
	 {*ast.IncDecStmt [i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_52 
	 { [deriveGoString_52]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.MapType [string]}
	 {*ast.StarExpr [StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() map[string]*test.StructWithoutMethod {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make(map[string]*test.StructWithoutMethod)\n"]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%#v] = %s\n"]}
	 { [k]}
	 {*ast.CallExpr [deriveGoString_42 v]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_53 
	 { [deriveGoString_53]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType [StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() map[string][]test.StructWithoutMethod {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make(map[string][]test.StructWithoutMethod)\n"]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%#v] = %s\n"]}
	 { [k]}
	 {*ast.CallExpr [deriveGoString_43 v]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_54 
	 { [deriveGoString_54]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType -> *ast.StarExpr [StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() map[string][]*test.StructWithoutMethod {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make(map[string][]*test.StructWithoutMethod)\n"]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%#v] = %s\n"]}
	 { [k]}
	 {*ast.CallExpr [deriveGoString_44 v]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_55 
	 { [deriveGoString_55]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.MapType [int RecursiveType]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() map[int]test.RecursiveType {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make(map[int]test.RecursiveType)\n"]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%#v] = %s\n"]}
	 { [k]}
	 {*ast.CallExpr [deriveGoString_R v]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_St 
	 { [deriveGoString_St]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this Structs]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() test.Structs {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.Structs{}\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Struct = %s\n"]}
	 {*ast.CallExpr [deriveGoString_N]}
	 {*ast.SelectorExpr [this Struct]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this PtrToStruct nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.PtrToStruct = %s\n"]}
	 {*ast.CallExpr [deriveGoStringName]}
	 {*ast.SelectorExpr [this PtrToStruct]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this SliceOfStructs nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.SliceOfStructs = %s\n"]}
	 {*ast.CallExpr [deriveGoString_40]}
	 {*ast.SelectorExpr [this SliceOfStructs]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this SliceToPtrOfStruct nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.SliceToPtrOfStruct = %s\n"]}
	 {*ast.CallExpr [deriveGoString_41]}
	 {*ast.SelectorExpr [this SliceToPtrOfStruct]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.StructWithoutMethod = %s\n"]}
	 {*ast.CallExpr [deriveGoString_S]}
	 {*ast.SelectorExpr [this StructWithoutMethod]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this PtrToStructWithoutMethod nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.PtrToStructWithoutMethod = %s\n"]}
	 {*ast.CallExpr [deriveGoString_42]}
	 {*ast.SelectorExpr [this PtrToStructWithoutMethod]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this SliceOfStructWithoutMethod nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.SliceOfStructWithoutMethod = %s\n"]}
	 {*ast.CallExpr [deriveGoString_43]}
	 {*ast.SelectorExpr [this SliceOfStructWithoutMethod]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this SliceToPtrOfStructWithoutMethod nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.SliceToPtrOfStructWithoutMethod = %s\n"]}
	 {*ast.CallExpr [deriveGoString_44]}
	 {*ast.SelectorExpr [this SliceToPtrOfStructWithoutMethod]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return *this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_56 
	 { [deriveGoString_56]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [StructWithoutEqualMethod]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *test.StructWithoutEqualMethod {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.StructWithoutEqualMethod{}\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Num = %#v\n"]}
	 {*ast.SelectorExpr [this Num]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_Str 
	 { [deriveGoString_Str]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this StructWithoutEqualMethod]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() test.StructWithoutEqualMethod {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.StructWithoutEqualMethod{}\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Num = %#v\n"]}
	 {*ast.SelectorExpr [this Num]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return *this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_57 
	 { [deriveGoString_57]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr -> *ast.SelectorExpr [extra StructWithoutEqualMethod]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *extra.StructWithoutEqualMethod {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &extra.StructWithoutEqualMethod{}\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Number = %#v\n"]}
	 {*ast.SelectorExpr [this Number]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_Stru 
	 { [deriveGoString_Stru]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.SelectorExpr [extra StructWithoutEqualMethod]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() extra.StructWithoutEqualMethod {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &extra.StructWithoutEqualMethod{}\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Number = %#v\n"]}
	 {*ast.SelectorExpr [this Number]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return *this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_58 
	 { [deriveGoString_58]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [MyEnum]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *test.MyEnum {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := new(test.MyEnum)\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "*this = %#v\n"]}
	 {*ast.StarExpr [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_59 
	 { [deriveGoString_59]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType [MyEnum]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []test.MyEnum {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([]test.MyEnum, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_M]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_60 
	 { [deriveGoString_60]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.StarExpr [MyEnum]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []*test.MyEnum {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([]*test.MyEnum, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_58]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_61 
	 { [deriveGoString_61]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.MapType [int32 MyEnum]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() map[int32]test.MyEnum {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make(map[int32]test.MyEnum)\n"]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%#v] = %s\n"]}
	 { [k]}
	 {*ast.CallExpr [deriveGoString_M v]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_62 
	 { [deriveGoString_62]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.MapType [MyEnum int32]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() map[test.MyEnum]int32 {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make(map[test.MyEnum]int32)\n"]}
	 {*ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "key%d := %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_M k]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[key%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_i v]}
	 {*ast.IncDecStmt [i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_63 
	 { [deriveGoString_63]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 2]}
	 { [MyEnum]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() [2]test.MyEnum {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := [2]test.MyEnum{}\n"]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_M]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_64 
	 { [deriveGoString_64]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [MySlice]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *test.MySlice {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := new(test.MySlice)\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.StarExpr [this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "*this = %#v\n"]}
	 {*ast.StarExpr [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_65 
	 { [deriveGoString_65]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType [MySlice]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []test.MySlice {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([]test.MySlice, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_My]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_66 
	 { [deriveGoString_66]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr -> *ast.SelectorExpr [time Duration]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *time.Duration {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := new(time.Duration)\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "*this = %#v\n"]}
	 {*ast.StarExpr [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_67 
	 { [deriveGoString_67]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.SelectorExpr [time Duration]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []time.Duration {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([]time.Duration, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_D]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_68 
	 { [deriveGoString_68]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.StarExpr -> *ast.SelectorExpr [time Duration]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []*time.Duration {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([]*time.Duration, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_66]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_69 
	 { [deriveGoString_69]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.MapType [int]}
	 {*ast.SelectorExpr [time Duration]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() map[int]time.Duration {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make(map[int]time.Duration)\n"]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%#v] = %s\n"]}
	 { [k]}
	 {*ast.CallExpr [deriveGoString_D v]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_70 
	 { [deriveGoString_70]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType -> *ast.StarExpr -> *ast.SelectorExpr [pickle Rick]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() map[string][]*pickle.Rick {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make(map[string][]*pickle.Rick)\n"]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%#v] = %s\n"]}
	 { [k]}
	 {*ast.CallExpr [deriveGoString_88 v]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_p 
	 { [deriveGoString_p]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this privateStruct]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() test.privateStruct {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.privateStruct{}\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this ptrfield nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.ptrfield = func (v int) *int { return &v }(%#v)\n"]}
	 {*ast.StarExpr -> *ast.SelectorExpr [this ptrfield]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return *this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveDeepCopy 
	 { [deriveDeepCopy]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.ArrayType -> *ast.StarExpr [bool]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_i src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [new bool]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.StarExpr [src_value]}


function name is deriveDeepCopy_ 
	 { [deriveDeepCopy_]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.ArrayType -> *ast.StarExpr [byte]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_i src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [new byte]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.StarExpr [src_value]}


function name is deriveDeepCopy_1 
	 { [deriveDeepCopy_1]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.ArrayType -> *ast.StarExpr [complex128]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_i src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [new complex128]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.StarExpr [src_value]}


function name is deriveDeepCopy_2 
	 { [deriveDeepCopy_2]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.ArrayType -> *ast.StarExpr [complex64]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_i src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [new complex64]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.StarExpr [src_value]}


function name is deriveDeepCopy_3 
	 { [deriveDeepCopy_3]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.ArrayType -> *ast.StarExpr [float64]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_i src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [new float64]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.StarExpr [src_value]}


function name is deriveDeepCopy_4 
	 { [deriveDeepCopy_4]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.ArrayType -> *ast.StarExpr [float32]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_i src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [new float32]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.StarExpr [src_value]}


function name is deriveDeepCopy_5 
	 { [deriveDeepCopy_5]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.ArrayType -> *ast.StarExpr [int]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_i src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [new int]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.StarExpr [src_value]}


function name is deriveDeepCopy_6 
	 { [deriveDeepCopy_6]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.ArrayType -> *ast.StarExpr [int16]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_i src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [new int16]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.StarExpr [src_value]}


function name is deriveDeepCopy_7 
	 { [deriveDeepCopy_7]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.ArrayType -> *ast.StarExpr [int32]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_i src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [new int32]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.StarExpr [src_value]}


function name is deriveDeepCopy_8 
	 { [deriveDeepCopy_8]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_i src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [new int64]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.StarExpr [src_value]}


function name is deriveDeepCopy_9 
	 { [deriveDeepCopy_9]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.ArrayType -> *ast.StarExpr [int8]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_i src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [new int8]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.StarExpr [src_value]}


function name is deriveDeepCopy_10 
	 { [deriveDeepCopy_10]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.ArrayType -> *ast.StarExpr [string]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_i src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [new string]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.StarExpr [src_value]}


function name is deriveDeepCopy_11 
	 { [deriveDeepCopy_11]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.ArrayType -> *ast.StarExpr [uint]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_i src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [new uint]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.StarExpr [src_value]}


function name is deriveDeepCopy_12 
	 { [deriveDeepCopy_12]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.ArrayType -> *ast.StarExpr [uint16]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_i src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [new uint16]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.StarExpr [src_value]}


function name is deriveDeepCopy_13 
	 { [deriveDeepCopy_13]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.ArrayType -> *ast.StarExpr [uint32]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_i src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [new uint32]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.StarExpr [src_value]}


function name is deriveDeepCopy_14 
	 { [deriveDeepCopy_14]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.ArrayType -> *ast.StarExpr [uint64]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_i src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [new uint64]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.StarExpr [src_value]}


function name is deriveDeepCopy_15 
	 { [deriveDeepCopy_15]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.ArrayType -> *ast.StarExpr [uintptr]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_i src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [new uintptr]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.StarExpr [src_value]}


function name is deriveDeepCopy_16 
	 { [deriveDeepCopy_16]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.MapType [string uint32]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_key src_value src]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key src_value]}


function name is deriveDeepCopy_17 
	 { [deriveDeepCopy_17]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.MapType [uint8 int64]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_key src_value src]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key src_value]}


function name is deriveDeepCopy_18 
	 { [deriveDeepCopy_18]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.MapType [bool string]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_key src_value src]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key src_value]}


function name is deriveDeepCopy_19 
	 { [deriveDeepCopy_19]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.MapType [string bool]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_key src_value src]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key src_value]}


function name is deriveDeepCopy_20 
	 { [deriveDeepCopy_20]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.MapType [complex128 complex64]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_key src_value src]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key src_value]}


function name is deriveDeepCopy_21 
	 { [deriveDeepCopy_21]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.MapType [float64 uint32]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_key src_value src]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key src_value]}


function name is deriveDeepCopy_22 
	 { [deriveDeepCopy_22]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.MapType [uint16 uint8]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_key src_value src]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key src_value]}


function name is deriveDeepCopy_23 
	 { [deriveDeepCopy_23]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.ArrayType -> *ast.ArrayType [int]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_i src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.CallExpr [len]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.CallExpr [len]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.IndexExpr [dst src_i src_value]}


function name is deriveDeepCopy_24 
	 { [deriveDeepCopy_24]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.ArrayType -> *ast.ArrayType [string]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_i src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.CallExpr [len]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [string]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.CallExpr [len]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [string]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.IndexExpr [dst src_i src_value]}


function name is deriveDeepCopy_25 
	 { [deriveDeepCopy_25]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.ArrayType -> *ast.ArrayType -> *ast.StarExpr [int]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_i src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.CallExpr [len]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [int]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.CallExpr [len]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [int]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_5]}
	 {*ast.IndexExpr [dst src_i src_value]}


function name is deriveDeepCopy_26 
	 { [deriveDeepCopy_26]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr -> *ast.ArrayType [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr [src nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr [dst nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.StarExpr [dst nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr [src]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr [dst]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.StarExpr [dst]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr [src]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr [dst]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.StarExpr [dst]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr [src]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr [dst]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr [src]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr [src]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr [dst]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr [dst]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.StarExpr [dst]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr [src]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr [dst]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr [src]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.StarExpr [dst]}
	 {*ast.StarExpr [src]}


function name is deriveDeepCopy_27 
	 { [deriveDeepCopy_27]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr -> *ast.MapType [int int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.StarExpr [src nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr [dst]}
	 {*ast.CallExpr [make]}
	 {*ast.MapType [int int]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr [src]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_52]}
	 {*ast.StarExpr [dst]}
	 {*ast.StarExpr [src]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr [dst nil]}


function name is deriveDeepCopy_28 
	 { [deriveDeepCopy_28]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.ArrayType -> *ast.StarExpr [Name]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_i src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [new Name]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [src_value DeepCopy]}
	 {*ast.IndexExpr [dst src_i]}


function name is deriveDeepCopy_29 
	 { [deriveDeepCopy_29]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.ArrayType -> *ast.StarExpr [StructWithoutMethod]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_i src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [new StructWithoutMethod]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.StarExpr [src_value]}


function name is deriveDeepCopy_30 
	 { [deriveDeepCopy_30]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.MapType [Name string]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_key src_value src]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key src_value]}


function name is deriveDeepCopy_31 
	 { [deriveDeepCopy_31]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.MapType [string Name]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_key src_value src]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key src_value]}


function name is deriveDeepCopy_32 
	 { [deriveDeepCopy_32]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.MapType [string]}
	 {*ast.StarExpr [Name]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_key src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.CallExpr [new Name]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [src_value DeepCopy]}
	 {*ast.IndexExpr [dst src_key]}


function name is deriveDeepCopy_33 
	 { [deriveDeepCopy_33]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType [Name]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_key src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [dst src_key nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.CallExpr [len]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.IndexExpr [dst src_key]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [Name]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.CallExpr [len]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.IndexExpr [dst src_key]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [Name]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.IndexExpr [dst src_key src_value]}


function name is deriveDeepCopy_34 
	 { [deriveDeepCopy_34]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType -> *ast.StarExpr [Name]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_key src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [dst src_key nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.CallExpr [len]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.IndexExpr [dst src_key]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [Name]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.CallExpr [len]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.IndexExpr [dst src_key]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [Name]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_28]}
	 {*ast.IndexExpr [dst src_key src_value]}


function name is deriveDeepCopy_35 
	 { [deriveDeepCopy_35]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.MapType [string StructWithoutMethod]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_key src_value src]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key src_value]}


function name is deriveDeepCopy_36 
	 { [deriveDeepCopy_36]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.MapType [StructWithoutMethod string]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_key src_value src]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key src_value]}


function name is deriveDeepCopy_37 
	 { [deriveDeepCopy_37]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.MapType [string]}
	 {*ast.StarExpr [StructWithoutMethod]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_key src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.CallExpr [new StructWithoutMethod]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr [dst src_key]}
	 {*ast.StarExpr [src_value]}


function name is deriveDeepCopy_38 
	 { [deriveDeepCopy_38]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType [StructWithoutMethod]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_key src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [dst src_key nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.CallExpr [len]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.IndexExpr [dst src_key]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [StructWithoutMethod]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.CallExpr [len]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.IndexExpr [dst src_key]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [StructWithoutMethod]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.IndexExpr [dst src_key src_value]}


function name is deriveDeepCopy_39 
	 { [deriveDeepCopy_39]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType -> *ast.StarExpr [StructWithoutMethod]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_key src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [dst src_key nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.CallExpr [len]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.IndexExpr [dst src_key]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [StructWithoutMethod]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.CallExpr [len]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.IndexExpr [dst src_key]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [StructWithoutMethod]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_29]}
	 {*ast.IndexExpr [dst src_key src_value]}


function name is deriveDeepCopy_40 
	 { [deriveDeepCopy_40]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.MapType [int RecursiveType]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_key src_value src]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.BlockStmt -> *ast.AssignStmt [:= field]}
	 {*ast.CallExpr [new RecursiveType]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [src_value DeepCopy field]}
	 {*ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.StarExpr [field]}


function name is deriveDeepCopy_41 
	 { [deriveDeepCopy_41]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr -> *ast.SelectorExpr [extra PrivateFieldAndNoEqualMethod]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= src_v]}
	 {*ast.CallExpr -> *ast.SelectorExpr [reflect Indirect]}
	 {*ast.CallExpr -> *ast.SelectorExpr [reflect ValueOf src]}
	 {*ast.AssignStmt [:= dst_v]}
	 {*ast.CallExpr -> *ast.SelectorExpr [reflect Indirect]}
	 {*ast.CallExpr -> *ast.SelectorExpr [reflect ValueOf dst]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "number"]}
	 { [UnsafeAddr]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [src_v FieldByName]}
	 {*ast.BasicLit [STRING "number"]}
	 { [UnsafeAddr]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [src_v FieldByName]}
	 {*ast.BasicLit [STRING "numbers"]}
	 { [UnsafeAddr nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "numbers"]}
	 { [UnsafeAddr nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "numbers"]}
	 { [UnsafeAddr nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [src_v FieldByName]}
	 {*ast.BasicLit [STRING "numbers"]}
	 { [UnsafeAddr]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "numbers"]}
	 { [UnsafeAddr]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "numbers"]}
	 { [UnsafeAddr]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [src_v FieldByName]}
	 {*ast.BasicLit [STRING "numbers"]}
	 { [UnsafeAddr]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "numbers"]}
	 { [UnsafeAddr]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "numbers"]}
	 { [UnsafeAddr]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [src_v FieldByName]}
	 {*ast.BasicLit [STRING "numbers"]}
	 { [UnsafeAddr]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "numbers"]}
	 { [UnsafeAddr]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int64]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [src_v FieldByName]}
	 {*ast.BasicLit [STRING "numbers"]}
	 { [UnsafeAddr]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [src_v FieldByName]}
	 {*ast.BasicLit [STRING "numbers"]}
	 { [UnsafeAddr]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "numbers"]}
	 { [UnsafeAddr]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "numbers"]}
	 { [UnsafeAddr]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "numbers"]}
	 { [UnsafeAddr]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [src_v FieldByName]}
	 {*ast.BasicLit [STRING "numbers"]}
	 { [UnsafeAddr]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "numbers"]}
	 { [UnsafeAddr]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int64]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [src_v FieldByName]}
	 {*ast.BasicLit [STRING "numbers"]}
	 { [UnsafeAddr]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "numbers"]}
	 { [UnsafeAddr]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [src_v FieldByName]}
	 {*ast.BasicLit [STRING "numbers"]}
	 { [UnsafeAddr]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [src_v FieldByName]}
	 {*ast.BasicLit [STRING "ptr"]}
	 { [UnsafeAddr nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "ptr"]}
	 { [UnsafeAddr nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "ptr"]}
	 { [UnsafeAddr]}
	 {*ast.CallExpr [new int64]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "ptr"]}
	 { [UnsafeAddr]}
	 {*ast.StarExpr -> *ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [src_v FieldByName]}
	 {*ast.BasicLit [STRING "ptr"]}
	 { [UnsafeAddr]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [src_v FieldByName]}
	 {*ast.BasicLit [STRING "numberpts"]}
	 { [UnsafeAddr nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "numberpts"]}
	 { [UnsafeAddr nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "numberpts"]}
	 { [UnsafeAddr nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [src_v FieldByName]}
	 {*ast.BasicLit [STRING "numberpts"]}
	 { [UnsafeAddr]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "numberpts"]}
	 { [UnsafeAddr]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "numberpts"]}
	 { [UnsafeAddr]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [src_v FieldByName]}
	 {*ast.BasicLit [STRING "numberpts"]}
	 { [UnsafeAddr]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "numberpts"]}
	 { [UnsafeAddr]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "numberpts"]}
	 { [UnsafeAddr]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [src_v FieldByName]}
	 {*ast.BasicLit [STRING "numberpts"]}
	 { [UnsafeAddr]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "numberpts"]}
	 { [UnsafeAddr]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [src_v FieldByName]}
	 {*ast.BasicLit [STRING "numberpts"]}
	 { [UnsafeAddr]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [src_v FieldByName]}
	 {*ast.BasicLit [STRING "numberpts"]}
	 { [UnsafeAddr]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "numberpts"]}
	 { [UnsafeAddr]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "numberpts"]}
	 { [UnsafeAddr]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "numberpts"]}
	 { [UnsafeAddr]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [src_v FieldByName]}
	 {*ast.BasicLit [STRING "numberpts"]}
	 { [UnsafeAddr]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "numberpts"]}
	 { [UnsafeAddr]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [src_v FieldByName]}
	 {*ast.BasicLit [STRING "numberpts"]}
	 { [UnsafeAddr]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_8]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "numberpts"]}
	 { [UnsafeAddr]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [src_v FieldByName]}
	 {*ast.BasicLit [STRING "numberpts"]}
	 { [UnsafeAddr]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.StarExpr -> *ast.SelectorExpr [extra StructWithoutEqualMethod]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [src_v FieldByName]}
	 {*ast.BasicLit [STRING "strct"]}
	 { [UnsafeAddr nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.StarExpr -> *ast.SelectorExpr [extra StructWithoutEqualMethod]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "strct"]}
	 { [UnsafeAddr nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.StarExpr -> *ast.SelectorExpr [extra StructWithoutEqualMethod]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "strct"]}
	 { [UnsafeAddr]}
	 {*ast.CallExpr [new]}
	 {*ast.SelectorExpr [extra StructWithoutEqualMethod]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.StarExpr -> *ast.SelectorExpr [extra StructWithoutEqualMethod]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [dst_v FieldByName]}
	 {*ast.BasicLit [STRING "strct"]}
	 { [UnsafeAddr]}
	 {*ast.StarExpr -> *ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.StarExpr -> *ast.SelectorExpr [extra StructWithoutEqualMethod]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [src_v FieldByName]}
	 {*ast.BasicLit [STRING "strct"]}
	 { [UnsafeAddr]}


function name is deriveDeepCopy_42 
	 { [deriveDeepCopy_42]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.ArrayType -> *ast.StarExpr [MyEnum]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_i src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [new MyEnum]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.StarExpr [src_value]}


function name is deriveDeepCopy_43 
	 { [deriveDeepCopy_43]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.MapType [int32 MyEnum]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_key src_value src]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key src_value]}


function name is deriveDeepCopy_44 
	 { [deriveDeepCopy_44]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.MapType [MyEnum int32]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_key src_value src]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key src_value]}


function name is deriveDeepCopy_45 
	 { [deriveDeepCopy_45]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [MySlice]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr [src nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr [dst nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.StarExpr [dst nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr [src]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr [dst]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.StarExpr [dst]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr [src]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr [dst]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.StarExpr [dst]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr [src]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr [dst]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int64]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr [src]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr [src]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr [dst]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr [dst]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.StarExpr [dst]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr [src]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr [dst]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int64]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr [src]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.StarExpr [dst]}
	 {*ast.StarExpr [src]}


function name is deriveDeepCopy_46 
	 { [deriveDeepCopy_46]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.ArrayType [MySlice]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_i src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.CallExpr [len]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int64]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.CallExpr [len]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int64]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.ExprStmt -> *ast.CallExpr [copy]}
	 {*ast.IndexExpr [dst src_i src_value]}


function name is deriveDeepCopy_47 
	 { [deriveDeepCopy_47]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.ArrayType -> *ast.StarExpr -> *ast.SelectorExpr [time Duration]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_i src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [new]}
	 {*ast.SelectorExpr [time Duration]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.StarExpr [src_value]}


function name is deriveDeepCopy_48 
	 { [deriveDeepCopy_48]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.MapType [int]}
	 {*ast.SelectorExpr [time Duration]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_key src_value src]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key src_value]}


function name is deriveDeepCopy_49 
	 { [deriveDeepCopy_49]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType -> *ast.StarExpr -> *ast.SelectorExpr [pickle Rick]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_key src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [dst src_key nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.CallExpr [len]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [>=]}
	 {*ast.CallExpr [cap]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.IndexExpr [dst src_key]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr -> *ast.SelectorExpr [pickle Rick]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.CallExpr [len]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.SliceExpr -> *ast.ParenExpr -> *ast.IndexExpr [dst src_key]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType -> *ast.StarExpr -> *ast.SelectorExpr [pickle Rick]}
	 {*ast.CallExpr [len src_value]}
	 {*ast.ExprStmt -> *ast.CallExpr [deriveDeepCopy_55]}
	 {*ast.IndexExpr [dst src_key src_value]}


function name is deriveDeepCopy_50 
	 { [deriveDeepCopy_50]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [privateStruct]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [src ptrfield nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst ptrfield nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [dst ptrfield]}
	 {*ast.CallExpr [new int]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.SelectorExpr [dst ptrfield]}
	 {*ast.StarExpr -> *ast.SelectorExpr [src ptrfield]}


function name is deriveDeepCopy_51 
	 { [deriveDeepCopy_51]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.ArrayType [int]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr [copy dst src]}


function name is deriveDeepCopy_52 
	 { [deriveDeepCopy_52]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.MapType [int int]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_key src_value src]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_key src_value]}


function name is deriveDeepCopy_53 
	 { [deriveDeepCopy_53]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr [int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr [dst]}
	 {*ast.StarExpr [src]}


function name is deriveDeepCopy_54 
	 { [deriveDeepCopy_54]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.StarExpr -> *ast.ArrayType -> *ast.BasicLit [INT 10]}
	 { [int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr [dst]}
	 {*ast.StarExpr [src]}


function name is deriveCompare 
	 { [deriveCompare]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that bool]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.IfStmt [that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}


function name is deriveCompare_ 
	 { [deriveCompare_]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that byte]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!= this that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [< this that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_f 
	 { [deriveCompare_f]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that float64]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!= this that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [< this that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_fl 
	 { [deriveCompare_fl]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that float32]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!= this that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [< this that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_i 
	 { [deriveCompare_i]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!= this that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [< this that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_in 
	 { [deriveCompare_in]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that int16]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!= this that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [< this that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_int 
	 { [deriveCompare_int]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that int32]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!= this that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [< this that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_int6 
	 { [deriveCompare_int6]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that int64]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!= this that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [< this that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_int8 
	 { [deriveCompare_int8]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that int8]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!= this that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [< this that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_u 
	 { [deriveCompare_u]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that uint]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!= this that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [< this that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_ui 
	 { [deriveCompare_ui]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that uint16]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!= this that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [< this that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_uin 
	 { [deriveCompare_uin]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that uint32]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!= this that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [< this that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_uint 
	 { [deriveCompare_uint]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that uint64]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!= this that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [< this that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_1 
	 { [deriveCompare_1]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that uintptr]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!= this that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [< this that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_2 
	 { [deriveCompare_2]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [bool]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.CallExpr [deriveCompare]}
	 {*ast.StarExpr [this]}
	 {*ast.StarExpr [that]}


function name is deriveCompare_3 
	 { [deriveCompare_3]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [byte]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.CallExpr [deriveCompare_]}
	 {*ast.StarExpr [this]}
	 {*ast.StarExpr [that]}


function name is deriveCompare_4 
	 { [deriveCompare_4]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [complex128]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.CallExpr [deriveCompareComplex64]}
	 {*ast.StarExpr [this]}
	 {*ast.StarExpr [that]}


function name is deriveCompare_5 
	 { [deriveCompare_5]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [complex64]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.CallExpr [deriveCompareComplex32]}
	 {*ast.StarExpr [this]}
	 {*ast.StarExpr [that]}


function name is deriveCompare_6 
	 { [deriveCompare_6]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [float64]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.CallExpr [deriveCompare_f]}
	 {*ast.StarExpr [this]}
	 {*ast.StarExpr [that]}


function name is deriveCompare_7 
	 { [deriveCompare_7]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [float32]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.CallExpr [deriveCompare_fl]}
	 {*ast.StarExpr [this]}
	 {*ast.StarExpr [that]}


function name is deriveCompare_8 
	 { [deriveCompare_8]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.CallExpr [deriveCompare_i]}
	 {*ast.StarExpr [this]}
	 {*ast.StarExpr [that]}


function name is deriveCompare_9 
	 { [deriveCompare_9]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [int16]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.CallExpr [deriveCompare_in]}
	 {*ast.StarExpr [this]}
	 {*ast.StarExpr [that]}


function name is deriveCompare_10 
	 { [deriveCompare_10]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [int32]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.CallExpr [deriveCompare_int]}
	 {*ast.StarExpr [this]}
	 {*ast.StarExpr [that]}


function name is deriveCompare_11 
	 { [deriveCompare_11]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [int64]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.CallExpr [deriveCompare_int6]}
	 {*ast.StarExpr [this]}
	 {*ast.StarExpr [that]}


function name is deriveCompare_12 
	 { [deriveCompare_12]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [int8]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.CallExpr [deriveCompare_int8]}
	 {*ast.StarExpr [this]}
	 {*ast.StarExpr [that]}


function name is deriveCompare_13 
	 { [deriveCompare_13]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [string]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.CallExpr [deriveCompare_s]}
	 {*ast.StarExpr [this]}
	 {*ast.StarExpr [that]}


function name is deriveCompare_14 
	 { [deriveCompare_14]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [uint]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.CallExpr [deriveCompare_u]}
	 {*ast.StarExpr [this]}
	 {*ast.StarExpr [that]}


function name is deriveCompare_15 
	 { [deriveCompare_15]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [uint16]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.CallExpr [deriveCompare_ui]}
	 {*ast.StarExpr [this]}
	 {*ast.StarExpr [that]}


function name is deriveCompare_16 
	 { [deriveCompare_16]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [uint32]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.CallExpr [deriveCompare_uin]}
	 {*ast.StarExpr [this]}
	 {*ast.StarExpr [that]}


function name is deriveCompare_17 
	 { [deriveCompare_17]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [uint64]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.CallExpr [deriveCompare_uint]}
	 {*ast.StarExpr [this]}
	 {*ast.StarExpr [that]}


function name is deriveCompare_18 
	 { [deriveCompare_18]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [uintptr]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.CallExpr [deriveCompare_1]}
	 {*ast.StarExpr [this]}
	 {*ast.StarExpr [that]}


function name is deriveCompare_19 
	 { [deriveCompare_19]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [bool]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_20 
	 { [deriveCompare_20]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [complex128]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompareComplex64]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_21 
	 { [deriveCompare_21]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [complex64]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompareComplex32]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_22 
	 { [deriveCompare_22]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [float64]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_f]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_23 
	 { [deriveCompare_23]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [float32]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_fl]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_24 
	 { [deriveCompare_24]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_i]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_25 
	 { [deriveCompare_25]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [int16]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_in]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_26 
	 { [deriveCompare_26]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [int32]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_int]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_27 
	 { [deriveCompare_27]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [int64]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_int6]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_28 
	 { [deriveCompare_28]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [int8]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_int8]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_29 
	 { [deriveCompare_29]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [string]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr [strings Compare]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_30 
	 { [deriveCompare_30]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [uint]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_u]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_31 
	 { [deriveCompare_31]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [uint16]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_ui]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_32 
	 { [deriveCompare_32]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [uint32]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_uin]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_33 
	 { [deriveCompare_33]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [uint64]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_uint]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_34 
	 { [deriveCompare_34]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [uintptr]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_1]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_35 
	 { [deriveCompare_35]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [bool]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_2]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_36 
	 { [deriveCompare_36]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [byte]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_3]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_37 
	 { [deriveCompare_37]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [complex128]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_4]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_38 
	 { [deriveCompare_38]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [complex64]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_5]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_39 
	 { [deriveCompare_39]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [float64]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_6]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_40 
	 { [deriveCompare_40]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [float32]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_7]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_41 
	 { [deriveCompare_41]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_8]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_42 
	 { [deriveCompare_42]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [int16]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_9]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_43 
	 { [deriveCompare_43]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [int32]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_10]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_44 
	 { [deriveCompare_44]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_11]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_45 
	 { [deriveCompare_45]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [int8]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_12]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_46 
	 { [deriveCompare_46]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [string]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_13]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_47 
	 { [deriveCompare_47]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [uint]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_14]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_48 
	 { [deriveCompare_48]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [uint16]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_15]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_49 
	 { [deriveCompare_49]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [uint32]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_16]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_50 
	 { [deriveCompare_50]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [uint64]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_17]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_51 
	 { [deriveCompare_51]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [uintptr]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_18]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_52 
	 { [deriveCompare_52]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 1]}
	 { [bool]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_53 
	 { [deriveCompare_53]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 2]}
	 { [byte]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_54 
	 { [deriveCompare_54]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 3]}
	 { [complex128]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompareComplex64]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_55 
	 { [deriveCompare_55]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 4]}
	 { [complex64]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompareComplex32]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_56 
	 { [deriveCompare_56]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 5]}
	 { [float64]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_f]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_57 
	 { [deriveCompare_57]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 6]}
	 { [float32]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_fl]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_58 
	 { [deriveCompare_58]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 7]}
	 { [int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_i]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_59 
	 { [deriveCompare_59]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 8]}
	 { [int16]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_in]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_60 
	 { [deriveCompare_60]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 9]}
	 { [int32]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_int]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_61 
	 { [deriveCompare_61]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 10]}
	 { [int64]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_int6]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_62 
	 { [deriveCompare_62]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 11]}
	 { [int8]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_int8]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_63 
	 { [deriveCompare_63]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 12]}
	 { [rune]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_int]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_64 
	 { [deriveCompare_64]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 13]}
	 { [string]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr [strings Compare]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_65 
	 { [deriveCompare_65]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 14]}
	 { [uint]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_u]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_66 
	 { [deriveCompare_66]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 15]}
	 { [uint16]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_ui]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_67 
	 { [deriveCompare_67]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 16]}
	 { [uint32]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_uin]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_68 
	 { [deriveCompare_68]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 17]}
	 { [uint64]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_uint]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_69 
	 { [deriveCompare_69]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 18]}
	 { [uint8]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_70 
	 { [deriveCompare_70]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 19]}
	 { [uintptr]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_1]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_71 
	 { [deriveCompare_71]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 10]}
	 { [bool]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_72 
	 { [deriveCompare_72]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 1]}
	 {*ast.StarExpr [bool]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_2]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_73 
	 { [deriveCompare_73]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 2]}
	 {*ast.StarExpr [byte]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_3]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_74 
	 { [deriveCompare_74]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 3]}
	 {*ast.StarExpr [complex128]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_4]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_75 
	 { [deriveCompare_75]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 4]}
	 {*ast.StarExpr [complex64]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_5]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_76 
	 { [deriveCompare_76]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 5]}
	 {*ast.StarExpr [float64]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_6]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_77 
	 { [deriveCompare_77]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 6]}
	 {*ast.StarExpr [float32]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_7]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_78 
	 { [deriveCompare_78]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 7]}
	 {*ast.StarExpr [int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_8]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_79 
	 { [deriveCompare_79]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 8]}
	 {*ast.StarExpr [int16]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_9]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_80 
	 { [deriveCompare_80]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 9]}
	 {*ast.StarExpr [int32]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_10]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_81 
	 { [deriveCompare_81]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 10]}
	 {*ast.StarExpr [int64]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_11]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_82 
	 { [deriveCompare_82]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 11]}
	 {*ast.StarExpr [int8]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_12]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_83 
	 { [deriveCompare_83]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 12]}
	 {*ast.StarExpr [rune]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_10]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_84 
	 { [deriveCompare_84]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 13]}
	 {*ast.StarExpr [string]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_13]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_85 
	 { [deriveCompare_85]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 14]}
	 {*ast.StarExpr [uint]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_14]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_86 
	 { [deriveCompare_86]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 15]}
	 {*ast.StarExpr [uint16]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_15]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_87 
	 { [deriveCompare_87]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 16]}
	 {*ast.StarExpr [uint32]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_16]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_88 
	 { [deriveCompare_88]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 17]}
	 {*ast.StarExpr [uint64]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_17]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_89 
	 { [deriveCompare_89]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 18]}
	 {*ast.StarExpr [uint8]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_3]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_90 
	 { [deriveCompare_90]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 19]}
	 {*ast.StarExpr [uintptr]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_18]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_91 
	 { [deriveCompare_91]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 10]}
	 {*ast.StarExpr [bool]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_2]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_92 
	 { [deriveCompare_92]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [string uint32]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.AssignStmt [:= thiskeys]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_ this]}
	 {*ast.AssignStmt [:= thatkeys]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_ that]}
	 {*ast.RangeStmt [i thiskey thiskeys]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatkey]}
	 {*ast.IndexExpr [thatkeys i]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== thiskey thatkey]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thisvalue]}
	 {*ast.IndexExpr [this thiskey]}
	 {*ast.AssignStmt [:= thatvalue]}
	 {*ast.IndexExpr [that thatkey]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_uin thisvalue thatvalue]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr [strings Compare thiskey thatkey]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_93 
	 { [deriveCompare_93]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [uint8 int64]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.AssignStmt [:= thiskeys]}
	 {*ast.CallExpr [deriveSort]}
	 {*ast.CallExpr [deriveKeys_1 this]}
	 {*ast.AssignStmt [:= thatkeys]}
	 {*ast.CallExpr [deriveSort]}
	 {*ast.CallExpr [deriveKeys_1 that]}
	 {*ast.RangeStmt [i thiskey thiskeys]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatkey]}
	 {*ast.IndexExpr [thatkeys i]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== thiskey thatkey]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thisvalue]}
	 {*ast.IndexExpr [this thiskey]}
	 {*ast.AssignStmt [:= thatvalue]}
	 {*ast.IndexExpr [that thatkey]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_int6 thisvalue thatvalue]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_ thiskey thatkey]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_94 
	 { [deriveCompare_94]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [bool string]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.AssignStmt [:= thiskeys]}
	 {*ast.CallExpr [deriveSort_]}
	 {*ast.CallExpr [deriveKeys_2 this]}
	 {*ast.AssignStmt [:= thatkeys]}
	 {*ast.CallExpr [deriveSort_]}
	 {*ast.CallExpr [deriveKeys_2 that]}
	 {*ast.RangeStmt [i thiskey thiskeys]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatkey]}
	 {*ast.IndexExpr [thatkeys i]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== thiskey thatkey]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thisvalue]}
	 {*ast.IndexExpr [this thiskey]}
	 {*ast.AssignStmt [:= thatvalue]}
	 {*ast.IndexExpr [that thatkey]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr [strings Compare thisvalue thatvalue]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare thiskey thatkey]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_95 
	 { [deriveCompare_95]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [string bool]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.AssignStmt [:= thiskeys]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_3 this]}
	 {*ast.AssignStmt [:= thatkeys]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_3 that]}
	 {*ast.RangeStmt [i thiskey thiskeys]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatkey]}
	 {*ast.IndexExpr [thatkeys i]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== thiskey thatkey]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thisvalue]}
	 {*ast.IndexExpr [this thiskey]}
	 {*ast.AssignStmt [:= thatvalue]}
	 {*ast.IndexExpr [that thatkey]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare thisvalue thatvalue]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr [strings Compare thiskey thatkey]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_96 
	 { [deriveCompare_96]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [complex128 complex64]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.AssignStmt [:= thiskeys]}
	 {*ast.CallExpr [deriveSort_1]}
	 {*ast.CallExpr [deriveKeys_4 this]}
	 {*ast.AssignStmt [:= thatkeys]}
	 {*ast.CallExpr [deriveSort_1]}
	 {*ast.CallExpr [deriveKeys_4 that]}
	 {*ast.RangeStmt [i thiskey thiskeys]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatkey]}
	 {*ast.IndexExpr [thatkeys i]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== thiskey thatkey]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thisvalue]}
	 {*ast.IndexExpr [this thiskey]}
	 {*ast.AssignStmt [:= thatvalue]}
	 {*ast.IndexExpr [that thatkey]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompareComplex32 thisvalue thatvalue]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompareComplex64 thiskey thatkey]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_97 
	 { [deriveCompare_97]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [float64 uint32]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.AssignStmt [:= thiskeys]}
	 {*ast.CallExpr [deriveSort_2]}
	 {*ast.CallExpr [deriveKeys_5 this]}
	 {*ast.AssignStmt [:= thatkeys]}
	 {*ast.CallExpr [deriveSort_2]}
	 {*ast.CallExpr [deriveKeys_5 that]}
	 {*ast.RangeStmt [i thiskey thiskeys]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatkey]}
	 {*ast.IndexExpr [thatkeys i]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== thiskey thatkey]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thisvalue]}
	 {*ast.IndexExpr [this thiskey]}
	 {*ast.AssignStmt [:= thatvalue]}
	 {*ast.IndexExpr [that thatkey]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_uin thisvalue thatvalue]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_f thiskey thatkey]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_98 
	 { [deriveCompare_98]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [uint16 uint8]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.AssignStmt [:= thiskeys]}
	 {*ast.CallExpr [deriveSort_3]}
	 {*ast.CallExpr [deriveKeys_6 this]}
	 {*ast.AssignStmt [:= thatkeys]}
	 {*ast.CallExpr [deriveSort_3]}
	 {*ast.CallExpr [deriveKeys_6 that]}
	 {*ast.RangeStmt [i thiskey thiskeys]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatkey]}
	 {*ast.IndexExpr [thatkeys i]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== thiskey thatkey]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thisvalue]}
	 {*ast.IndexExpr [this thiskey]}
	 {*ast.AssignStmt [:= thatvalue]}
	 {*ast.IndexExpr [that thatkey]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_ thisvalue thatvalue]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_ui thiskey thatkey]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_99 
	 { [deriveCompare_99]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.ArrayType [int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_24]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_100 
	 { [deriveCompare_100]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.ArrayType [string]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_29]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_101 
	 { [deriveCompare_101]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.ArrayType -> *ast.StarExpr [int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_41]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_102 
	 { [deriveCompare_102]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr -> *ast.ArrayType [int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.CallExpr [deriveCompare_24]}
	 {*ast.StarExpr [this]}
	 {*ast.StarExpr [that]}


function name is deriveCompare_103 
	 { [deriveCompare_103]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr -> *ast.ArrayType -> *ast.BasicLit [INT 4]}
	 { [int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.CallExpr [deriveCompare_138]}
	 {*ast.StarExpr [this]}
	 {*ast.StarExpr [that]}


function name is deriveCompare_104 
	 { [deriveCompare_104]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr -> *ast.MapType [int int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.CallExpr [deriveCompare_139]}
	 {*ast.StarExpr [this]}
	 {*ast.StarExpr [that]}


function name is deriveCompare_105 
	 { [deriveCompare_105]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [Name]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.IndexExpr [this i Compare]}
	 {*ast.UnaryExpr [&]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_106 
	 { [deriveCompare_106]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [Name]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.IndexExpr [this i Compare]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_107 
	 { [deriveCompare_107]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr [strings Compare]}
	 {*ast.SelectorExpr [this Name]}
	 {*ast.SelectorExpr [that Name]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_108 
	 { [deriveCompare_108]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_107]}
	 {*ast.UnaryExpr [&]}
	 {*ast.IndexExpr [this i]}
	 {*ast.UnaryExpr [&]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_109 
	 { [deriveCompare_109]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_107]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_110 
	 { [deriveCompare_110]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [Name string]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.AssignStmt [:= thiskeys]}
	 {*ast.CallExpr [deriveSort_4]}
	 {*ast.CallExpr [deriveKeys_7 this]}
	 {*ast.AssignStmt [:= thatkeys]}
	 {*ast.CallExpr [deriveSort_4]}
	 {*ast.CallExpr [deriveKeys_7 that]}
	 {*ast.RangeStmt [i thiskey thiskeys]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatkey]}
	 {*ast.IndexExpr [thatkeys i]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== thiskey thatkey]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thisvalue]}
	 {*ast.IndexExpr [this thiskey]}
	 {*ast.AssignStmt [:= thatvalue]}
	 {*ast.IndexExpr [that thatkey]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr [strings Compare thisvalue thatvalue]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr [thiskey Compare]}
	 {*ast.UnaryExpr [& thatkey]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_111 
	 { [deriveCompare_111]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [string Name]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.AssignStmt [:= thiskeys]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_8 this]}
	 {*ast.AssignStmt [:= thatkeys]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_8 that]}
	 {*ast.RangeStmt [i thiskey thiskeys]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatkey]}
	 {*ast.IndexExpr [thatkeys i]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== thiskey thatkey]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thisvalue]}
	 {*ast.IndexExpr [this thiskey]}
	 {*ast.AssignStmt [:= thatvalue]}
	 {*ast.IndexExpr [that thatkey]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr [thisvalue Compare]}
	 {*ast.UnaryExpr [& thatvalue]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr [strings Compare thiskey thatkey]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_112 
	 { [deriveCompare_112]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [string]}
	 {*ast.StarExpr [Name]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.AssignStmt [:= thiskeys]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_9 this]}
	 {*ast.AssignStmt [:= thatkeys]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_9 that]}
	 {*ast.RangeStmt [i thiskey thiskeys]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatkey]}
	 {*ast.IndexExpr [thatkeys i]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== thiskey thatkey]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thisvalue]}
	 {*ast.IndexExpr [this thiskey]}
	 {*ast.AssignStmt [:= thatvalue]}
	 {*ast.IndexExpr [that thatkey]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr [thisvalue Compare thatvalue]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr [strings Compare thiskey thatkey]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_113 
	 { [deriveCompare_113]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType [Name]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.AssignStmt [:= thiskeys]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_10 this]}
	 {*ast.AssignStmt [:= thatkeys]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_10 that]}
	 {*ast.RangeStmt [i thiskey thiskeys]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatkey]}
	 {*ast.IndexExpr [thatkeys i]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== thiskey thatkey]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thisvalue]}
	 {*ast.IndexExpr [this thiskey]}
	 {*ast.AssignStmt [:= thatvalue]}
	 {*ast.IndexExpr [that thatkey]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_105 thisvalue thatvalue]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr [strings Compare thiskey thatkey]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_114 
	 { [deriveCompare_114]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType -> *ast.StarExpr [Name]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.AssignStmt [:= thiskeys]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_11 this]}
	 {*ast.AssignStmt [:= thatkeys]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_11 that]}
	 {*ast.RangeStmt [i thiskey thiskeys]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatkey]}
	 {*ast.IndexExpr [thatkeys i]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== thiskey thatkey]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thisvalue]}
	 {*ast.IndexExpr [this thiskey]}
	 {*ast.AssignStmt [:= thatvalue]}
	 {*ast.IndexExpr [that thatkey]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_106 thisvalue thatvalue]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr [strings Compare thiskey thatkey]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_115 
	 { [deriveCompare_115]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [string StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.AssignStmt [:= thiskeys]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_12 this]}
	 {*ast.AssignStmt [:= thatkeys]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_12 that]}
	 {*ast.RangeStmt [i thiskey thiskeys]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatkey]}
	 {*ast.IndexExpr [thatkeys i]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== thiskey thatkey]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thisvalue]}
	 {*ast.IndexExpr [this thiskey]}
	 {*ast.AssignStmt [:= thatvalue]}
	 {*ast.IndexExpr [that thatkey]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_107]}
	 {*ast.UnaryExpr [& thisvalue]}
	 {*ast.UnaryExpr [& thatvalue]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr [strings Compare thiskey thatkey]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_116 
	 { [deriveCompare_116]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [StructWithoutMethod string]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.AssignStmt [:= thiskeys]}
	 {*ast.CallExpr [deriveSort_5]}
	 {*ast.CallExpr [deriveKeys_13 this]}
	 {*ast.AssignStmt [:= thatkeys]}
	 {*ast.CallExpr [deriveSort_5]}
	 {*ast.CallExpr [deriveKeys_13 that]}
	 {*ast.RangeStmt [i thiskey thiskeys]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatkey]}
	 {*ast.IndexExpr [thatkeys i]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== thiskey thatkey]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thisvalue]}
	 {*ast.IndexExpr [this thiskey]}
	 {*ast.AssignStmt [:= thatvalue]}
	 {*ast.IndexExpr [that thatkey]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr [strings Compare thisvalue thatvalue]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_107]}
	 {*ast.UnaryExpr [& thiskey]}
	 {*ast.UnaryExpr [& thatkey]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_117 
	 { [deriveCompare_117]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [string]}
	 {*ast.StarExpr [StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.AssignStmt [:= thiskeys]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_14 this]}
	 {*ast.AssignStmt [:= thatkeys]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_14 that]}
	 {*ast.RangeStmt [i thiskey thiskeys]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatkey]}
	 {*ast.IndexExpr [thatkeys i]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== thiskey thatkey]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thisvalue]}
	 {*ast.IndexExpr [this thiskey]}
	 {*ast.AssignStmt [:= thatvalue]}
	 {*ast.IndexExpr [that thatkey]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_107 thisvalue thatvalue]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr [strings Compare thiskey thatkey]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_118 
	 { [deriveCompare_118]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType [StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.AssignStmt [:= thiskeys]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_15 this]}
	 {*ast.AssignStmt [:= thatkeys]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_15 that]}
	 {*ast.RangeStmt [i thiskey thiskeys]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatkey]}
	 {*ast.IndexExpr [thatkeys i]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== thiskey thatkey]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thisvalue]}
	 {*ast.IndexExpr [this thiskey]}
	 {*ast.AssignStmt [:= thatvalue]}
	 {*ast.IndexExpr [that thatkey]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_108 thisvalue thatvalue]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr [strings Compare thiskey thatkey]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_119 
	 { [deriveCompare_119]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType -> *ast.StarExpr [StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.AssignStmt [:= thiskeys]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_16 this]}
	 {*ast.AssignStmt [:= thatkeys]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_16 that]}
	 {*ast.RangeStmt [i thiskey thiskeys]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatkey]}
	 {*ast.IndexExpr [thatkeys i]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== thiskey thatkey]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thisvalue]}
	 {*ast.IndexExpr [this thiskey]}
	 {*ast.AssignStmt [:= thatvalue]}
	 {*ast.IndexExpr [that thatkey]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_109 thisvalue thatvalue]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr [strings Compare thiskey thatkey]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_120 
	 { [deriveCompare_120]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [int RecursiveType]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.AssignStmt [:= thiskeys]}
	 {*ast.CallExpr [deriveSortedInts]}
	 {*ast.CallExpr [deriveKeys_17 this]}
	 {*ast.AssignStmt [:= thatkeys]}
	 {*ast.CallExpr [deriveSortedInts]}
	 {*ast.CallExpr [deriveKeys_17 that]}
	 {*ast.RangeStmt [i thiskey thiskeys]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatkey]}
	 {*ast.IndexExpr [thatkeys i]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== thiskey thatkey]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thisvalue]}
	 {*ast.IndexExpr [this thiskey]}
	 {*ast.AssignStmt [:= thatvalue]}
	 {*ast.IndexExpr [that thatkey]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr [thisvalue Compare]}
	 {*ast.UnaryExpr [& thatvalue]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_i thiskey thatkey]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_121 
	 { [deriveCompare_121]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [StructWithoutEqualMethod]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_int6]}
	 {*ast.SelectorExpr [this Num]}
	 {*ast.SelectorExpr [that Num]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_122 
	 { [deriveCompare_122]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr -> *ast.SelectorExpr [extra StructWithoutEqualMethod]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_int6]}
	 {*ast.SelectorExpr [this Number]}
	 {*ast.SelectorExpr [that Number]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_123 
	 { [deriveCompare_123]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr -> *ast.SelectorExpr [extra PrivateFieldAndNoEqualMethod]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.AssignStmt [:= thisv]}
	 {*ast.CallExpr -> *ast.SelectorExpr [reflect Indirect]}
	 {*ast.CallExpr -> *ast.SelectorExpr [reflect ValueOf this]}
	 {*ast.AssignStmt [:= thatv]}
	 {*ast.CallExpr -> *ast.SelectorExpr [reflect Indirect]}
	 {*ast.CallExpr -> *ast.SelectorExpr [reflect ValueOf that]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_int6]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [thisv FieldByName]}
	 {*ast.BasicLit [STRING "number"]}
	 { [UnsafeAddr]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [thatv FieldByName]}
	 {*ast.BasicLit [STRING "number"]}
	 { [UnsafeAddr]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_27]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [thisv FieldByName]}
	 {*ast.BasicLit [STRING "numbers"]}
	 { [UnsafeAddr]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [thatv FieldByName]}
	 {*ast.BasicLit [STRING "numbers"]}
	 { [UnsafeAddr]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_11]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [thisv FieldByName]}
	 {*ast.BasicLit [STRING "ptr"]}
	 { [UnsafeAddr]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [thatv FieldByName]}
	 {*ast.BasicLit [STRING "ptr"]}
	 { [UnsafeAddr]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_44]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [thisv FieldByName]}
	 {*ast.BasicLit [STRING "numberpts"]}
	 { [UnsafeAddr]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [thatv FieldByName]}
	 {*ast.BasicLit [STRING "numberpts"]}
	 { [UnsafeAddr]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_122]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.StarExpr -> *ast.SelectorExpr [extra StructWithoutEqualMethod]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [thisv FieldByName]}
	 {*ast.BasicLit [STRING "strct"]}
	 { [UnsafeAddr]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.StarExpr -> *ast.SelectorExpr [extra StructWithoutEqualMethod]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [thatv FieldByName]}
	 {*ast.BasicLit [STRING "strct"]}
	 { [UnsafeAddr]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_M 
	 { [deriveCompare_M]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that MyEnum]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!= this that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [< this that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_124 
	 { [deriveCompare_124]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [MyEnum]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.CallExpr [deriveCompare_M]}
	 {*ast.StarExpr [this]}
	 {*ast.StarExpr [that]}


function name is deriveCompare_125 
	 { [deriveCompare_125]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [MyEnum]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_M]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_126 
	 { [deriveCompare_126]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [MyEnum]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_124]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_127 
	 { [deriveCompare_127]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [int32 MyEnum]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.AssignStmt [:= thiskeys]}
	 {*ast.CallExpr [deriveSort_6]}
	 {*ast.CallExpr [deriveKeys_18 this]}
	 {*ast.AssignStmt [:= thatkeys]}
	 {*ast.CallExpr [deriveSort_6]}
	 {*ast.CallExpr [deriveKeys_18 that]}
	 {*ast.RangeStmt [i thiskey thiskeys]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatkey]}
	 {*ast.IndexExpr [thatkeys i]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== thiskey thatkey]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thisvalue]}
	 {*ast.IndexExpr [this thiskey]}
	 {*ast.AssignStmt [:= thatvalue]}
	 {*ast.IndexExpr [that thatkey]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_M thisvalue thatvalue]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_int thiskey thatkey]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_128 
	 { [deriveCompare_128]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [MyEnum int32]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.AssignStmt [:= thiskeys]}
	 {*ast.CallExpr [deriveSort_7]}
	 {*ast.CallExpr [deriveKeys_19 this]}
	 {*ast.AssignStmt [:= thatkeys]}
	 {*ast.CallExpr [deriveSort_7]}
	 {*ast.CallExpr [deriveKeys_19 that]}
	 {*ast.RangeStmt [i thiskey thiskeys]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatkey]}
	 {*ast.IndexExpr [thatkeys i]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== thiskey thatkey]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thisvalue]}
	 {*ast.IndexExpr [this thiskey]}
	 {*ast.AssignStmt [:= thatvalue]}
	 {*ast.IndexExpr [that thatkey]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_int thisvalue thatvalue]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_M thiskey thatkey]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_129 
	 { [deriveCompare_129]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 2]}
	 { [MyEnum]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_M]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_130 
	 { [deriveCompare_130]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [MySlice]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.CallExpr [deriveCompare_27]}
	 {*ast.StarExpr [this]}
	 {*ast.StarExpr [that]}


function name is deriveCompare_131 
	 { [deriveCompare_131]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [MySlice]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_27]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_D 
	 { [deriveCompare_D]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.SelectorExpr [time Duration]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!= this that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [< this that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_132 
	 { [deriveCompare_132]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr -> *ast.SelectorExpr [time Duration]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.CallExpr [deriveCompare_D]}
	 {*ast.StarExpr [this]}
	 {*ast.StarExpr [that]}


function name is deriveCompare_133 
	 { [deriveCompare_133]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.SelectorExpr [time Duration]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_D]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_134 
	 { [deriveCompare_134]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr -> *ast.SelectorExpr [time Duration]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_132]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_135 
	 { [deriveCompare_135]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [int]}
	 {*ast.SelectorExpr [time Duration]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.AssignStmt [:= thiskeys]}
	 {*ast.CallExpr [deriveSortedInts]}
	 {*ast.CallExpr [deriveKeys_20 this]}
	 {*ast.AssignStmt [:= thatkeys]}
	 {*ast.CallExpr [deriveSortedInts]}
	 {*ast.CallExpr [deriveKeys_20 that]}
	 {*ast.RangeStmt [i thiskey thiskeys]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatkey]}
	 {*ast.IndexExpr [thatkeys i]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== thiskey thatkey]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thisvalue]}
	 {*ast.IndexExpr [this thiskey]}
	 {*ast.AssignStmt [:= thatvalue]}
	 {*ast.IndexExpr [that thatkey]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_D thisvalue thatvalue]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_i thiskey thatkey]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_136 
	 { [deriveCompare_136]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType -> *ast.StarExpr -> *ast.SelectorExpr [pickle Rick]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.AssignStmt [:= thiskeys]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_21 this]}
	 {*ast.AssignStmt [:= thatkeys]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_21 that]}
	 {*ast.RangeStmt [i thiskey thiskeys]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatkey]}
	 {*ast.IndexExpr [thatkeys i]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== thiskey thatkey]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thisvalue]}
	 {*ast.IndexExpr [this thiskey]}
	 {*ast.AssignStmt [:= thatvalue]}
	 {*ast.IndexExpr [that thatkey]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_140 thisvalue thatvalue]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr [strings Compare thiskey thatkey]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_137 
	 { [deriveCompare_137]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [privateStruct]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_8]}
	 {*ast.SelectorExpr [this ptrfield]}
	 {*ast.SelectorExpr [that ptrfield]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveTuple 
	 { [deriveTuple]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [v0 int]}
	 {*ast.Field [v1 error]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [v0 v1]}


function name is deriveTuple_ 
	 { [deriveTuple_]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [v0 int]}
	 {*ast.Field [v1 string]}
	 {*ast.Field [v2 error]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [string]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [string]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [v0 v1 v2]}


function name is deriveTuple_i 
	 { [deriveTuple_i]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [v0 int64]}
	 {*ast.Field [v1 error]}
	 {*ast.FieldList -> *ast.Field -> *ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [int64]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [int64]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [v0 v1]}


function name is deriveEqual_1 
	 { [deriveEqual_1]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [bool]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_2 
	 { [deriveEqual_2]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [complex128]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_3 
	 { [deriveEqual_3]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [complex64]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_4 
	 { [deriveEqual_4]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [float64]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_5 
	 { [deriveEqual_5]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [float32]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_6 
	 { [deriveEqual_6]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [int16]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_7 
	 { [deriveEqual_7]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [int32]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_8 
	 { [deriveEqual_8]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [int64]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_9 
	 { [deriveEqual_9]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [int8]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_10 
	 { [deriveEqual_10]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [string]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_11 
	 { [deriveEqual_11]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [uint]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_12 
	 { [deriveEqual_12]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [uint16]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_13 
	 { [deriveEqual_13]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [uint32]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_14 
	 { [deriveEqual_14]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [uint64]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_15 
	 { [deriveEqual_15]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [uintptr]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_16 
	 { [deriveEqual_16]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [bool]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_17 
	 { [deriveEqual_17]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [byte]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_18 
	 { [deriveEqual_18]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [complex128]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_19 
	 { [deriveEqual_19]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [complex64]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_20 
	 { [deriveEqual_20]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [float64]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_21 
	 { [deriveEqual_21]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [float32]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_22 
	 { [deriveEqual_22]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_23 
	 { [deriveEqual_23]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [int16]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_24 
	 { [deriveEqual_24]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [int32]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_25 
	 { [deriveEqual_25]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_26 
	 { [deriveEqual_26]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [int8]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_27 
	 { [deriveEqual_27]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [string]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_28 
	 { [deriveEqual_28]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [uint]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_29 
	 { [deriveEqual_29]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [uint16]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_30 
	 { [deriveEqual_30]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [uint32]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_31 
	 { [deriveEqual_31]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [uint64]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_32 
	 { [deriveEqual_32]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [uintptr]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_33 
	 { [deriveEqual_33]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 1]}
	 {*ast.StarExpr [bool]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_34 
	 { [deriveEqual_34]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 2]}
	 {*ast.StarExpr [byte]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_35 
	 { [deriveEqual_35]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 3]}
	 {*ast.StarExpr [complex128]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_36 
	 { [deriveEqual_36]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 4]}
	 {*ast.StarExpr [complex64]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_37 
	 { [deriveEqual_37]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 5]}
	 {*ast.StarExpr [float64]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_38 
	 { [deriveEqual_38]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 6]}
	 {*ast.StarExpr [float32]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_39 
	 { [deriveEqual_39]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 7]}
	 {*ast.StarExpr [int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_40 
	 { [deriveEqual_40]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 8]}
	 {*ast.StarExpr [int16]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_41 
	 { [deriveEqual_41]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 9]}
	 {*ast.StarExpr [int32]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_42 
	 { [deriveEqual_42]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 10]}
	 {*ast.StarExpr [int64]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_43 
	 { [deriveEqual_43]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 11]}
	 {*ast.StarExpr [int8]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_44 
	 { [deriveEqual_44]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 12]}
	 {*ast.StarExpr [rune]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_45 
	 { [deriveEqual_45]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 13]}
	 {*ast.StarExpr [string]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_46 
	 { [deriveEqual_46]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 14]}
	 {*ast.StarExpr [uint]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_47 
	 { [deriveEqual_47]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 15]}
	 {*ast.StarExpr [uint16]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_48 
	 { [deriveEqual_48]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 16]}
	 {*ast.StarExpr [uint32]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_49 
	 { [deriveEqual_49]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 17]}
	 {*ast.StarExpr [uint64]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_50 
	 { [deriveEqual_50]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 18]}
	 {*ast.StarExpr [uint8]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_51 
	 { [deriveEqual_51]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 19]}
	 {*ast.StarExpr [uintptr]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_52 
	 { [deriveEqual_52]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 10]}
	 {*ast.StarExpr [bool]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [this i nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.IndexExpr [that i nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [this i]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_53 
	 { [deriveEqual_53]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [string uint32]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatv ok]}
	 {*ast.IndexExpr [that k]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [! ok]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [== v thatv]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_54 
	 { [deriveEqual_54]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [uint8 int64]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatv ok]}
	 {*ast.IndexExpr [that k]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [! ok]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [== v thatv]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_55 
	 { [deriveEqual_55]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [bool string]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatv ok]}
	 {*ast.IndexExpr [that k]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [! ok]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [== v thatv]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_56 
	 { [deriveEqual_56]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [string bool]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatv ok]}
	 {*ast.IndexExpr [that k]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [! ok]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [== v thatv]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_57 
	 { [deriveEqual_57]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [complex128 complex64]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatv ok]}
	 {*ast.IndexExpr [that k]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [! ok]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [== v thatv]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_58 
	 { [deriveEqual_58]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [float64 uint32]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatv ok]}
	 {*ast.IndexExpr [that k]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [! ok]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [== v thatv]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_59 
	 { [deriveEqual_59]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [uint16 uint8]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatv ok]}
	 {*ast.IndexExpr [that k]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [! ok]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [== v thatv]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_60 
	 { [deriveEqual_60]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.ArrayType [int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr -> *ast.CallExpr [deriveEqualSliceOfint]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_61 
	 { [deriveEqual_61]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.ArrayType [string]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr -> *ast.CallExpr [deriveEqual_10]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_62 
	 { [deriveEqual_62]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.ArrayType -> *ast.StarExpr [int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr -> *ast.CallExpr [deriveEqual_22]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_63 
	 { [deriveEqual_63]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [Name]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr -> *ast.CallExpr -> *ast.SelectorExpr -> *ast.IndexExpr [this i Equal]}
	 {*ast.UnaryExpr [&]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_64 
	 { [deriveEqual_64]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [Name]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr -> *ast.CallExpr -> *ast.SelectorExpr -> *ast.IndexExpr [this i Equal]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_65 
	 { [deriveEqual_65]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Name]}
	 {*ast.SelectorExpr [that Name]}


function name is deriveEqual_66 
	 { [deriveEqual_66]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_67 
	 { [deriveEqual_67]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr -> *ast.CallExpr [deriveEqual_65]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_68 
	 { [deriveEqual_68]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [Name string]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatv ok]}
	 {*ast.IndexExpr [that k]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [! ok]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [== v thatv]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_69 
	 { [deriveEqual_69]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [string Name]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatv ok]}
	 {*ast.IndexExpr [that k]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [! ok]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr -> *ast.CallExpr -> *ast.SelectorExpr [v Equal]}
	 {*ast.UnaryExpr [& thatv]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_70 
	 { [deriveEqual_70]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [string]}
	 {*ast.StarExpr [Name]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatv ok]}
	 {*ast.IndexExpr [that k]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [! ok]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr -> *ast.CallExpr -> *ast.SelectorExpr [v Equal thatv]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_71 
	 { [deriveEqual_71]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType [Name]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatv ok]}
	 {*ast.IndexExpr [that k]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [! ok]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr -> *ast.CallExpr [deriveEqual_63 v thatv]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_72 
	 { [deriveEqual_72]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType -> *ast.StarExpr [Name]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatv ok]}
	 {*ast.IndexExpr [that k]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [! ok]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr -> *ast.CallExpr [deriveEqual_64 v thatv]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_73 
	 { [deriveEqual_73]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [string StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatv ok]}
	 {*ast.IndexExpr [that k]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [! ok]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [== v thatv]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_74 
	 { [deriveEqual_74]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [StructWithoutMethod string]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatv ok]}
	 {*ast.IndexExpr [that k]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [! ok]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [== v thatv]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_75 
	 { [deriveEqual_75]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [string]}
	 {*ast.StarExpr [StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatv ok]}
	 {*ast.IndexExpr [that k]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [! ok]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr -> *ast.CallExpr [deriveEqual_65 v thatv]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_76 
	 { [deriveEqual_76]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType [StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatv ok]}
	 {*ast.IndexExpr [that k]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [! ok]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr -> *ast.CallExpr [deriveEqual_66 v thatv]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_77 
	 { [deriveEqual_77]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType -> *ast.StarExpr [StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatv ok]}
	 {*ast.IndexExpr [that k]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [! ok]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr -> *ast.CallExpr [deriveEqual_67 v thatv]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_78 
	 { [deriveEqual_78]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [int RecursiveType]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatv ok]}
	 {*ast.IndexExpr [that k]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [! ok]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr -> *ast.CallExpr -> *ast.SelectorExpr [v Equal]}
	 {*ast.UnaryExpr [& thatv]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_79 
	 { [deriveEqual_79]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [StructWithoutEqualMethod]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Num]}
	 {*ast.SelectorExpr [that Num]}


function name is deriveEqual_80 
	 { [deriveEqual_80]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr -> *ast.SelectorExpr [extra StructWithoutEqualMethod]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Number]}
	 {*ast.SelectorExpr [that Number]}


function name is deriveEqual_81 
	 { [deriveEqual_81]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr -> *ast.SelectorExpr [extra PrivateFieldAndNoEqualMethod]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thisv]}
	 {*ast.CallExpr -> *ast.SelectorExpr [reflect Indirect]}
	 {*ast.CallExpr -> *ast.SelectorExpr [reflect ValueOf this]}
	 {*ast.AssignStmt [:= thatv]}
	 {*ast.CallExpr -> *ast.SelectorExpr [reflect Indirect]}
	 {*ast.CallExpr -> *ast.SelectorExpr [reflect ValueOf that]}
	 {*ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [thisv FieldByName]}
	 {*ast.BasicLit [STRING "number"]}
	 { [UnsafeAddr]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [thatv FieldByName]}
	 {*ast.BasicLit [STRING "number"]}
	 { [UnsafeAddr]}
	 {*ast.CallExpr [deriveEqual_8]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [thisv FieldByName]}
	 {*ast.BasicLit [STRING "numbers"]}
	 { [UnsafeAddr]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [thatv FieldByName]}
	 {*ast.BasicLit [STRING "numbers"]}
	 { [UnsafeAddr]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [thisv FieldByName]}
	 {*ast.BasicLit [STRING "ptr"]}
	 { [UnsafeAddr nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [thatv FieldByName]}
	 {*ast.BasicLit [STRING "ptr"]}
	 { [UnsafeAddr nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [thisv FieldByName]}
	 {*ast.BasicLit [STRING "ptr"]}
	 { [UnsafeAddr nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [thatv FieldByName]}
	 {*ast.BasicLit [STRING "ptr"]}
	 { [UnsafeAddr nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [thisv FieldByName]}
	 {*ast.BasicLit [STRING "ptr"]}
	 { [UnsafeAddr]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [thatv FieldByName]}
	 {*ast.BasicLit [STRING "ptr"]}
	 { [UnsafeAddr]}
	 {*ast.CallExpr [deriveEqual_25]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [thisv FieldByName]}
	 {*ast.BasicLit [STRING "numberpts"]}
	 { [UnsafeAddr]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [thatv FieldByName]}
	 {*ast.BasicLit [STRING "numberpts"]}
	 { [UnsafeAddr]}
	 {*ast.CallExpr [deriveEqual_80]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.StarExpr -> *ast.SelectorExpr [extra StructWithoutEqualMethod]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [thisv FieldByName]}
	 {*ast.BasicLit [STRING "strct"]}
	 { [UnsafeAddr]}
	 {*ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr -> *ast.StarExpr -> *ast.SelectorExpr [extra StructWithoutEqualMethod]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [thatv FieldByName]}
	 {*ast.BasicLit [STRING "strct"]}
	 { [UnsafeAddr]}


function name is deriveEqual_82 
	 { [deriveEqual_82]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [MyEnum]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [true]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr [this]}
	 {*ast.StarExpr [that]}
	 {*ast.ReturnStmt [false]}


function name is deriveEqual_83 
	 { [deriveEqual_83]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [MyEnum]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_84 
	 { [deriveEqual_84]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr [MyEnum]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr -> *ast.CallExpr [deriveEqual_82]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_85 
	 { [deriveEqual_85]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [int32 MyEnum]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatv ok]}
	 {*ast.IndexExpr [that k]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [! ok]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [== v thatv]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_86 
	 { [deriveEqual_86]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [MyEnum int32]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatv ok]}
	 {*ast.IndexExpr [that k]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [! ok]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [== v thatv]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_87 
	 { [deriveEqual_87]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [MySlice]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [true]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr [this nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr [that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr [this nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr [that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr [this]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr [that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len]}
	 {*ast.StarExpr [this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr -> *ast.ParenExpr -> *ast.StarExpr [this i]}
	 {*ast.IndexExpr -> *ast.ParenExpr -> *ast.StarExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}
	 {*ast.ReturnStmt [false]}


function name is deriveEqual_88 
	 { [deriveEqual_88]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType [MySlice]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr -> *ast.CallExpr [deriveEqual_8]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_89 
	 { [deriveEqual_89]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr -> *ast.SelectorExpr [time Duration]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [true]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr [this]}
	 {*ast.StarExpr [that]}
	 {*ast.ReturnStmt [false]}


function name is deriveEqual_90 
	 { [deriveEqual_90]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.SelectorExpr [time Duration]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [==]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_91 
	 { [deriveEqual_91]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr -> *ast.SelectorExpr [time Duration]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr -> *ast.CallExpr [deriveEqual_89]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_92 
	 { [deriveEqual_92]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [int]}
	 {*ast.SelectorExpr [time Duration]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatv ok]}
	 {*ast.IndexExpr [that k]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [! ok]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [== v thatv]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_93 
	 { [deriveEqual_93]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType -> *ast.StarExpr -> *ast.SelectorExpr [pickle Rick]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.RangeStmt [k v this]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatv ok]}
	 {*ast.IndexExpr [that k]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [! ok]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr -> *ast.CallExpr [deriveEqual_98 v thatv]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_94 
	 { [deriveEqual_94]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [privateStruct]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this ptrfield nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [that ptrfield nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this ptrfield nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [that ptrfield nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [this ptrfield]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [that ptrfield]}


function name is deriveEqual_95 
	 { [deriveEqual_95]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr [Visitor]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this UserName nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [that UserName nil]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this UserName nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [that UserName nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [this UserName]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.SelectorExpr [that UserName]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this RemoteAddr]}
	 {*ast.SelectorExpr [that RemoteAddr]}


function name is deriveEqual_96 
	 { [deriveEqual_96]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr -> *ast.SelectorExpr [vendortest AVendoredObject]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr -> *ast.CallExpr [deriveEqual_99]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_97 
	 { [deriveEqual_97]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StructType -> *ast.FieldList -> *ast.Field [Param0]}
	 {*ast.StarExpr [BuiltInTypes]}
	 {*ast.Field [Param1 int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.SelectorExpr [this Param0 Equal]}
	 {*ast.SelectorExpr [that Param0]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Param1]}
	 {*ast.SelectorExpr [that Param1]}


function name is deriveSort 
	 { [deriveSort]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType [uint8]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [uint8]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [sort Slice list]}
	 {*ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [i j int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.IndexExpr [list i]}
	 {*ast.IndexExpr [list j]}
	 {*ast.ReturnStmt [list]}


function name is deriveSort_ 
	 { [deriveSort_]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType [bool]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [bool]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [sort Slice list]}
	 {*ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [i j int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [deriveCompare]}
	 {*ast.IndexExpr [list i]}
	 {*ast.IndexExpr [list j]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt [list]}


function name is deriveSort_1 
	 { [deriveSort_1]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType [complex128]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [complex128]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [sort Slice list]}
	 {*ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [i j int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [deriveCompareComplex64]}
	 {*ast.IndexExpr [list i]}
	 {*ast.IndexExpr [list j]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt [list]}


function name is deriveSort_2 
	 { [deriveSort_2]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType [float64]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [float64]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [sort Float64s list]}
	 {*ast.ReturnStmt [list]}


function name is deriveSort_3 
	 { [deriveSort_3]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType [uint16]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [uint16]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [sort Slice list]}
	 {*ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [i j int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.IndexExpr [list i]}
	 {*ast.IndexExpr [list j]}
	 {*ast.ReturnStmt [list]}


function name is deriveSort_4 
	 { [deriveSort_4]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType [Name]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [Name]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [sort Slice list]}
	 {*ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [i j int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [deriveCompare_N]}
	 {*ast.IndexExpr [list i]}
	 {*ast.IndexExpr [list j]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt [list]}


function name is deriveSort_5 
	 { [deriveSort_5]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType [StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [StructWithoutMethod]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [sort Slice list]}
	 {*ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [i j int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [deriveCompare_S]}
	 {*ast.IndexExpr [list i]}
	 {*ast.IndexExpr [list j]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt [list]}


function name is deriveSort_6 
	 { [deriveSort_6]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType [int32]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [int32]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [sort Slice list]}
	 {*ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [i j int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.IndexExpr [list i]}
	 {*ast.IndexExpr [list j]}
	 {*ast.ReturnStmt [list]}


function name is deriveSort_7 
	 { [deriveSort_7]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [list]}
	 {*ast.ArrayType [MyEnum]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [MyEnum]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [sort Slice list]}
	 {*ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [i j int]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.IndexExpr [list i]}
	 {*ast.IndexExpr [list j]}
	 {*ast.ReturnStmt [list]}


function name is deriveKeys 
	 { [deriveKeys]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [int int]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveKeys_ 
	 { [deriveKeys_]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [string uint32]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [string]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveKeys_1 
	 { [deriveKeys_1]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [uint8 int64]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [uint8]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [uint8]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveKeys_2 
	 { [deriveKeys_2]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [bool string]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [bool]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [bool]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveKeys_3 
	 { [deriveKeys_3]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [string bool]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [string]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveKeys_4 
	 { [deriveKeys_4]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [complex128 complex64]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [complex128]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [complex128]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveKeys_5 
	 { [deriveKeys_5]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [float64 uint32]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [float64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [float64]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveKeys_6 
	 { [deriveKeys_6]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [uint16 uint8]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [uint16]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [uint16]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveKeys_7 
	 { [deriveKeys_7]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [Name string]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [Name]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [Name]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveKeys_8 
	 { [deriveKeys_8]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [string Name]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [string]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveKeys_9 
	 { [deriveKeys_9]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [string]}
	 {*ast.StarExpr [Name]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [string]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveKeys_10 
	 { [deriveKeys_10]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType [Name]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [string]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveKeys_11 
	 { [deriveKeys_11]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType -> *ast.StarExpr [Name]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [string]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveKeys_12 
	 { [deriveKeys_12]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [string StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [string]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveKeys_13 
	 { [deriveKeys_13]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [StructWithoutMethod string]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [StructWithoutMethod]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [StructWithoutMethod]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveKeys_14 
	 { [deriveKeys_14]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [string]}
	 {*ast.StarExpr [StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [string]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveKeys_15 
	 { [deriveKeys_15]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType [StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [string]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveKeys_16 
	 { [deriveKeys_16]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType -> *ast.StarExpr [StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [string]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveKeys_17 
	 { [deriveKeys_17]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [int RecursiveType]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveKeys_18 
	 { [deriveKeys_18]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [int32 MyEnum]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [int32]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int32]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveKeys_19 
	 { [deriveKeys_19]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [MyEnum int32]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [MyEnum]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [MyEnum]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveKeys_20 
	 { [deriveKeys_20]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [int]}
	 {*ast.SelectorExpr [time Duration]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [int]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [int]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveKeys_21 
	 { [deriveKeys_21]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [m]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType -> *ast.StarExpr -> *ast.SelectorExpr [pickle Rick]}
	 {*ast.FieldList -> *ast.Field -> *ast.ArrayType [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= keys]}
	 {*ast.CallExpr [make]}
	 {*ast.ArrayType [string]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CallExpr [len m]}
	 {*ast.RangeStmt [key m]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= keys]}
	 {*ast.CallExpr [append keys key]}
	 {*ast.ReturnStmt [keys]}


function name is deriveHash_ 
	 { [deriveHash_]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object bool]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt [object]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveHash_s 
	 { [deriveHash_s]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object string]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.GenDecl -> *ast.ValueSpec [h uint64]}
	 {*ast.RangeStmt [_ c object]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64 c]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_1 
	 { [deriveHash_1]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [bool]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr [deriveHash_]}
	 {*ast.StarExpr [object]}


function name is deriveHash_2 
	 { [deriveHash_2]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [byte]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr [uint64]}
	 {*ast.StarExpr [object]}


function name is deriveHash_3 
	 { [deriveHash_3]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [complex128]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float64bits]}
	 {*ast.CallExpr [real]}
	 {*ast.StarExpr [object]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float64bits]}
	 {*ast.CallExpr [imag]}
	 {*ast.StarExpr [object]}


function name is deriveHash_4 
	 { [deriveHash_4]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [complex64]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr [uint64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float32bits]}
	 {*ast.CallExpr [real]}
	 {*ast.StarExpr [object]}
	 {*ast.CallExpr [uint64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float32bits]}
	 {*ast.CallExpr [imag]}
	 {*ast.StarExpr [object]}


function name is deriveHash_5 
	 { [deriveHash_5]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [float64]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float64bits]}
	 {*ast.StarExpr [object]}


function name is deriveHash_6 
	 { [deriveHash_6]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [float32]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr [uint64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float32bits]}
	 {*ast.StarExpr [object]}


function name is deriveHash_7 
	 { [deriveHash_7]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [int16]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr [uint64]}
	 {*ast.StarExpr [object]}


function name is deriveHash_8 
	 { [deriveHash_8]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [int32]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr [uint64]}
	 {*ast.StarExpr [object]}


function name is deriveHash_9 
	 { [deriveHash_9]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [int64]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr [uint64]}
	 {*ast.StarExpr [object]}


function name is deriveHash_10 
	 { [deriveHash_10]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [int8]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr [uint64]}
	 {*ast.StarExpr [object]}


function name is deriveHash_11 
	 { [deriveHash_11]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [string]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr [deriveHash_s]}
	 {*ast.StarExpr [object]}


function name is deriveHash_12 
	 { [deriveHash_12]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [uint]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr [uint64]}
	 {*ast.StarExpr [object]}


function name is deriveHash_13 
	 { [deriveHash_13]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [uint16]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr [uint64]}
	 {*ast.StarExpr [object]}


function name is deriveHash_14 
	 { [deriveHash_14]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [uint32]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr [uint64]}
	 {*ast.StarExpr [object]}


function name is deriveHash_15 
	 { [deriveHash_15]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [uint64]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.StarExpr [object]}


function name is deriveHash_16 
	 { [deriveHash_16]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [uintptr]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr [uint64]}
	 {*ast.StarExpr [object]}


function name is deriveHash_17 
	 { [deriveHash_17]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType [bool]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_18 
	 { [deriveHash_18]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType [byte]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_19 
	 { [deriveHash_19]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType [complex128]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float64bits]}
	 {*ast.CallExpr [real]}
	 {*ast.IndexExpr [object i]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float64bits]}
	 {*ast.CallExpr [imag]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_20 
	 { [deriveHash_20]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType [complex64]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr [uint64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float32bits]}
	 {*ast.CallExpr [real]}
	 {*ast.IndexExpr [object i]}
	 {*ast.CallExpr [uint64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float32bits]}
	 {*ast.CallExpr [imag]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_21 
	 { [deriveHash_21]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType [float64]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float64bits]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_22 
	 { [deriveHash_22]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType [float32]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float32bits]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_23 
	 { [deriveHash_23]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType [int16]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_24 
	 { [deriveHash_24]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType [int32]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_25 
	 { [deriveHash_25]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType [int64]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_26 
	 { [deriveHash_26]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType [int8]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_27 
	 { [deriveHash_27]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType [string]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_s]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_28 
	 { [deriveHash_28]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType [uint]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_29 
	 { [deriveHash_29]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType [uint16]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_30 
	 { [deriveHash_30]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType [uint32]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_31 
	 { [deriveHash_31]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType [uint64]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_32 
	 { [deriveHash_32]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType [uintptr]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_33 
	 { [deriveHash_33]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.StarExpr [bool]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_1]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_34 
	 { [deriveHash_34]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.StarExpr [byte]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_2]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_35 
	 { [deriveHash_35]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.StarExpr [complex128]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_3]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_36 
	 { [deriveHash_36]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.StarExpr [complex64]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_4]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_37 
	 { [deriveHash_37]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.StarExpr [float64]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_5]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_38 
	 { [deriveHash_38]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.StarExpr [float32]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_6]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_39 
	 { [deriveHash_39]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.StarExpr [int]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHashPtrToint]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_40 
	 { [deriveHash_40]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.StarExpr [int16]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_7]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_41 
	 { [deriveHash_41]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.StarExpr [int32]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_8]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_42 
	 { [deriveHash_42]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.StarExpr [int64]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_9]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_43 
	 { [deriveHash_43]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.StarExpr [int8]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_10]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_44 
	 { [deriveHash_44]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.StarExpr [string]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_11]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_45 
	 { [deriveHash_45]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.StarExpr [uint]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_12]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_46 
	 { [deriveHash_46]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.StarExpr [uint16]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_13]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_47 
	 { [deriveHash_47]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.StarExpr [uint32]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_14]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_48 
	 { [deriveHash_48]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.StarExpr [uint64]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_15]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_49 
	 { [deriveHash_49]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.StarExpr [uintptr]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_16]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_50 
	 { [deriveHash_50]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 1]}
	 { [bool]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_51 
	 { [deriveHash_51]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 2]}
	 { [byte]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_52 
	 { [deriveHash_52]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 3]}
	 { [complex128]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float64bits]}
	 {*ast.CallExpr [real]}
	 {*ast.IndexExpr [object i]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float64bits]}
	 {*ast.CallExpr [imag]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_53 
	 { [deriveHash_53]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 4]}
	 { [complex64]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr [uint64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float32bits]}
	 {*ast.CallExpr [real]}
	 {*ast.IndexExpr [object i]}
	 {*ast.CallExpr [uint64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float32bits]}
	 {*ast.CallExpr [imag]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_54 
	 { [deriveHash_54]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 5]}
	 { [float64]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float64bits]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_55 
	 { [deriveHash_55]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 6]}
	 { [float32]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float32bits]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_56 
	 { [deriveHash_56]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 7]}
	 { [int]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_57 
	 { [deriveHash_57]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 8]}
	 { [int16]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_58 
	 { [deriveHash_58]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 9]}
	 { [int32]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_59 
	 { [deriveHash_59]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 10]}
	 { [int64]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_60 
	 { [deriveHash_60]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 11]}
	 { [int8]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_61 
	 { [deriveHash_61]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 12]}
	 { [rune]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_62 
	 { [deriveHash_62]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 13]}
	 { [string]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_s]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_63 
	 { [deriveHash_63]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 14]}
	 { [uint]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_64 
	 { [deriveHash_64]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 15]}
	 { [uint16]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_65 
	 { [deriveHash_65]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 16]}
	 { [uint32]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_66 
	 { [deriveHash_66]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 17]}
	 { [uint64]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_67 
	 { [deriveHash_67]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 18]}
	 { [uint8]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_68 
	 { [deriveHash_68]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 19]}
	 { [uintptr]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_69 
	 { [deriveHash_69]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 10]}
	 { [bool]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_70 
	 { [deriveHash_70]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 1]}
	 {*ast.StarExpr [bool]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_1]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_71 
	 { [deriveHash_71]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 2]}
	 {*ast.StarExpr [byte]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_2]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_72 
	 { [deriveHash_72]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 3]}
	 {*ast.StarExpr [complex128]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_3]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_73 
	 { [deriveHash_73]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 4]}
	 {*ast.StarExpr [complex64]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_4]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_74 
	 { [deriveHash_74]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 5]}
	 {*ast.StarExpr [float64]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_5]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_75 
	 { [deriveHash_75]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 6]}
	 {*ast.StarExpr [float32]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_6]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_76 
	 { [deriveHash_76]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 7]}
	 {*ast.StarExpr [int]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHashPtrToint]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_77 
	 { [deriveHash_77]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 8]}
	 {*ast.StarExpr [int16]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_7]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_78 
	 { [deriveHash_78]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 9]}
	 {*ast.StarExpr [int32]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_8]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_79 
	 { [deriveHash_79]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 10]}
	 {*ast.StarExpr [int64]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_9]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_80 
	 { [deriveHash_80]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 11]}
	 {*ast.StarExpr [int8]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_10]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_81 
	 { [deriveHash_81]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 12]}
	 {*ast.StarExpr [rune]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_8]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_82 
	 { [deriveHash_82]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 13]}
	 {*ast.StarExpr [string]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_11]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_83 
	 { [deriveHash_83]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 14]}
	 {*ast.StarExpr [uint]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_12]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_84 
	 { [deriveHash_84]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 15]}
	 {*ast.StarExpr [uint16]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_13]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_85 
	 { [deriveHash_85]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 16]}
	 {*ast.StarExpr [uint32]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_14]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_86 
	 { [deriveHash_86]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 17]}
	 {*ast.StarExpr [uint64]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_15]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_87 
	 { [deriveHash_87]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 18]}
	 {*ast.StarExpr [uint8]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_2]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_88 
	 { [deriveHash_88]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 19]}
	 {*ast.StarExpr [uintptr]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_16]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_89 
	 { [deriveHash_89]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 10]}
	 {*ast.StarExpr [bool]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_1]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_90 
	 { [deriveHash_90]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.MapType [string uint32]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.RangeStmt [_ k]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_ object]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_s k]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object k]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_91 
	 { [deriveHash_91]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.MapType [uint8 int64]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.RangeStmt [_ k]}
	 {*ast.CallExpr [deriveSort]}
	 {*ast.CallExpr [deriveKeys_1 object]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64 k]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object k]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_92 
	 { [deriveHash_92]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.MapType [bool string]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.RangeStmt [_ k]}
	 {*ast.CallExpr [deriveSort_]}
	 {*ast.CallExpr [deriveKeys_2 object]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_ k]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_s]}
	 {*ast.IndexExpr [object k]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_93 
	 { [deriveHash_93]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.MapType [string bool]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.RangeStmt [_ k]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_3 object]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_s k]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_]}
	 {*ast.IndexExpr [object k]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_94 
	 { [deriveHash_94]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.MapType [complex128 complex64]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.RangeStmt [_ k]}
	 {*ast.CallExpr [deriveSort_1]}
	 {*ast.CallExpr [deriveKeys_4 object]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float64bits]}
	 {*ast.CallExpr [real k]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float64bits]}
	 {*ast.CallExpr [imag k]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr [uint64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float32bits]}
	 {*ast.CallExpr [real]}
	 {*ast.IndexExpr [object k]}
	 {*ast.CallExpr [uint64]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float32bits]}
	 {*ast.CallExpr [imag]}
	 {*ast.IndexExpr [object k]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_95 
	 { [deriveHash_95]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.MapType [float64 uint32]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.RangeStmt [_ k]}
	 {*ast.CallExpr [deriveSort_2]}
	 {*ast.CallExpr [deriveKeys_5 object]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr -> *ast.SelectorExpr [math Float64bits k]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object k]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_96 
	 { [deriveHash_96]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.MapType [uint16 uint8]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.RangeStmt [_ k]}
	 {*ast.CallExpr [deriveSort_3]}
	 {*ast.CallExpr [deriveKeys_6 object]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64 k]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object k]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_97 
	 { [deriveHash_97]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.ArrayType [int]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHashSliceOfint]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_98 
	 { [deriveHash_98]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.ArrayType [string]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_27]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_99 
	 { [deriveHash_99]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.ArrayType -> *ast.StarExpr [int]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_39]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_100 
	 { [deriveHash_100]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr -> *ast.ArrayType -> *ast.BasicLit [INT 4]}
	 { [int]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr [deriveHash_134]}
	 {*ast.StarExpr [object]}


function name is deriveHash_N 
	 { [deriveHash_N]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object Name]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr [deriveHashName]}
	 {*ast.UnaryExpr [& object]}


function name is deriveHash_101 
	 { [deriveHash_101]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType [Name]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_N]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_102 
	 { [deriveHash_102]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.StarExpr [Name]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHashName]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_S 
	 { [deriveHash_S]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr [deriveHash_103]}
	 {*ast.UnaryExpr [& object]}


function name is deriveHash_103 
	 { [deriveHash_103]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_s]}
	 {*ast.SelectorExpr [object Name]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_104 
	 { [deriveHash_104]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType [StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_S]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_105 
	 { [deriveHash_105]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.StarExpr [StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_103]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_106 
	 { [deriveHash_106]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.MapType [Name string]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.RangeStmt [_ k]}
	 {*ast.CallExpr [deriveSort_4]}
	 {*ast.CallExpr [deriveKeys_7 object]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_N k]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_s]}
	 {*ast.IndexExpr [object k]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_107 
	 { [deriveHash_107]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.MapType [string Name]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.RangeStmt [_ k]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_8 object]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_s k]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_N]}
	 {*ast.IndexExpr [object k]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_108 
	 { [deriveHash_108]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.MapType [string]}
	 {*ast.StarExpr [Name]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.RangeStmt [_ k]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_9 object]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_s k]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHashName]}
	 {*ast.IndexExpr [object k]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_109 
	 { [deriveHash_109]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType [Name]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.RangeStmt [_ k]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_10 object]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_s k]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_101]}
	 {*ast.IndexExpr [object k]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_110 
	 { [deriveHash_110]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType -> *ast.StarExpr [Name]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.RangeStmt [_ k]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_11 object]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_s k]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_102]}
	 {*ast.IndexExpr [object k]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_111 
	 { [deriveHash_111]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.MapType [string StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.RangeStmt [_ k]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_12 object]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_s k]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_S]}
	 {*ast.IndexExpr [object k]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_112 
	 { [deriveHash_112]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.MapType [StructWithoutMethod string]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.RangeStmt [_ k]}
	 {*ast.CallExpr [deriveSort_5]}
	 {*ast.CallExpr [deriveKeys_13 object]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_S k]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_s]}
	 {*ast.IndexExpr [object k]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_113 
	 { [deriveHash_113]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.MapType [string]}
	 {*ast.StarExpr [StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.RangeStmt [_ k]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_14 object]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_s k]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_103]}
	 {*ast.IndexExpr [object k]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_114 
	 { [deriveHash_114]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType [StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.RangeStmt [_ k]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_15 object]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_s k]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_104]}
	 {*ast.IndexExpr [object k]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_115 
	 { [deriveHash_115]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType -> *ast.StarExpr [StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.RangeStmt [_ k]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_16 object]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_s k]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_105]}
	 {*ast.IndexExpr [object k]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_116 
	 { [deriveHash_116]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.MapType [int RecursiveType]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.RangeStmt [_ k]}
	 {*ast.CallExpr [deriveSortedInts]}
	 {*ast.CallExpr [deriveKeys_17 object]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64 k]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_R]}
	 {*ast.IndexExpr [object k]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_St 
	 { [deriveHash_St]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object Structs]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr [deriveHashStructs]}
	 {*ast.UnaryExpr [& object]}


function name is deriveHash_117 
	 { [deriveHash_117]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [StructWithoutEqualMethod]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object Num]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_Str 
	 { [deriveHash_Str]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object StructWithoutEqualMethod]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr [deriveHash_117]}
	 {*ast.UnaryExpr [& object]}


function name is deriveHash_118 
	 { [deriveHash_118]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr -> *ast.SelectorExpr [extra StructWithoutEqualMethod]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object Number]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_Stru 
	 { [deriveHash_Stru]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.SelectorExpr [extra StructWithoutEqualMethod]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr [deriveHash_118]}
	 {*ast.UnaryExpr [& object]}


function name is deriveHash_119 
	 { [deriveHash_119]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [MyEnum]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr [uint64]}
	 {*ast.StarExpr [object]}


function name is deriveHash_120 
	 { [deriveHash_120]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType [MyEnum]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_121 
	 { [deriveHash_121]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.StarExpr [MyEnum]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_119]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_122 
	 { [deriveHash_122]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.MapType [int32 MyEnum]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.RangeStmt [_ k]}
	 {*ast.CallExpr [deriveSort_6]}
	 {*ast.CallExpr [deriveKeys_18 object]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64 k]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object k]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_123 
	 { [deriveHash_123]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.MapType [MyEnum int32]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.RangeStmt [_ k]}
	 {*ast.CallExpr [deriveSort_7]}
	 {*ast.CallExpr [deriveKeys_19 object]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64 k]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object k]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_124 
	 { [deriveHash_124]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 2]}
	 { [MyEnum]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_125 
	 { [deriveHash_125]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [MySlice]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr [deriveHash_25]}
	 {*ast.StarExpr [object]}


function name is deriveHash_126 
	 { [deriveHash_126]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType [MySlice]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_25]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_127 
	 { [deriveHash_127]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr -> *ast.SelectorExpr [time Duration]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.BinaryExpr [+]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.CallExpr [uint64]}
	 {*ast.StarExpr [object]}


function name is deriveHash_128 
	 { [deriveHash_128]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.SelectorExpr [time Duration]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_129 
	 { [deriveHash_129]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.StarExpr -> *ast.SelectorExpr [time Duration]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_127]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_130 
	 { [deriveHash_130]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.MapType [int]}
	 {*ast.SelectorExpr [time Duration]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.RangeStmt [_ k]}
	 {*ast.CallExpr [deriveSortedInts]}
	 {*ast.CallExpr [deriveKeys_20 object]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64 k]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object k]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_131 
	 { [deriveHash_131]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.MapType [string]}
	 {*ast.ArrayType -> *ast.StarExpr -> *ast.SelectorExpr [pickle Rick]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.RangeStmt [_ k]}
	 {*ast.CallExpr [deriveSortedStrings]}
	 {*ast.CallExpr [deriveKeys_21 object]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_s k]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_135]}
	 {*ast.IndexExpr [object k]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_p 
	 { [deriveHash_p]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object privateStruct]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr [deriveHash_136]}
	 {*ast.UnaryExpr [& object]}


function name is deriveHash_132 
	 { [deriveHash_132]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 10]}
	 { [int]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_133 
	 { [deriveHash_133]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StructType -> *ast.FieldList -> *ast.Field [Param0]}
	 {*ast.StarExpr [BuiltInTypes]}
	 {*ast.Field [Param1 int]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHashBuiltInTypes]}
	 {*ast.SelectorExpr [object Param0]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.SelectorExpr [object Param1]}
	 {*ast.ReturnStmt [h]}


function name is deriveGoString_71 
	 { [deriveGoString_71]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [bool]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *bool {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := new(bool)\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "*this = %#v\n"]}
	 {*ast.StarExpr [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_72 
	 { [deriveGoString_72]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [byte]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *byte {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := new(byte)\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "*this = %#v\n"]}
	 {*ast.StarExpr [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_73 
	 { [deriveGoString_73]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [complex128]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *complex128 {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := new(complex128)\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "*this = %#v\n"]}
	 {*ast.StarExpr [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_74 
	 { [deriveGoString_74]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [complex64]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *complex64 {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := new(complex64)\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "*this = %#v\n"]}
	 {*ast.StarExpr [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_75 
	 { [deriveGoString_75]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [float64]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *float64 {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := new(float64)\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "*this = %#v\n"]}
	 {*ast.StarExpr [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_76 
	 { [deriveGoString_76]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [float32]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *float32 {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := new(float32)\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "*this = %#v\n"]}
	 {*ast.StarExpr [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_77 
	 { [deriveGoString_77]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [int16]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *int16 {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := new(int16)\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "*this = %#v\n"]}
	 {*ast.StarExpr [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_78 
	 { [deriveGoString_78]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [int32]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *int32 {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := new(int32)\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "*this = %#v\n"]}
	 {*ast.StarExpr [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_79 
	 { [deriveGoString_79]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [int64]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *int64 {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := new(int64)\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "*this = %#v\n"]}
	 {*ast.StarExpr [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_80 
	 { [deriveGoString_80]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [int8]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *int8 {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := new(int8)\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "*this = %#v\n"]}
	 {*ast.StarExpr [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_81 
	 { [deriveGoString_81]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [string]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *string {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := new(string)\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "*this = %#v\n"]}
	 {*ast.StarExpr [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_82 
	 { [deriveGoString_82]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [uint]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *uint {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := new(uint)\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "*this = %#v\n"]}
	 {*ast.StarExpr [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_83 
	 { [deriveGoString_83]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [uint16]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *uint16 {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := new(uint16)\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "*this = %#v\n"]}
	 {*ast.StarExpr [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_84 
	 { [deriveGoString_84]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [uint32]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *uint32 {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := new(uint32)\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "*this = %#v\n"]}
	 {*ast.StarExpr [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_85 
	 { [deriveGoString_85]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [uint64]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *uint64 {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := new(uint64)\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "*this = %#v\n"]}
	 {*ast.StarExpr [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_86 
	 { [deriveGoString_86]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr [uintptr]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *uintptr {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := new(uintptr)\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "*this = %#v\n"]}
	 {*ast.StarExpr [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_87 
	 { [deriveGoString_87]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType [string]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []string {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return %#v\n"]}
	 { [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_s 
	 { [deriveGoString_s]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this string]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() string {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return %#v\n"]}
	 { [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_R 
	 { [deriveGoString_R]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this RecursiveType]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() test.RecursiveType {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &test.RecursiveType{}\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this Bytes nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Bytes = %#v\n"]}
	 {*ast.SelectorExpr [this Bytes]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [this N nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.N = %s\n"]}
	 {*ast.CallExpr [deriveGoString_55]}
	 {*ast.SelectorExpr [this N]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return *this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_M 
	 { [deriveGoString_M]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this MyEnum]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() test.MyEnum {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return %#v\n"]}
	 { [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_i 
	 { [deriveGoString_i]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this int32]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() int32 {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return %#v\n"]}
	 { [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_My 
	 { [deriveGoString_My]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this MySlice]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() test.MySlice {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return %#v\n"]}
	 { [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_D 
	 { [deriveGoString_D]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.SelectorExpr [time Duration]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() time.Duration {\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return %#v\n"]}
	 { [this]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveGoString_88 
	 { [deriveGoString_88]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.ArrayType -> *ast.StarExpr -> *ast.SelectorExpr [pickle Rick]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() []*pickle.Rick {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := make([]*pickle.Rick, %d)\n"]}
	 {*ast.CallExpr [len this]}
	 {*ast.RangeStmt [i this]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this[%d] = %s\n"]}
	 { [i]}
	 {*ast.CallExpr [deriveGoString_89]}
	 {*ast.IndexExpr [this i]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveDeepCopy_55 
	 { [deriveDeepCopy_55]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [dst src]}
	 {*ast.ArrayType -> *ast.StarExpr -> *ast.SelectorExpr [pickle Rick]}
	 {*ast.BlockStmt -> *ast.RangeStmt [src_i src_value src]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== src_value nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i nil]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.IndexExpr [dst src_i]}
	 {*ast.CallExpr [new]}
	 {*ast.SelectorExpr [pickle Rick]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.IndexExpr [dst src_i]}
	 {*ast.StarExpr [src_value]}


function name is deriveCompare_s 
	 { [deriveCompare_s]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that string]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [strings Compare this that]}


function name is deriveCompare_138 
	 { [deriveCompare_138]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 4]}
	 { [int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_i]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_139 
	 { [deriveCompare_139]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.MapType [int int]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.AssignStmt [:= thiskeys]}
	 {*ast.CallExpr [deriveSortedInts]}
	 {*ast.CallExpr [deriveKeys this]}
	 {*ast.AssignStmt [:= thatkeys]}
	 {*ast.CallExpr [deriveSortedInts]}
	 {*ast.CallExpr [deriveKeys that]}
	 {*ast.RangeStmt [i thiskey thiskeys]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thatkey]}
	 {*ast.IndexExpr [thatkeys i]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== thiskey thatkey]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= thisvalue]}
	 {*ast.IndexExpr [this thiskey]}
	 {*ast.AssignStmt [:= thatvalue]}
	 {*ast.IndexExpr [that thatkey]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_i thisvalue thatvalue]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_i thiskey thatkey]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_140 
	 { [deriveCompare_140]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr -> *ast.SelectorExpr [pickle Rick]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [<]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr [deriveCompare_141]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveCompare_N 
	 { [deriveCompare_N]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that Name]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr -> *ast.ParenExpr []}
	 {*ast.UnaryExpr [& this Compare]}
	 {*ast.UnaryExpr [& that]}


function name is deriveCompare_S 
	 { [deriveCompare_S]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that StructWithoutMethod]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr [deriveCompare_107]}
	 {*ast.UnaryExpr [& this]}
	 {*ast.UnaryExpr [& that]}


function name is deriveEqual_98 
	 { [deriveEqual_98]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.ArrayType -> *ast.StarExpr -> *ast.SelectorExpr [pickle Rick]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr [len this]}
	 {*ast.CallExpr [len that]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len this]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.UnaryExpr [!]}
	 {*ast.ParenExpr -> *ast.CallExpr [deriveEqual_100]}
	 {*ast.IndexExpr [this i]}
	 {*ast.IndexExpr [that i]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [false]}
	 {*ast.ReturnStmt [true]}


function name is deriveEqual_99 
	 { [deriveEqual_99]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr -> *ast.SelectorExpr [vendortest AVendoredObject]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Name]}
	 {*ast.SelectorExpr [that Name]}


function name is deriveHash_134 
	 { [deriveHash_134]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.BasicLit [INT 4]}
	 { [int]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_R 
	 { [deriveHash_R]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object RecursiveType]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr [deriveHashRecursiveType]}
	 {*ast.UnaryExpr [& object]}


function name is deriveHash_135 
	 { [deriveHash_135]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.ArrayType -> *ast.StarExpr -> *ast.SelectorExpr [pickle Rick]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.ForStmt -> *ast.AssignStmt [:= i]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BinaryExpr [< i]}
	 {*ast.CallExpr [len object]}
	 {*ast.IncDecStmt [i]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_137]}
	 {*ast.IndexExpr [object i]}
	 {*ast.ReturnStmt [h]}


function name is deriveHash_136 
	 { [deriveHash_136]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr [privateStruct]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHashPtrToint]}
	 {*ast.SelectorExpr [object ptrfield]}
	 {*ast.ReturnStmt [h]}


function name is deriveGoString_89 
	 { [deriveGoString_89]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this]}
	 {*ast.StarExpr -> *ast.SelectorExpr [pickle Rick]}
	 {*ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [bytes NewBuffer nil]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "func() *pickle.Rick {\n"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return nil\n"]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this := &pickle.Rick{}\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "this.Portal = %#v\n"]}
	 {*ast.SelectorExpr [this Portal]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "return this\n"]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf buf]}
	 {*ast.BasicLit [STRING "}()\n"]}
	 {*ast.ReturnStmt -> *ast.CallExpr -> *ast.SelectorExpr [buf String]}


function name is deriveCompare_141 
	 { [deriveCompare_141]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr -> *ast.SelectorExpr [pickle Rick]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt []}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 1]}
	 {*ast.IfStmt -> *ast.AssignStmt [:= c]}
	 {*ast.CallExpr -> *ast.SelectorExpr [strings Compare]}
	 {*ast.SelectorExpr [this Portal]}
	 {*ast.SelectorExpr [that Portal]}
	 {*ast.BinaryExpr [!= c]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ReturnStmt [c]}
	 {*ast.ReturnStmt -> *ast.BasicLit [INT 0]}


function name is deriveEqual_100 
	 { [deriveEqual_100]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [this that]}
	 {*ast.StarExpr -> *ast.SelectorExpr [pickle Rick]}
	 {*ast.FieldList -> *ast.Field [bool]}
	 {*ast.BlockStmt -> *ast.ReturnStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.ParenExpr []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [== this nil]}
	 {*ast.BinaryExpr [== that nil]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!= this nil]}
	 {*ast.BinaryExpr [!= that nil]}
	 {*ast.BinaryExpr [==]}
	 {*ast.SelectorExpr [this Portal]}
	 {*ast.SelectorExpr [that Portal]}


function name is deriveHash_137 
	 { [deriveHash_137]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [object]}
	 {*ast.StarExpr -> *ast.SelectorExpr [pickle Rick]}
	 {*ast.FieldList -> *ast.Field [uint64]}
	 {*ast.BlockStmt -> *ast.IfStmt []}
	 {*ast.BinaryExpr [== object nil]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.BasicLit [INT 0]}
	 {*ast.AssignStmt [:= h]}
	 {*ast.CallExpr [uint64]}
	 {*ast.BasicLit [INT 17]}
	 {*ast.AssignStmt [= h]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BinaryExpr [*]}
	 {*ast.BasicLit [INT 31]}
	 { [h]}
	 {*ast.CallExpr [deriveHash_s]}
	 {*ast.SelectorExpr [object Portal]}
	 {*ast.ReturnStmt [h]}


