// Code generated by golang.org/x/tools/cmd/bundle.
//   $ bundle

// The package doc comment
//

package dest

import (
	"fmt"

	"domain.name/importdecl"
)

// init functions are not renamed
func init() { prefixfoo() }

// Type S.
type prefixS struct {
	prefixt
	u int
}

// Function bar.
func prefixbar(s *prefixS) { fmt.Println(s.prefixt, s.u) }

type prefixt int

const prefixc = 1

func prefixfoo() {
	fmt.Println(importdecl.F())
}
