all: make goimports happy

run goimports with -local flag. separates cue packages and other.
  $ goimports -w -local cuelang.org/go .

Change-Id: I3849b916fde18e4f62789cfe5220e12a84aaddbc
Reviewed-on: https://cue-review.googlesource.com/c/cue/+/4501
Reviewed-by: Marcel van Lohuizen <mpvl@golang.org>
diff --git a/cmd/cue/cmd/add.go b/cmd/cue/cmd/add.go
index 4eba6e2..b4dd65c 100644
--- a/cmd/cue/cmd/add.go
+++ b/cmd/cue/cmd/add.go
@@ -25,13 +25,14 @@
 	"path/filepath"
 	"strings"
 
+	"github.com/spf13/cobra"
+
 	"cuelang.org/go/cue"
 	"cuelang.org/go/cue/build"
 	"cuelang.org/go/cue/format"
 	"cuelang.org/go/cue/load"
 	"cuelang.org/go/cue/parser"
 	"cuelang.org/go/internal"
-	"github.com/spf13/cobra"
 )
 
 func newAddCmd(c *Command) *cobra.Command {
diff --git a/cmd/cue/cmd/common.go b/cmd/cue/cmd/common.go
index af5d6b5..6590a04 100644
--- a/cmd/cue/cmd/common.go
+++ b/cmd/cue/cmd/common.go
@@ -21,15 +21,16 @@
 	"strings"
 	"testing"
 
+	"github.com/spf13/cobra"
+	"golang.org/x/text/language"
+	"golang.org/x/text/message"
+
 	"cuelang.org/go/cue"
 	"cuelang.org/go/cue/ast"
 	"cuelang.org/go/cue/build"
 	"cuelang.org/go/cue/errors"
 	"cuelang.org/go/cue/load"
 	"cuelang.org/go/cue/parser"
-	"github.com/spf13/cobra"
-	"golang.org/x/text/language"
-	"golang.org/x/text/message"
 )
 
 // Disallow
diff --git a/cmd/cue/cmd/custom.go b/cmd/cue/cmd/custom.go
index ae62f5f..7000921 100644
--- a/cmd/cue/cmd/custom.go
+++ b/cmd/cue/cmd/custom.go
@@ -29,6 +29,9 @@
 	"strings"
 	"sync"
 
+	"github.com/spf13/cobra"
+	"golang.org/x/sync/errgroup"
+
 	"cuelang.org/go/cue"
 	"cuelang.org/go/internal"
 	itask "cuelang.org/go/internal/task"
@@ -38,8 +41,6 @@
 	_ "cuelang.org/go/pkg/tool/file"
 	_ "cuelang.org/go/pkg/tool/http"
 	_ "cuelang.org/go/pkg/tool/os"
-	"github.com/spf13/cobra"
-	"golang.org/x/sync/errgroup"
 )
 
 const (
diff --git a/cmd/cue/cmd/eval.go b/cmd/cue/cmd/eval.go
index befbc69..efa8afa 100644
--- a/cmd/cue/cmd/eval.go
+++ b/cmd/cue/cmd/eval.go
@@ -18,11 +18,12 @@
 	"bytes"
 	"fmt"
 
+	"github.com/spf13/cobra"
+
 	"cuelang.org/go/cue"
 	"cuelang.org/go/cue/ast"
 	"cuelang.org/go/cue/format"
 	"cuelang.org/go/cue/parser"
-	"github.com/spf13/cobra"
 )
 
 // newEvalCmd creates a new eval command
diff --git a/cmd/cue/cmd/export.go b/cmd/cue/cmd/export.go
index 7183c13..9f6c09e 100644
--- a/cmd/cue/cmd/export.go
+++ b/cmd/cue/cmd/export.go
@@ -19,9 +19,10 @@
 	"fmt"
 	"io"
 
+	"github.com/spf13/cobra"
+
 	"cuelang.org/go/cue"
 	"cuelang.org/go/pkg/encoding/yaml"
-	"github.com/spf13/cobra"
 )
 
 // newExportCmd creates and export command
diff --git a/cmd/cue/cmd/fmt.go b/cmd/cue/cmd/fmt.go
index 810ddec..1f7aaca 100644
--- a/cmd/cue/cmd/fmt.go
+++ b/cmd/cue/cmd/fmt.go
@@ -18,10 +18,11 @@
 	"io/ioutil"
 	"os"
 
+	"github.com/spf13/cobra"
+
 	"cuelang.org/go/cue/format"
 	"cuelang.org/go/cue/load"
 	"cuelang.org/go/cue/parser"
-	"github.com/spf13/cobra"
 )
 
 func newFmtCmd(c *Command) *cobra.Command {
diff --git a/cmd/cue/cmd/get_go.go b/cmd/cue/cmd/get_go.go
index 226c8f0..877a2ab 100644
--- a/cmd/cue/cmd/get_go.go
+++ b/cmd/cue/cmd/get_go.go
@@ -31,14 +31,15 @@
 	"strconv"
 	"strings"
 
+	"github.com/spf13/cobra"
+	"golang.org/x/tools/go/packages"
+
 	cueast "cuelang.org/go/cue/ast"
 	"cuelang.org/go/cue/format"
 	"cuelang.org/go/cue/load"
 	"cuelang.org/go/cue/parser"
 	cuetoken "cuelang.org/go/cue/token"
 	"cuelang.org/go/internal"
-	"github.com/spf13/cobra"
-	"golang.org/x/tools/go/packages"
 )
 
 // TODO:
diff --git a/cmd/cue/cmd/import.go b/cmd/cue/cmd/import.go
index 169d1ac..cc74748 100644
--- a/cmd/cue/cmd/import.go
+++ b/cmd/cue/cmd/import.go
@@ -25,6 +25,9 @@
 	"sync"
 	"unicode"
 
+	"github.com/spf13/cobra"
+	"golang.org/x/sync/errgroup"
+
 	"cuelang.org/go/cue"
 	"cuelang.org/go/cue/ast"
 	"cuelang.org/go/cue/ast/astutil"
@@ -39,8 +42,6 @@
 	"cuelang.org/go/encoding/protobuf"
 	"cuelang.org/go/internal"
 	"cuelang.org/go/internal/third_party/yaml"
-	"github.com/spf13/cobra"
-	"golang.org/x/sync/errgroup"
 )
 
 func newImportCmd(c *Command) *cobra.Command {
diff --git a/cmd/cue/cmd/root.go b/cmd/cue/cmd/root.go
index 41198d7..b52d9ed 100644
--- a/cmd/cue/cmd/root.go
+++ b/cmd/cue/cmd/root.go
@@ -21,9 +21,10 @@
 	"os"
 	"strings"
 
+	"github.com/spf13/cobra"
+
 	"cuelang.org/go/cue/errors"
 	"cuelang.org/go/cue/token"
-	"github.com/spf13/cobra"
 )
 
 // TODO: commands
diff --git a/cmd/cue/cmd/script_test.go b/cmd/cue/cmd/script_test.go
index e3bae80..13b7097 100644
--- a/cmd/cue/cmd/script_test.go
+++ b/cmd/cue/cmd/script_test.go
@@ -9,10 +9,11 @@
 	"strings"
 	"testing"
 
-	"cuelang.org/go/cue/errors"
-	"cuelang.org/go/cue/parser"
 	"github.com/rogpeppe/testscript"
 	"github.com/rogpeppe/testscript/txtar"
+
+	"cuelang.org/go/cue/errors"
+	"cuelang.org/go/cue/parser"
 )
 
 // TestLatest checks that the examples match the latest language standard,
diff --git a/cmd/cue/cmd/trim.go b/cmd/cue/cmd/trim.go
index d690e29..44d4e36 100644
--- a/cmd/cue/cmd/trim.go
+++ b/cmd/cue/cmd/trim.go
@@ -19,10 +19,11 @@
 	"io/ioutil"
 	"os"
 
+	"github.com/spf13/cobra"
+
 	"cuelang.org/go/cue/format"
 	"cuelang.org/go/internal"
 	"cuelang.org/go/tools/trim"
-	"github.com/spf13/cobra"
 )
 
 // TODO:
diff --git a/cmd/cue/cmd/vet.go b/cmd/cue/cmd/vet.go
index f7145ab..946f34f 100644
--- a/cmd/cue/cmd/vet.go
+++ b/cmd/cue/cmd/vet.go
@@ -20,13 +20,14 @@
 	"io/ioutil"
 	"path/filepath"
 
+	"github.com/spf13/cobra"
+	"golang.org/x/text/message"
+
 	"cuelang.org/go/cue"
 	"cuelang.org/go/cue/ast"
 	"cuelang.org/go/cue/encoding"
 	"cuelang.org/go/cue/parser"
 	"cuelang.org/go/internal"
-	"github.com/spf13/cobra"
-	"golang.org/x/text/message"
 )
 
 const vetDoc = `vet validates CUE and other data files
diff --git a/cue/ast.go b/cue/ast.go
index 95cbf7e..c83397b 100644
--- a/cue/ast.go
+++ b/cue/ast.go
@@ -19,13 +19,14 @@
 	"strconv"
 	"strings"
 
+	"golang.org/x/xerrors"
+
 	"cuelang.org/go/cue/ast"
 	"cuelang.org/go/cue/build"
 	"cuelang.org/go/cue/errors"
 	"cuelang.org/go/cue/literal"
 	"cuelang.org/go/cue/token"
 	"cuelang.org/go/internal"
-	"golang.org/x/xerrors"
 )
 
 // insertFile inserts the given file at the root of the instance.
diff --git a/cue/ast/astutil/apply_test.go b/cue/ast/astutil/apply_test.go
index 57b15c4..c9d7241 100644
--- a/cue/ast/astutil/apply_test.go
+++ b/cue/ast/astutil/apply_test.go
@@ -18,13 +18,14 @@
 	"strings"
 	"testing"
 
+	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
+
 	"cuelang.org/go/cue/ast"
 	"cuelang.org/go/cue/ast/astutil"
 	"cuelang.org/go/cue/format"
 	"cuelang.org/go/cue/parser"
 	"cuelang.org/go/cue/token"
-	"github.com/stretchr/testify/assert"
-	"github.com/stretchr/testify/require"
 )
 
 func TestApply(t *testing.T) {
diff --git a/cue/ast/ident_test.go b/cue/ast/ident_test.go
index 71ead25..b652d0a 100644
--- a/cue/ast/ident_test.go
+++ b/cue/ast/ident_test.go
@@ -17,11 +17,12 @@
 import (
 	"testing"
 
+	"github.com/stretchr/testify/assert"
+	"golang.org/x/xerrors"
+
 	"cuelang.org/go/cue/ast"
 	"cuelang.org/go/cue/format"
 	"cuelang.org/go/cue/token"
-	"github.com/stretchr/testify/assert"
-	"golang.org/x/xerrors"
 )
 
 func TestLabelName(t *testing.T) {
diff --git a/cue/ast_test.go b/cue/ast_test.go
index 042d49f..87f93dd 100644
--- a/cue/ast_test.go
+++ b/cue/ast_test.go
@@ -19,11 +19,12 @@
 	"strings"
 	"testing"
 
+	"github.com/stretchr/testify/assert"
+
 	"cuelang.org/go/cue/ast"
 	"cuelang.org/go/cue/errors"
 	"cuelang.org/go/cue/parser"
 	"cuelang.org/go/internal"
-	"github.com/stretchr/testify/assert"
 )
 
 func TestCompile(t *testing.T) {
diff --git a/cue/binop.go b/cue/binop.go
index a0e9d4f..a19c24b 100644
--- a/cue/binop.go
+++ b/cue/binop.go
@@ -23,8 +23,9 @@
 	"strings"
 	"time"
 
-	"cuelang.org/go/cue/token"
 	"github.com/cockroachdb/apd/v2"
+
+	"cuelang.org/go/cue/token"
 )
 
 // binSrc returns a baseValue representing a binary expression of the given
diff --git a/cue/builtin.go b/cue/builtin.go
index e1c161e..cb3bb8e 100644
--- a/cue/builtin.go
+++ b/cue/builtin.go
@@ -26,11 +26,12 @@
 	"sort"
 	"strings"
 
+	"github.com/cockroachdb/apd/v2"
+
 	"cuelang.org/go/cue/errors"
 	"cuelang.org/go/cue/parser"
 	"cuelang.org/go/cue/token"
 	"cuelang.org/go/internal"
-	"github.com/cockroachdb/apd/v2"
 )
 
 // A builtin is a builtin function or constant.
diff --git a/cue/builtins.go b/cue/builtins.go
index 5635d40..d0a10c0 100644
--- a/cue/builtins.go
+++ b/cue/builtins.go
@@ -30,14 +30,15 @@
 	"unicode"
 	"unicode/utf8"
 
+	"github.com/cockroachdb/apd/v2"
+	goyaml "github.com/ghodss/yaml"
+	"golang.org/x/net/idna"
+
 	"cuelang.org/go/cue/errors"
 	"cuelang.org/go/cue/literal"
 	"cuelang.org/go/cue/parser"
 	"cuelang.org/go/internal"
 	"cuelang.org/go/internal/third_party/yaml"
-	"github.com/cockroachdb/apd/v2"
-	goyaml "github.com/ghodss/yaml"
-	"golang.org/x/net/idna"
 )
 
 func init() {
diff --git a/cue/errors/errors.go b/cue/errors/errors.go
index cfcf8a9..9d13be0 100644
--- a/cue/errors/errors.go
+++ b/cue/errors/errors.go
@@ -28,9 +28,10 @@
 	"sort"
 	"strings"
 
-	"cuelang.org/go/cue/token"
 	"github.com/mpvl/unique"
 	"golang.org/x/xerrors"
+
+	"cuelang.org/go/cue/token"
 )
 
 // New is a convenience wrapper for errors.New in the core library.
diff --git a/cue/export.go b/cue/export.go
index 36fdc83..2f43291 100644
--- a/cue/export.go
+++ b/cue/export.go
@@ -23,9 +23,10 @@
 	"unicode"
 	"unicode/utf8"
 
+	"github.com/cockroachdb/apd/v2"
+
 	"cuelang.org/go/cue/ast"
 	"cuelang.org/go/cue/token"
-	"github.com/cockroachdb/apd/v2"
 )
 
 func doEval(m options) bool {
diff --git a/cue/go.go b/cue/go.go
index 4c9efde..22f45fb 100644
--- a/cue/go.go
+++ b/cue/go.go
@@ -24,11 +24,12 @@
 	"strings"
 	"unicode/utf8"
 
+	"github.com/cockroachdb/apd/v2"
+
 	"cuelang.org/go/cue/ast"
 	"cuelang.org/go/cue/parser"
 	"cuelang.org/go/cue/token"
 	"cuelang.org/go/internal"
-	"github.com/cockroachdb/apd/v2"
 )
 
 // This file contains functionality for converting Go to CUE.
diff --git a/cue/go_test.go b/cue/go_test.go
index bd2b1f2..ed2db1b 100644
--- a/cue/go_test.go
+++ b/cue/go_test.go
@@ -20,9 +20,10 @@
 	"testing"
 	"time"
 
+	"github.com/cockroachdb/apd/v2"
+
 	"cuelang.org/go/cue/ast"
 	"cuelang.org/go/cue/errors"
-	"github.com/cockroachdb/apd/v2"
 )
 
 func mkBigInt(a int64) (v apd.Decimal) { v.SetInt64(a); return }
diff --git a/cue/lit.go b/cue/lit.go
index 6f88baf..b4533c4 100644
--- a/cue/lit.go
+++ b/cue/lit.go
@@ -17,9 +17,10 @@
 import (
 	"math/big"
 
+	"github.com/cockroachdb/apd/v2"
+
 	"cuelang.org/go/cue/ast"
 	"cuelang.org/go/cue/literal"
-	"github.com/cockroachdb/apd/v2"
 )
 
 func newRepresentation(m multiplier, base int, sep bool) multiplier {
diff --git a/cue/lit_test.go b/cue/lit_test.go
index ff0d357..fb96c1c 100644
--- a/cue/lit_test.go
+++ b/cue/lit_test.go
@@ -19,10 +19,11 @@
 	"math/big"
 	"testing"
 
-	"cuelang.org/go/cue/ast"
 	"github.com/cockroachdb/apd/v2"
 	"github.com/google/go-cmp/cmp"
 	"github.com/google/go-cmp/cmp/cmpopts"
+
+	"cuelang.org/go/cue/ast"
 )
 
 var testBase = newExpr(&ast.BasicLit{})
diff --git a/cue/load/import_test.go b/cue/load/import_test.go
index 1ff43f5..a6c780c 100644
--- a/cue/load/import_test.go
+++ b/cue/load/import_test.go
@@ -19,9 +19,10 @@
 	"reflect"
 	"testing"
 
+	"golang.org/x/xerrors"
+
 	"cuelang.org/go/cue/build"
 	"cuelang.org/go/cue/token"
-	"golang.org/x/xerrors"
 )
 
 const testdata = "./testdata/"
diff --git a/cue/load/loader_test.go b/cue/load/loader_test.go
index c6de0ab..e678b05 100644
--- a/cue/load/loader_test.go
+++ b/cue/load/loader_test.go
@@ -24,10 +24,11 @@
 	"text/template"
 	"unicode"
 
+	"github.com/kylelemons/godebug/diff"
+
 	"cuelang.org/go/cue"
 	"cuelang.org/go/cue/format"
 	"cuelang.org/go/internal/str"
-	"github.com/kylelemons/godebug/diff"
 )
 
 // TestLoad is an end-to-end test.
diff --git a/cue/scanner/scanner_test.go b/cue/scanner/scanner_test.go
index d24f882..ee6d5e9 100644
--- a/cue/scanner/scanner_test.go
+++ b/cue/scanner/scanner_test.go
@@ -23,9 +23,10 @@
 	"strings"
 	"testing"
 
+	"github.com/google/go-cmp/cmp"
+
 	"cuelang.org/go/cue/errors"
 	"cuelang.org/go/cue/token"
-	"github.com/google/go-cmp/cmp"
 )
 
 const /* class */ (
diff --git a/cue/types.go b/cue/types.go
index 292aefc..89fcad7 100644
--- a/cue/types.go
+++ b/cue/types.go
@@ -27,10 +27,11 @@
 	"strings"
 	"unicode"
 
+	"github.com/cockroachdb/apd/v2"
+
 	"cuelang.org/go/cue/ast"
 	"cuelang.org/go/cue/errors"
 	"cuelang.org/go/cue/token"
-	"github.com/cockroachdb/apd/v2"
 )
 
 // Kind determines the underlying type of a Value.
diff --git a/cue/types_test.go b/cue/types_test.go
index c38ab79..8ad986f 100644
--- a/cue/types_test.go
+++ b/cue/types_test.go
@@ -26,9 +26,10 @@
 	"strings"
 	"testing"
 
+	"github.com/google/go-cmp/cmp"
+
 	"cuelang.org/go/cue/ast"
 	"cuelang.org/go/cue/errors"
-	"github.com/google/go-cmp/cmp"
 )
 
 func getInstance(t *testing.T, body ...string) *Instance {
diff --git a/cue/value.go b/cue/value.go
index f6e612e..5d8564d 100644
--- a/cue/value.go
+++ b/cue/value.go
@@ -21,9 +21,10 @@
 	"strconv"
 	"time"
 
+	"github.com/cockroachdb/apd/v2"
+
 	"cuelang.org/go/cue/ast"
 	"cuelang.org/go/cue/token"
-	"github.com/cockroachdb/apd/v2"
 )
 
 type value interface {
diff --git a/doc/tutorial/basics/script_test.go b/doc/tutorial/basics/script_test.go
index c1879e4..a171061 100644
--- a/doc/tutorial/basics/script_test.go
+++ b/doc/tutorial/basics/script_test.go
@@ -8,10 +8,11 @@
 	"strings"
 	"testing"
 
-	"cuelang.org/go/cmd/cue/cmd"
-	"cuelang.org/go/cue/parser"
 	"github.com/rogpeppe/testscript"
 	"github.com/rogpeppe/testscript/txtar"
+
+	"cuelang.org/go/cmd/cue/cmd"
+	"cuelang.org/go/cue/parser"
 )
 
 var update = flag.Bool("update", false, "update the test files")
diff --git a/doc/tutorial/kubernetes/tut_test.go b/doc/tutorial/kubernetes/tut_test.go
index b123be8..a9b7a70 100644
--- a/doc/tutorial/kubernetes/tut_test.go
+++ b/doc/tutorial/kubernetes/tut_test.go
@@ -28,10 +28,11 @@
 	"strings"
 	"testing"
 
+	"github.com/kylelemons/godebug/diff"
+
 	"cuelang.org/go/cue/load"
 	"cuelang.org/go/internal/copy"
 	"cuelang.org/go/internal/cuetest"
-	"github.com/kylelemons/godebug/diff"
 )
 
 var (
diff --git a/encoding/gocode/generator.go b/encoding/gocode/generator.go
index 494edf1..557bdcd 100644
--- a/encoding/gocode/generator.go
+++ b/encoding/gocode/generator.go
@@ -22,10 +22,11 @@
 	"go/types"
 	"text/template"
 
+	"golang.org/x/tools/go/packages"
+
 	"cuelang.org/go/cue"
 	"cuelang.org/go/cue/errors"
 	"cuelang.org/go/internal"
-	"golang.org/x/tools/go/packages"
 )
 
 // Config defines options for generation Go code.
diff --git a/encoding/gocode/generator_test.go b/encoding/gocode/generator_test.go
index a4ad90a..85780cc 100644
--- a/encoding/gocode/generator_test.go
+++ b/encoding/gocode/generator_test.go
@@ -23,10 +23,11 @@
 	"regexp"
 	"testing"
 
+	"github.com/kylelemons/godebug/diff"
+
 	"cuelang.org/go/cue"
 	"cuelang.org/go/cue/errors"
 	"cuelang.org/go/cue/load"
-	"github.com/kylelemons/godebug/diff"
 )
 
 var update = flag.Bool("update", false, "update test files")
diff --git a/encoding/gocode/gocodec/codec_test.go b/encoding/gocode/gocodec/codec_test.go
index 0765c46..25cc140 100644
--- a/encoding/gocode/gocodec/codec_test.go
+++ b/encoding/gocode/gocodec/codec_test.go
@@ -19,8 +19,9 @@
 	"reflect"
 	"testing"
 
-	"cuelang.org/go/cue"
 	"github.com/google/go-cmp/cmp"
+
+	"cuelang.org/go/cue"
 )
 
 type Sum struct {
diff --git a/encoding/json/json_test.go b/encoding/json/json_test.go
index f8469ca..d12da3c 100644
--- a/encoding/json/json_test.go
+++ b/encoding/json/json_test.go
@@ -21,9 +21,10 @@
 	"strings"
 	"testing"
 
+	"github.com/stretchr/testify/assert"
+
 	"cuelang.org/go/cue/ast"
 	"cuelang.org/go/cue/format"
-	"github.com/stretchr/testify/assert"
 )
 
 func TestExtract(t *testing.T) {
diff --git a/encoding/openapi/build.go b/encoding/openapi/build.go
index 8dc1db7..405b21c 100644
--- a/encoding/openapi/build.go
+++ b/encoding/openapi/build.go
@@ -24,10 +24,11 @@
 	"strconv"
 	"strings"
 
+	"github.com/cockroachdb/apd/v2"
+
 	"cuelang.org/go/cue"
 	"cuelang.org/go/cue/errors"
 	"cuelang.org/go/cue/token"
-	"github.com/cockroachdb/apd/v2"
 )
 
 type buildContext struct {
diff --git a/encoding/openapi/openapi_test.go b/encoding/openapi/openapi_test.go
index 56a96cc..fdfdd3f 100644
--- a/encoding/openapi/openapi_test.go
+++ b/encoding/openapi/openapi_test.go
@@ -23,10 +23,11 @@
 	"strings"
 	"testing"
 
+	"github.com/kylelemons/godebug/diff"
+
 	"cuelang.org/go/cue"
 	"cuelang.org/go/cue/errors"
 	"cuelang.org/go/cue/load"
-	"github.com/kylelemons/godebug/diff"
 )
 
 var update *bool = flag.Bool("update", false, "update the test output")
diff --git a/encoding/protobuf/parse.go b/encoding/protobuf/parse.go
index 917f7fd..a58943d 100644
--- a/encoding/protobuf/parse.go
+++ b/encoding/protobuf/parse.go
@@ -26,12 +26,13 @@
 	"text/scanner"
 	"unicode"
 
+	"github.com/emicklei/proto"
+
 	"cuelang.org/go/cue/ast"
 	"cuelang.org/go/cue/errors"
 	"cuelang.org/go/cue/parser"
 	"cuelang.org/go/cue/token"
 	"cuelang.org/go/internal/source"
-	"github.com/emicklei/proto"
 )
 
 func (s *Extractor) parse(filename string, src interface{}) (p *protoConverter, err error) {
diff --git a/encoding/protobuf/protobuf.go b/encoding/protobuf/protobuf.go
index a52df13..aa5189e 100644
--- a/encoding/protobuf/protobuf.go
+++ b/encoding/protobuf/protobuf.go
@@ -91,6 +91,8 @@
 	"sort"
 	"strings"
 
+	"github.com/mpvl/unique"
+
 	"cuelang.org/go/cue/ast"
 	"cuelang.org/go/cue/build"
 	"cuelang.org/go/cue/errors"
@@ -98,7 +100,6 @@
 	"cuelang.org/go/cue/load"
 	"cuelang.org/go/cue/parser"
 	"cuelang.org/go/cue/token"
-	"github.com/mpvl/unique"
 )
 
 // Config specifies the environment into which to parse a proto definition file.
diff --git a/encoding/protobuf/protobuf_test.go b/encoding/protobuf/protobuf_test.go
index b824e05..2ce5d5f 100644
--- a/encoding/protobuf/protobuf_test.go
+++ b/encoding/protobuf/protobuf_test.go
@@ -24,10 +24,11 @@
 	"strings"
 	"testing"
 
+	"github.com/kr/pretty"
+
 	"cuelang.org/go/cue/ast"
 	"cuelang.org/go/cue/errors"
 	"cuelang.org/go/cue/format"
-	"github.com/kr/pretty"
 )
 
 var update = flag.Bool("update", false, "update the test output")
diff --git a/encoding/protobuf/util.go b/encoding/protobuf/util.go
index 53b3b43..ad63285 100644
--- a/encoding/protobuf/util.go
+++ b/encoding/protobuf/util.go
@@ -18,10 +18,11 @@
 	"strings"
 	"text/scanner"
 
-	"cuelang.org/go/cue/ast"
-	"cuelang.org/go/cue/token"
 	"github.com/emicklei/proto"
 	"golang.org/x/xerrors"
+
+	"cuelang.org/go/cue/ast"
+	"cuelang.org/go/cue/token"
 )
 
 // failf panics with a marked error that can be intercepted upon returning
diff --git a/encoding/yaml/yaml.go b/encoding/yaml/yaml.go
index 4339e7d..f972bd2 100644
--- a/encoding/yaml/yaml.go
+++ b/encoding/yaml/yaml.go
@@ -20,11 +20,12 @@
 	"bytes"
 	"io"
 
+	goyaml "github.com/ghodss/yaml"
+
 	"cuelang.org/go/cue"
 	"cuelang.org/go/cue/ast"
 	"cuelang.org/go/internal/third_party/yaml"
 	pkgyaml "cuelang.org/go/pkg/encoding/yaml"
-	goyaml "github.com/ghodss/yaml"
 )
 
 // TODO: replace the ghodss YAML encoder. It has a few major issues:
diff --git a/internal/cuetest/sim.go b/internal/cuetest/sim.go
index c14a0c1..375e3ba 100644
--- a/internal/cuetest/sim.go
+++ b/internal/cuetest/sim.go
@@ -24,8 +24,9 @@
 	"strings"
 	"testing"
 
-	"cuelang.org/go/cmd/cue/cmd"
 	"github.com/kylelemons/godebug/diff"
+
+	"cuelang.org/go/cmd/cue/cmd"
 )
 
 type Config struct {
diff --git a/internal/internal.go b/internal/internal.go
index 64a48e7..67a4e71 100644
--- a/internal/internal.go
+++ b/internal/internal.go
@@ -23,9 +23,10 @@
 	"bufio"
 	"strings"
 
+	"github.com/cockroachdb/apd/v2"
+
 	"cuelang.org/go/cue/ast"
 	"cuelang.org/go/cue/token"
-	"github.com/cockroachdb/apd/v2"
 )
 
 // A Decimal is an arbitrary-precision binary-coded decimal number.
diff --git a/pkg/encoding/yaml/manual.go b/pkg/encoding/yaml/manual.go
index 686870c..286f754 100644
--- a/pkg/encoding/yaml/manual.go
+++ b/pkg/encoding/yaml/manual.go
@@ -18,11 +18,12 @@
 	"bytes"
 	"io"
 
+	goyaml "github.com/ghodss/yaml"
+
 	"cuelang.org/go/cue"
 	"cuelang.org/go/cue/ast"
 	"cuelang.org/go/internal"
 	"cuelang.org/go/internal/third_party/yaml"
-	goyaml "github.com/ghodss/yaml"
 )
 
 // Marshal returns the YAML encoding of v.
diff --git a/pkg/list/math.go b/pkg/list/math.go
index d91adb5..c4f802a 100644
--- a/pkg/list/math.go
+++ b/pkg/list/math.go
@@ -17,8 +17,9 @@
 import (
 	"fmt"
 
-	"cuelang.org/go/internal"
 	"github.com/cockroachdb/apd/v2"
+
+	"cuelang.org/go/internal"
 )
 
 // Avg returns the average value of a non empty list xs.
diff --git a/pkg/math/manual.go b/pkg/math/manual.go
index 9c18f1c..80e3cf7 100644
--- a/pkg/math/manual.go
+++ b/pkg/math/manual.go
@@ -15,8 +15,9 @@
 package math
 
 import (
-	"cuelang.org/go/internal"
 	"github.com/cockroachdb/apd/v2"
+
+	"cuelang.org/go/internal"
 )
 
 // Floor returns the greatest integer value less than or equal to x.
diff --git a/pkg/math/math.go b/pkg/math/math.go
index 9d55dc8..772d0af 100644
--- a/pkg/math/math.go
+++ b/pkg/math/math.go
@@ -21,8 +21,9 @@
 import (
 	"math"
 
-	"cuelang.org/go/internal"
 	"github.com/cockroachdb/apd/v2"
+
+	"cuelang.org/go/internal"
 )
 
 var apdContext = apd.BaseContext.WithPrecision(24)
diff --git a/pkg/net/host.go b/pkg/net/host.go
index a690fac..6018da4 100644
--- a/pkg/net/host.go
+++ b/pkg/net/host.go
@@ -20,8 +20,9 @@
 	"strconv"
 	"unicode/utf8"
 
-	"cuelang.org/go/cue"
 	"golang.org/x/net/idna"
+
+	"cuelang.org/go/cue"
 )
 
 var idnaProfile = idna.New(
diff --git a/pkg/tool/exec/exec.go b/pkg/tool/exec/exec.go
index c64dc1c..eee4e3a 100644
--- a/pkg/tool/exec/exec.go
+++ b/pkg/tool/exec/exec.go
@@ -21,10 +21,11 @@
 	"os/exec"
 	"strings"
 
+	"golang.org/x/xerrors"
+
 	"cuelang.org/go/cue"
 	"cuelang.org/go/cue/errors"
 	"cuelang.org/go/internal/task"
-	"golang.org/x/xerrors"
 )
 
 func init() {
diff --git a/pkg/tool/os/env_test.go b/pkg/tool/os/env_test.go
index 8b5adef..a234cab 100644
--- a/pkg/tool/os/env_test.go
+++ b/pkg/tool/os/env_test.go
@@ -18,6 +18,9 @@
 	"os"
 	"testing"
 
+	"github.com/google/go-cmp/cmp"
+	"github.com/google/go-cmp/cmp/cmpopts"
+
 	"cuelang.org/go/cue"
 	"cuelang.org/go/cue/ast"
 	"cuelang.org/go/cue/errors"
@@ -25,8 +28,6 @@
 	"cuelang.org/go/cue/token"
 	"cuelang.org/go/internal"
 	"cuelang.org/go/internal/task"
-	"github.com/google/go-cmp/cmp"
-	"github.com/google/go-cmp/cmp/cmpopts"
 )
 
 func TestSetenv(t *testing.T) {