convert strconv

R=r
DELTA=568  (0 added, 9 deleted, 559 changed)
OCL=22898
CL=22901
diff --git a/src/lib/fmt/format.go b/src/lib/fmt/format.go
index 2be64f5..9c8b127 100644
--- a/src/lib/fmt/format.go
+++ b/src/lib/fmt/format.go
@@ -428,38 +428,38 @@
 
 // float64
 func (f *Fmt) Fmt_e64(a float64) *Fmt {
-	return fmtString(f, strconv.ftoa64(a, 'e', Prec(f, 6)));
+	return fmtString(f, strconv.Ftoa64(a, 'e', Prec(f, 6)));
 }
 
 func (f *Fmt) Fmt_f64(a float64) *Fmt {
-	return fmtString(f, strconv.ftoa64(a, 'f', Prec(f, 6)));
+	return fmtString(f, strconv.Ftoa64(a, 'f', Prec(f, 6)));
 }
 
 func (f *Fmt) Fmt_g64(a float64) *Fmt {
-	return fmtString(f, strconv.ftoa64(a, 'g', Prec(f, -1)));
+	return fmtString(f, strconv.Ftoa64(a, 'g', Prec(f, -1)));
 }
 
 func (f *Fmt) Fmt_fb64(a float64) *Fmt {
-	return fmtString(f, strconv.ftoa64(a, 'b', 0));
+	return fmtString(f, strconv.Ftoa64(a, 'b', 0));
 }
 
 // float32
 // cannot defer to float64 versions
 // because it will get rounding wrong in corner cases.
 func (f *Fmt) Fmt_e32(a float32) *Fmt {
-	return fmtString(f, strconv.ftoa32(a, 'e', Prec(f, 6)));
+	return fmtString(f, strconv.Ftoa32(a, 'e', Prec(f, 6)));
 }
 
 func (f *Fmt) Fmt_f32(a float32) *Fmt {
-	return fmtString(f, strconv.ftoa32(a, 'f', Prec(f, 6)));
+	return fmtString(f, strconv.Ftoa32(a, 'f', Prec(f, 6)));
 }
 
 func (f *Fmt) Fmt_g32(a float32) *Fmt {
-	return fmtString(f, strconv.ftoa32(a, 'g', Prec(f, -1)));
+	return fmtString(f, strconv.Ftoa32(a, 'g', Prec(f, -1)));
 }
 
 func (f *Fmt) Fmt_fb32(a float32) *Fmt {
-	return fmtString(f, strconv.ftoa32(a, 'b', 0));
+	return fmtString(f, strconv.Ftoa32(a, 'b', 0));
 }
 
 // float
diff --git a/src/lib/http/server.go b/src/lib/http/server.go
index 7aef824..b865363 100644
--- a/src/lib/http/server.go
+++ b/src/lib/http/server.go
@@ -39,7 +39,7 @@
 export func Serve(l net.Listener, f *(*Conn, *Request)) *os.Error {
 	// TODO: Make this unnecessary
 	s, e := os.Getenv("GOMAXPROCS");
-	if n, ok := strconv.atoi(s); n < 3 {
+	if n, ok := strconv.Atoi(s); n < 3 {
 		print("Warning: $GOMAXPROCS needs to be at least 3.\n");
 	}
 
diff --git a/src/lib/json/generic.go b/src/lib/json/generic.go
index bedfe6f..f562a0e 100644
--- a/src/lib/json/generic.go
+++ b/src/lib/json/generic.go
@@ -140,7 +140,7 @@
 		}
 		switch j.Kind() {
 		case ArrayKind:
-			indx, err := strconv.atoi(elem);
+			indx, err := strconv.Atoi(elem);
 			if err != nil {
 				return null
 			}
diff --git a/src/lib/json/parse.go b/src/lib/json/parse.go
index cec2a29..16567ee 100644
--- a/src/lib/json/parse.go
+++ b/src/lib/json/parse.go
@@ -296,16 +296,16 @@
 		break;
 	case '1':
 		// If the number is exactly an integer, use that.
-		if i, err := strconv.atoi64(lex.token); err == nil {
+		if i, err := strconv.Atoi64(lex.token); err == nil {
 			build.Int64(i);
 			ok = true;
 		}
-		else if i, err := strconv.atoui64(lex.token); err == nil {
+		else if i, err := strconv.Atoui64(lex.token); err == nil {
 			build.Uint64(i);
 			ok = true;
 		}
 		// Fall back to floating point.
-		else if f, err := strconv.atof64(lex.token); err == nil {
+		else if f, err := strconv.Atof64(lex.token); err == nil {
 			build.Float64(f);
 			ok = true;
 		}
diff --git a/src/lib/net/net.go b/src/lib/net/net.go
index 915a354..cf3ad2a 100644
--- a/src/lib/net/net.go
+++ b/src/lib/net/net.go
@@ -124,7 +124,7 @@
 			return "", e
 		}
 		host := IPToString(addr);
-		return JoinHostPort(host, strconv.itoa(port)), nil;
+		return JoinHostPort(host, strconv.Itoa(port)), nil;
 	default:
 		return "", UnknownSocketFamily
 	}
diff --git a/src/lib/reflect/tostring.go b/src/lib/reflect/tostring.go
index 2c9853a..51d8863 100644
--- a/src/lib/reflect/tostring.go
+++ b/src/lib/reflect/tostring.go
@@ -84,7 +84,7 @@
 		if a.Open() {
 			str = "[]"
 		} else {
-			str = "[" + strconv.itoa64(int64(a.Len())) +  "]"
+			str = "[" + strconv.Itoa64(int64(a.Len())) +  "]"
 		}
 		return str + TypeToString(a.Elem(), false);
 	case MapKind:
@@ -123,7 +123,7 @@
 
 // TODO: want an unsigned one too
 func integer(v int64) string {
-	return strconv.itoa64(v);
+	return strconv.Itoa64(v);
 }
 
 func ValueToString(val Value) string {
@@ -154,14 +154,14 @@
 		return integer(int64(val.(Uint64Value).Get()));
 	case FloatKind:
 		if strconv.FloatSize == 32 {
-			return strconv.ftoa32(float32(val.(FloatValue).Get()), 'g', -1);
+			return strconv.Ftoa32(float32(val.(FloatValue).Get()), 'g', -1);
 		} else {
-			return strconv.ftoa64(float64(val.(FloatValue).Get()), 'g', -1);
+			return strconv.Ftoa64(float64(val.(FloatValue).Get()), 'g', -1);
 		}
 	case Float32Kind:
-		return strconv.ftoa32(val.(Float32Value).Get(), 'g', -1);
+		return strconv.Ftoa32(val.(Float32Value).Get(), 'g', -1);
 	case Float64Kind:
-		return strconv.ftoa64(val.(Float64Value).Get(), 'g', -1);
+		return strconv.Ftoa64(val.(Float64Value).Get(), 'g', -1);
 	case Float80Kind:
 		return "float80";
 	case StringKind:
diff --git a/src/lib/strconv/atof.go b/src/lib/strconv/atof.go
index de2464a..cb034f0 100644
--- a/src/lib/strconv/atof.go
+++ b/src/lib/strconv/atof.go
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Decimal to binary floating point conversion.
+// decimal to binary floating point conversion.
 // Algorithm:
 //   1) Store input in multiprecision decimal.
 //   2) Multiply/divide decimal by powers of two until in range [0.5, 1)
@@ -15,10 +15,10 @@
 	"strconv";
 )
 
-package var optimize = true	// can change for testing
+var optimize = true	// can change for testing
 
 // TODO(rsc): Better truncation handling.
-func StringToDecimal(s string) (neg bool, d *Decimal, trunc bool, ok bool) {
+func stringToDecimal(s string) (neg bool, d *decimal, trunc bool, ok bool) {
 	i := 0;
 
 	// optional sign
@@ -34,7 +34,7 @@
 	}
 
 	// digits
-	b := new(Decimal);
+	b := new(decimal);
 	sawdot := false;
 	sawdigits := false;
 	for ; i < len(s); i++ {
@@ -104,12 +104,12 @@
 	return;
 }
 
-// Decimal power of ten to binary power of two.
+// decimal power of ten to binary power of two.
 var powtab = []int{
 	1, 3, 6, 9, 13, 16, 19, 23, 26
 }
 
-func DecimalToFloatBits(neg bool, d *Decimal, trunc bool, flt *FloatInfo) (b uint64, overflow bool) {
+func decimalToFloatBits(neg bool, d *decimal, trunc bool, flt *floatInfo) (b uint64, overflow bool) {
 	var exp int;
 	var mant uint64;
 
@@ -208,7 +208,7 @@
 
 // Compute exact floating-point integer from d's digits.
 // Caller is responsible for avoiding overflow.
-func DecimalToFloat64Int(neg bool, d *Decimal) float64 {
+func decimalAtof64Int(neg bool, d *decimal) float64 {
 	f := float64(0);
 	for i := 0; i < d.nd; i++ {
 		f = f*10 + float64(d.d[i] - '0');
@@ -219,7 +219,7 @@
 	return f;
 }
 
-func DecimalToFloat32Int(neg bool, d *Decimal) float32 {
+func decimalAtof32Int(neg bool, d *decimal) float32 {
 	f := float32(0);
 	for i := 0; i < d.nd; i++ {
 		f = f*10 + float32(d.d[i] - '0');
@@ -241,13 +241,13 @@
 }
 
 // If possible to convert decimal d to 64-bit float f exactly,
-// entirely in floating-point math, do so, avoiding the expense of DecimalToFloatBits.
+// entirely in floating-point math, do so, avoiding the expense of decimalToFloatBits.
 // Three common cases:
 //	value is exact integer
 //	value is exact integer * exact power of ten
 //	value is exact integer / exact power of ten
 // These all produce potentially inexact but correctly rounded answers.
-func DecimalToFloat64(neg bool, d *Decimal, trunc bool) (f float64, ok bool) {
+func decimalAtof64(neg bool, d *decimal, trunc bool) (f float64, ok bool) {
 	// Exact integers are <= 10^15.
 	// Exact powers of ten are <= 10^22.
 	if d.nd > 15 {
@@ -255,11 +255,11 @@
 	}
 	switch {
 	case d.dp == d.nd:	// int
-		f := DecimalToFloat64Int(neg, d);
+		f := decimalAtof64Int(neg, d);
 		return f, true;
 
 	case d.dp > d.nd && d.dp <= 15+22:	// int * 10^k
-		f := DecimalToFloat64Int(neg, d);
+		f := decimalAtof64Int(neg, d);
 		k := d.dp - d.nd;
 		// If exponent is big but number of digits is not,
 		// can move a few zeros into the integer part.
@@ -270,7 +270,7 @@
 		return f*float64pow10[k], true;
 
 	case d.dp < d.nd && d.nd - d.dp <= 22:	// int / 10^k
-		f := DecimalToFloat64Int(neg, d);
+		f := decimalAtof64Int(neg, d);
 		return f/float64pow10[d.nd - d.dp], true;
 	}
 	return;
@@ -278,7 +278,7 @@
 
 // If possible to convert decimal d to 32-bit float f exactly,
 // entirely in floating-point math, do so, avoiding the machinery above.
-func DecimalToFloat32(neg bool, d *Decimal, trunc bool) (f float32, ok bool) {
+func decimalAtof32(neg bool, d *decimal, trunc bool) (f float32, ok bool) {
 	// Exact integers are <= 10^7.
 	// Exact powers of ten are <= 10^10.
 	if d.nd > 7 {
@@ -286,11 +286,11 @@
 	}
 	switch {
 	case d.dp == d.nd:	// int
-		f := DecimalToFloat32Int(neg, d);
+		f := decimalAtof32Int(neg, d);
 		return f, true;
 
 	case d.dp > d.nd && d.dp <= 7+10:	// int * 10^k
-		f := DecimalToFloat32Int(neg, d);
+		f := decimalAtof32Int(neg, d);
 		k := d.dp - d.nd;
 		// If exponent is big but number of digits is not,
 		// can move a few zeros into the integer part.
@@ -301,7 +301,7 @@
 		return f*float32pow10[k], true;
 
 	case d.dp < d.nd && d.nd - d.dp <= 10:	// int / 10^k
-		f := DecimalToFloat32Int(neg, d);
+		f := decimalAtof32Int(neg, d);
 		return f/float32pow10[d.nd - d.dp], true;
 	}
 	return;
@@ -318,17 +318,17 @@
 // If s is syntactically well-formed but is more than 1/2 ULP
 // away from the largest floating point number of the given size,
 // returns f = ±Inf, err = os.ERANGE.
-export func atof64(s string) (f float64, err *os.Error) {
-	neg, d, trunc, ok := StringToDecimal(s);
+export func Atof64(s string) (f float64, err *os.Error) {
+	neg, d, trunc, ok := stringToDecimal(s);
 	if !ok {
 		return 0, os.EINVAL;
 	}
 	if optimize {
-		if f, ok := DecimalToFloat64(neg, d, trunc); ok {
+		if f, ok := decimalAtof64(neg, d, trunc); ok {
 			return f, nil;
 		}
 	}
-	b, ovf := DecimalToFloatBits(neg, d, trunc, &float64info);
+	b, ovf := decimalToFloatBits(neg, d, trunc, &float64info);
 	f = sys.float64frombits(b);
 	if ovf {
 		err = os.ERANGE;
@@ -336,17 +336,17 @@
 	return f, err
 }
 
-export func atof32(s string) (f float32, err *os.Error) {
-	neg, d, trunc, ok := StringToDecimal(s);
+export func Atof32(s string) (f float32, err *os.Error) {
+	neg, d, trunc, ok := stringToDecimal(s);
 	if !ok {
 		return 0, os.EINVAL;
 	}
 	if optimize {
-		if f, ok := DecimalToFloat32(neg, d, trunc); ok {
+		if f, ok := decimalAtof32(neg, d, trunc); ok {
 			return f, nil;
 		}
 	}
-	b, ovf := DecimalToFloatBits(neg, d, trunc, &float32info);
+	b, ovf := decimalToFloatBits(neg, d, trunc, &float32info);
 	f = sys.float32frombits(uint32(b));
 	if ovf {
 		err = os.ERANGE;
@@ -354,12 +354,12 @@
 	return f, err
 }
 
-export func atof(s string) (f float, err *os.Error) {
+export func Atof(s string) (f float, err *os.Error) {
 	if FloatSize == 32 {
-		f1, err1 := atof32(s);
+		f1, err1 := Atof32(s);
 		return float(f1), err1;
 	}
-	f1, err1 := atof64(s);
+	f1, err1 := Atof64(s);
 	return float(f1), err1;
 }
 
diff --git a/src/lib/strconv/atof_test.go b/src/lib/strconv/atof_test.go
index 5292b3d..493829b 100644
--- a/src/lib/strconv/atof_test.go
+++ b/src/lib/strconv/atof_test.go
@@ -10,113 +10,113 @@
 	"testing"
 )
 
-type AtofTest struct {
+type atofTest struct {
 	in string;
 	out string;
 	err *os.Error;
 }
 
-var atoftests = []AtofTest {
-	AtofTest{ "", "0", os.EINVAL },
-	AtofTest{ "1", "1", nil },
-	AtofTest{ "+1", "1", nil },
-	AtofTest{ "1x", "0", os.EINVAL },
-	AtofTest{ "1.1.", "0", os.EINVAL },
-	AtofTest{ "1e23", "1e+23", nil },
-	AtofTest{ "100000000000000000000000", "1e+23", nil },
-	AtofTest{ "1e-100", "1e-100", nil },
-	AtofTest{ "123456700", "1.234567e+08", nil },
-	AtofTest{ "99999999999999974834176", "9.999999999999997e+22", nil },
-	AtofTest{ "100000000000000000000001", "1.0000000000000001e+23", nil },
-	AtofTest{ "100000000000000008388608", "1.0000000000000001e+23", nil },
-	AtofTest{ "100000000000000016777215", "1.0000000000000001e+23", nil },
-	AtofTest{ "100000000000000016777216", "1.0000000000000003e+23", nil },
-	AtofTest{ "-1", "-1", nil },
-	AtofTest{ "-0", "-0", nil },
-	AtofTest{ "1e-20", "1e-20", nil },
-	AtofTest{ "625e-3", "0.625", nil },
+var atoftests = []atofTest {
+	atofTest{ "", "0", os.EINVAL },
+	atofTest{ "1", "1", nil },
+	atofTest{ "+1", "1", nil },
+	atofTest{ "1x", "0", os.EINVAL },
+	atofTest{ "1.1.", "0", os.EINVAL },
+	atofTest{ "1e23", "1e+23", nil },
+	atofTest{ "100000000000000000000000", "1e+23", nil },
+	atofTest{ "1e-100", "1e-100", nil },
+	atofTest{ "123456700", "1.234567e+08", nil },
+	atofTest{ "99999999999999974834176", "9.999999999999997e+22", nil },
+	atofTest{ "100000000000000000000001", "1.0000000000000001e+23", nil },
+	atofTest{ "100000000000000008388608", "1.0000000000000001e+23", nil },
+	atofTest{ "100000000000000016777215", "1.0000000000000001e+23", nil },
+	atofTest{ "100000000000000016777216", "1.0000000000000003e+23", nil },
+	atofTest{ "-1", "-1", nil },
+	atofTest{ "-0", "-0", nil },
+	atofTest{ "1e-20", "1e-20", nil },
+	atofTest{ "625e-3", "0.625", nil },
 
 	// largest float64
-	AtofTest{ "1.7976931348623157e308", "1.7976931348623157e+308", nil },
-	AtofTest{ "-1.7976931348623157e308", "-1.7976931348623157e+308", nil },
+	atofTest{ "1.7976931348623157e308", "1.7976931348623157e+308", nil },
+	atofTest{ "-1.7976931348623157e308", "-1.7976931348623157e+308", nil },
 	// next float64 - too large
-	AtofTest{ "1.7976931348623159e308", "+Inf", os.ERANGE },
-	AtofTest{ "-1.7976931348623159e308", "-Inf", os.ERANGE },
+	atofTest{ "1.7976931348623159e308", "+Inf", os.ERANGE },
+	atofTest{ "-1.7976931348623159e308", "-Inf", os.ERANGE },
 	// the border is ...158079
 	// borderline - okay
-	AtofTest{ "1.7976931348623158e308", "1.7976931348623157e+308", nil },
-	AtofTest{ "-1.7976931348623158e308", "-1.7976931348623157e+308", nil },
+	atofTest{ "1.7976931348623158e308", "1.7976931348623157e+308", nil },
+	atofTest{ "-1.7976931348623158e308", "-1.7976931348623157e+308", nil },
 	// borderline - too large
-	AtofTest{ "1.797693134862315808e308", "+Inf", os.ERANGE },
-	AtofTest{ "-1.797693134862315808e308", "-Inf", os.ERANGE },
+	atofTest{ "1.797693134862315808e308", "+Inf", os.ERANGE },
+	atofTest{ "-1.797693134862315808e308", "-Inf", os.ERANGE },
 
 	// a little too large
-	AtofTest{ "1e308", "1e+308", nil },
-	AtofTest{ "2e308", "+Inf", os.ERANGE },
-	AtofTest{ "1e309", "+Inf", os.ERANGE },
+	atofTest{ "1e308", "1e+308", nil },
+	atofTest{ "2e308", "+Inf", os.ERANGE },
+	atofTest{ "1e309", "+Inf", os.ERANGE },
 
 	// way too large
-	AtofTest{ "1e310", "+Inf", os.ERANGE },
-	AtofTest{ "-1e310", "-Inf", os.ERANGE },
-	AtofTest{ "1e400", "+Inf", os.ERANGE },
-	AtofTest{ "-1e400", "-Inf", os.ERANGE },
-	AtofTest{ "1e400000", "+Inf", os.ERANGE },
-	AtofTest{ "-1e400000", "-Inf", os.ERANGE },
+	atofTest{ "1e310", "+Inf", os.ERANGE },
+	atofTest{ "-1e310", "-Inf", os.ERANGE },
+	atofTest{ "1e400", "+Inf", os.ERANGE },
+	atofTest{ "-1e400", "-Inf", os.ERANGE },
+	atofTest{ "1e400000", "+Inf", os.ERANGE },
+	atofTest{ "-1e400000", "-Inf", os.ERANGE },
 
 	// denormalized
-	AtofTest{ "1e-305", "1e-305", nil },
-	AtofTest{ "1e-306", "1e-306", nil },
-	AtofTest{ "1e-307", "1e-307", nil },
-	AtofTest{ "1e-308", "1e-308", nil },
-	AtofTest{ "1e-309", "1e-309", nil },
-	AtofTest{ "1e-310", "1e-310", nil },
-	AtofTest{ "1e-322", "1e-322", nil },
+	atofTest{ "1e-305", "1e-305", nil },
+	atofTest{ "1e-306", "1e-306", nil },
+	atofTest{ "1e-307", "1e-307", nil },
+	atofTest{ "1e-308", "1e-308", nil },
+	atofTest{ "1e-309", "1e-309", nil },
+	atofTest{ "1e-310", "1e-310", nil },
+	atofTest{ "1e-322", "1e-322", nil },
 	// smallest denormal
-	AtofTest{ "5e-324", "5e-324", nil },
+	atofTest{ "5e-324", "5e-324", nil },
 	// too small
-	AtofTest{ "4e-324", "0", nil },
+	atofTest{ "4e-324", "0", nil },
 	// way too small
-	AtofTest{ "1e-350", "0", nil },
-	AtofTest{ "1e-400000", "0", nil },
+	atofTest{ "1e-350", "0", nil },
+	atofTest{ "1e-400000", "0", nil },
 
 	// try to overflow exponent
-	AtofTest{ "1e-4294967296", "0", nil },
-	AtofTest{ "1e+4294967296", "+Inf", os.ERANGE },
-	AtofTest{ "1e-18446744073709551616", "0", nil },
-	AtofTest{ "1e+18446744073709551616", "+Inf", os.ERANGE },
+	atofTest{ "1e-4294967296", "0", nil },
+	atofTest{ "1e+4294967296", "+Inf", os.ERANGE },
+	atofTest{ "1e-18446744073709551616", "0", nil },
+	atofTest{ "1e+18446744073709551616", "+Inf", os.ERANGE },
 
 	// Parse errors
-	AtofTest{ "1e", "0", os.EINVAL },
-	AtofTest{ "1e-", "0", os.EINVAL },
-	AtofTest{ ".e-1", "0", os.EINVAL },
+	atofTest{ "1e", "0", os.EINVAL },
+	atofTest{ "1e-", "0", os.EINVAL },
+	atofTest{ ".e-1", "0", os.EINVAL },
 }
 
-func XTestAtof(t *testing.T, opt bool) {
+func testAtof(t *testing.T, opt bool) {
 	oldopt := strconv.optimize;
 	strconv.optimize = opt;
 	for i := 0; i < len(atoftests); i++ {
 		test := &atoftests[i];
-		out, err := strconv.atof64(test.in);
-		outs := strconv.ftoa64(out, 'g', -1);
+		out, err := strconv.Atof64(test.in);
+		outs := strconv.Ftoa64(out, 'g', -1);
 		if outs != test.out || err != test.err {
-			t.Errorf("strconv.atof64(%v) = %v, %v want %v, %v\n",
+			t.Errorf("strconv.Atof64(%v) = %v, %v want %v, %v\n",
 				test.in, out, err, test.out, test.err);
 		}
 
 		if float64(float32(out)) == out {
-			out32, err := strconv.atof32(test.in);
-			outs := strconv.ftoa32(out32, 'g', -1);
+			out32, err := strconv.Atof32(test.in);
+			outs := strconv.Ftoa32(out32, 'g', -1);
 			if outs != test.out || err != test.err {
-				t.Errorf("strconv.atof32(%v) = %v, %v want %v, %v  # %v\n",
+				t.Errorf("strconv.Atof32(%v) = %v, %v want %v, %v  # %v\n",
 					test.in, out32, err, test.out, test.err, out);
 			}
 		}
 
 		if FloatSize == 64 || float64(float32(out)) == out {
-			outf, err := strconv.atof(test.in);
-			outs := strconv.ftoa(outf, 'g', -1);
+			outf, err := strconv.Atof(test.in);
+			outs := strconv.Ftoa(outf, 'g', -1);
 			if outs != test.out || err != test.err {
-				t.Errorf("strconv.ftoa(%v) = %v, %v want %v, %v  # %v\n",
+				t.Errorf("strconv.Ftoa(%v) = %v, %v want %v, %v  # %v\n",
 					test.in, outf, err, test.out, test.err, out);
 			}
 		}
@@ -125,9 +125,9 @@
 }
 
 export func TestAtof(t *testing.T) {
-	XTestAtof(t, true);
+	testAtof(t, true);
 }
 
 export func TestAtofSlow(t *testing.T) {
-	XTestAtof(t, false);
+	testAtof(t, false);
 }
diff --git a/src/lib/strconv/atoi.go b/src/lib/strconv/atoi.go
index cd02df1..1c5d112 100644
--- a/src/lib/strconv/atoi.go
+++ b/src/lib/strconv/atoi.go
@@ -5,17 +5,17 @@
 package strconv
 import "os"
 
-func IntSize() uint {
+func computeIntsize() uint {
 	siz := uint(8);
 	for 1<<siz != 0 {
 		siz *= 2
 	}
 	return siz
 }
-var intsize = IntSize();
+var intsize = computeIntsize();
 
 // Convert decimal string to unsigned integer.
-export func atoui64(s string) (i uint64, err *os.Error) {
+export func Atoui64(s string) (i uint64, err *os.Error) {
 	// empty string bad
 	if len(s) == 0 {
 		return 0, os.EINVAL
@@ -52,7 +52,7 @@
 }
 
 // Convert decimal string to integer.
-export func atoi64(s string) (i int64, err *os.Error) {
+export func Atoi64(s string) (i int64, err *os.Error) {
 	// empty string bad
 	if len(s) == 0 {
 		return 0, os.EINVAL
@@ -68,7 +68,7 @@
 	}
 
 	var un uint64;
-	un, err = atoui64(s);
+	un, err = Atoui64(s);
 	if err != nil && err != os.ERANGE {
 		return 0, err
 	}
@@ -85,8 +85,8 @@
 	return n, nil
 }
 
-export func atoui(s string) (i uint, err *os.Error) {
-	i1, e1 := atoui64(s);
+export func Atoui(s string) (i uint, err *os.Error) {
+	i1, e1 := Atoui64(s);
 	if e1 != nil && e1 != os.ERANGE {
 		return 0, e1
 	}
@@ -99,8 +99,8 @@
 	return i, nil
 }
 
-export func atoi(s string) (i int, err *os.Error) {
-	i1, e1 := atoi64(s);
+export func Atoi(s string) (i int, err *os.Error) {
+	i1, e1 := Atoi64(s);
 	if e1 != nil && e1 != os.ERANGE {
 		return 0, e1
 	}
diff --git a/src/lib/strconv/atoi_test.go b/src/lib/strconv/atoi_test.go
index a071b74..41a6f4b 100644
--- a/src/lib/strconv/atoi_test.go
+++ b/src/lib/strconv/atoi_test.go
@@ -10,105 +10,105 @@
 	"testing"
 )
 
-type Atoui64Test struct {
+type atoui64Test struct {
 	in string;
 	out uint64;
 	err *os.Error;
 }
 
-var atoui64tests = []Atoui64Test {
-	Atoui64Test{ "", 0, os.EINVAL },
-	Atoui64Test{ "0", 0, nil },
-	Atoui64Test{ "1", 1, nil },
-	Atoui64Test{ "12345", 12345, nil },
-	Atoui64Test{ "012345", 0, os.EINVAL },
-	Atoui64Test{ "12345x", 0, os.EINVAL },
-	Atoui64Test{ "98765432100", 98765432100, nil },
-	Atoui64Test{ "18446744073709551615", 1<<64-1, nil },
-	Atoui64Test{ "18446744073709551616", 1<<64-1, os.ERANGE },
-	Atoui64Test{ "18446744073709551620", 1<<64-1, os.ERANGE },
+var atoui64tests = []atoui64Test {
+	atoui64Test{ "", 0, os.EINVAL },
+	atoui64Test{ "0", 0, nil },
+	atoui64Test{ "1", 1, nil },
+	atoui64Test{ "12345", 12345, nil },
+	atoui64Test{ "012345", 0, os.EINVAL },
+	atoui64Test{ "12345x", 0, os.EINVAL },
+	atoui64Test{ "98765432100", 98765432100, nil },
+	atoui64Test{ "18446744073709551615", 1<<64-1, nil },
+	atoui64Test{ "18446744073709551616", 1<<64-1, os.ERANGE },
+	atoui64Test{ "18446744073709551620", 1<<64-1, os.ERANGE },
 }
 
-type Atoi64Test struct {
+type atoi64Test struct {
 	in string;
 	out int64;
 	err *os.Error;
 }
 
-var atoi64test = []Atoi64Test {
-	Atoi64Test{ "", 0, os.EINVAL },
-	Atoi64Test{ "0", 0, nil },
-	Atoi64Test{ "-0", 0, nil },
-	Atoi64Test{ "1", 1, nil },
-	Atoi64Test{ "-1", -1, nil },
-	Atoi64Test{ "12345", 12345, nil },
-	Atoi64Test{ "-12345", -12345, nil },
-	Atoi64Test{ "012345", 0, os.EINVAL },
-	Atoi64Test{ "-012345", 0, os.EINVAL },
-	Atoi64Test{ "12345x", 0, os.EINVAL },
-	Atoi64Test{ "-12345x", 0, os.EINVAL },
-	Atoi64Test{ "98765432100", 98765432100, nil },
-	Atoi64Test{ "-98765432100", -98765432100, nil },
-	Atoi64Test{ "9223372036854775807", 1<<63-1, nil },
-	Atoi64Test{ "-9223372036854775807", -(1<<63-1), nil },
-	Atoi64Test{ "9223372036854775808", 1<<63-1, os.ERANGE },
-	Atoi64Test{ "-9223372036854775808", -1<<63, nil },
-	Atoi64Test{ "9223372036854775809", 1<<63-1, os.ERANGE },
-	Atoi64Test{ "-9223372036854775809", -1<<63, os.ERANGE },
+var atoi64test = []atoi64Test {
+	atoi64Test{ "", 0, os.EINVAL },
+	atoi64Test{ "0", 0, nil },
+	atoi64Test{ "-0", 0, nil },
+	atoi64Test{ "1", 1, nil },
+	atoi64Test{ "-1", -1, nil },
+	atoi64Test{ "12345", 12345, nil },
+	atoi64Test{ "-12345", -12345, nil },
+	atoi64Test{ "012345", 0, os.EINVAL },
+	atoi64Test{ "-012345", 0, os.EINVAL },
+	atoi64Test{ "12345x", 0, os.EINVAL },
+	atoi64Test{ "-12345x", 0, os.EINVAL },
+	atoi64Test{ "98765432100", 98765432100, nil },
+	atoi64Test{ "-98765432100", -98765432100, nil },
+	atoi64Test{ "9223372036854775807", 1<<63-1, nil },
+	atoi64Test{ "-9223372036854775807", -(1<<63-1), nil },
+	atoi64Test{ "9223372036854775808", 1<<63-1, os.ERANGE },
+	atoi64Test{ "-9223372036854775808", -1<<63, nil },
+	atoi64Test{ "9223372036854775809", 1<<63-1, os.ERANGE },
+	atoi64Test{ "-9223372036854775809", -1<<63, os.ERANGE },
 }
 
-type Atoui32Test struct {
+type atoui32Test struct {
 	in string;
 	out uint32;
 	err *os.Error;
 }
 
-var atoui32tests = []Atoui32Test {
-	Atoui32Test{ "", 0, os.EINVAL },
-	Atoui32Test{ "0", 0, nil },
-	Atoui32Test{ "1", 1, nil },
-	Atoui32Test{ "12345", 12345, nil },
-	Atoui32Test{ "012345", 0, os.EINVAL },
-	Atoui32Test{ "12345x", 0, os.EINVAL },
-	Atoui32Test{ "987654321", 987654321, nil },
-	Atoui32Test{ "4294967295", 1<<32-1, nil },
-	Atoui32Test{ "4294967296", 1<<32-1, os.ERANGE },
+var atoui32tests = []atoui32Test {
+	atoui32Test{ "", 0, os.EINVAL },
+	atoui32Test{ "0", 0, nil },
+	atoui32Test{ "1", 1, nil },
+	atoui32Test{ "12345", 12345, nil },
+	atoui32Test{ "012345", 0, os.EINVAL },
+	atoui32Test{ "12345x", 0, os.EINVAL },
+	atoui32Test{ "987654321", 987654321, nil },
+	atoui32Test{ "4294967295", 1<<32-1, nil },
+	atoui32Test{ "4294967296", 1<<32-1, os.ERANGE },
 }
 
-type Atoi32Test struct {
+type atoi32Test struct {
 	in string;
 	out int32;
 	err *os.Error;
 }
 
-var atoi32tests = []Atoi32Test {
-	Atoi32Test{ "", 0, os.EINVAL },
-	Atoi32Test{ "0", 0, nil },
-	Atoi32Test{ "-0", 0, nil },
-	Atoi32Test{ "1", 1, nil },
-	Atoi32Test{ "-1", -1, nil },
-	Atoi32Test{ "12345", 12345, nil },
-	Atoi32Test{ "-12345", -12345, nil },
-	Atoi32Test{ "012345", 0, os.EINVAL },
-	Atoi32Test{ "-012345", 0, os.EINVAL },
-	Atoi32Test{ "12345x", 0, os.EINVAL },
-	Atoi32Test{ "-12345x", 0, os.EINVAL },
-	Atoi32Test{ "987654321", 987654321, nil },
-	Atoi32Test{ "-987654321", -987654321, nil },
-	Atoi32Test{ "2147483647", 1<<31-1, nil },
-	Atoi32Test{ "-2147483647", -(1<<31-1), nil },
-	Atoi32Test{ "2147483648", 1<<31-1, os.ERANGE },
-	Atoi32Test{ "-2147483648", -1<<31, nil },
-	Atoi32Test{ "2147483649", 1<<31-1, os.ERANGE },
-	Atoi32Test{ "-2147483649", -1<<31, os.ERANGE },
+var atoi32tests = []atoi32Test {
+	atoi32Test{ "", 0, os.EINVAL },
+	atoi32Test{ "0", 0, nil },
+	atoi32Test{ "-0", 0, nil },
+	atoi32Test{ "1", 1, nil },
+	atoi32Test{ "-1", -1, nil },
+	atoi32Test{ "12345", 12345, nil },
+	atoi32Test{ "-12345", -12345, nil },
+	atoi32Test{ "012345", 0, os.EINVAL },
+	atoi32Test{ "-012345", 0, os.EINVAL },
+	atoi32Test{ "12345x", 0, os.EINVAL },
+	atoi32Test{ "-12345x", 0, os.EINVAL },
+	atoi32Test{ "987654321", 987654321, nil },
+	atoi32Test{ "-987654321", -987654321, nil },
+	atoi32Test{ "2147483647", 1<<31-1, nil },
+	atoi32Test{ "-2147483647", -(1<<31-1), nil },
+	atoi32Test{ "2147483648", 1<<31-1, os.ERANGE },
+	atoi32Test{ "-2147483648", -1<<31, nil },
+	atoi32Test{ "2147483649", 1<<31-1, os.ERANGE },
+	atoi32Test{ "-2147483649", -1<<31, os.ERANGE },
 }
 
 export func TestAtoui64(t *testing.T) {
 	for i := 0; i < len(atoui64tests); i++ {
 		test := &atoui64tests[i];
-		out, err := strconv.atoui64(test.in);
+		out, err := strconv.Atoui64(test.in);
 		if test.out != out || test.err != err {
-			t.Errorf("strconv.atoui64(%v) = %v, %v want %v, %v\n",
+			t.Errorf("strconv.Atoui64(%v) = %v, %v want %v, %v\n",
 				test.in, out, err, test.out, test.err);
 		}
 	}
@@ -117,39 +117,31 @@
 export func TestAtoi64(t *testing.T) {
 	for i := 0; i < len(atoi64test); i++ {
 		test := &atoi64test[i];
-		out, err := strconv.atoi64(test.in);
+		out, err := strconv.Atoi64(test.in);
 		if test.out != out || test.err != err {
-			t.Errorf("strconv.atoi64(%v) = %v, %v want %v, %v\n",
+			t.Errorf("strconv.Atoi64(%v) = %v, %v want %v, %v\n",
 				test.in, out, err, test.out, test.err);
 		}
 	}
 }
 
-func IntSize1() uint {
-	tmp := 1;
-	if tmp<<16<<16 == 0 {
-		return 32;
-	}
-	return 64;
-}
-
 export func TestAtoui(t *testing.T) {
-	switch IntSize1() {
+	switch intsize {
 	case 32:
 		for i := 0; i < len(atoui32tests); i++ {
 			test := &atoui32tests[i];
-			out, err := strconv.atoui(test.in);
+			out, err := strconv.Atoui(test.in);
 			if test.out != uint32(out) || test.err != err {
-				t.Errorf("strconv.atoui(%v) = %v, %v want %v, %v\n",
+				t.Errorf("strconv.Atoui(%v) = %v, %v want %v, %v\n",
 					test.in, out, err, test.out, test.err);
 			}
 		}
 	case 64:
 		for i := 0; i < len(atoui64tests); i++ {
 			test := &atoui64tests[i];
-			out, err := strconv.atoui(test.in);
+			out, err := strconv.Atoui(test.in);
 			if test.out != uint64(out) || test.err != err {
-				t.Errorf("strconv.atoui(%v) = %v, %v want %v, %v\n",
+				t.Errorf("strconv.Atoui(%v) = %v, %v want %v, %v\n",
 					test.in, out, err, test.out, test.err);
 			}
 		}
@@ -157,22 +149,22 @@
 }
 
 export func TestAtoi(t *testing.T) {
-	switch IntSize1() {
+	switch intsize {
 	case 32:
 		for i := 0; i < len(atoi32tests); i++ {
 			test := &atoi32tests[i];
-			out, err := strconv.atoi(test.in);
+			out, err := strconv.Atoi(test.in);
 			if test.out != int32(out) || test.err != err {
-				t.Errorf("strconv.atoi(%v) = %v, %v want %v, %v\n",
+				t.Errorf("strconv.Atoi(%v) = %v, %v want %v, %v\n",
 					test.in, out, err, test.out, test.err);
 			}
 		}
 	case 64:
 		for i := 0; i < len(atoi64test); i++ {
 			test := &atoi64test[i];
-			out, err := strconv.atoi(test.in);
+			out, err := strconv.Atoi(test.in);
 			if test.out != int64(out) || test.err != err {
-				t.Errorf("strconv.atoi(%v) = %v, %v want %v, %v\n",
+				t.Errorf("strconv.Atoi(%v) = %v, %v want %v, %v\n",
 					test.in, out, err, test.out, test.err);
 			}
 		}
diff --git a/src/lib/strconv/decimal.go b/src/lib/strconv/decimal.go
index 440b028..4808e93 100644
--- a/src/lib/strconv/decimal.go
+++ b/src/lib/strconv/decimal.go
@@ -11,26 +11,26 @@
 
 package strconv
 
-package type Decimal struct {
+type decimal struct {
 	// TODO(rsc): Can make d[] a bit smaller and add
 	// truncated bool;
 	d [2000] byte;	// digits
 	nd int;	// number of digits used
 	dp int;	// decimal point
 };
-func (a *Decimal) String() string;
-func (a *Decimal) Assign(v uint64);
-func (a *Decimal) Shift(k int) *Decimal;
-func (a *Decimal) Round(nd int) *Decimal;
-func (a *Decimal) RoundUp(nd int) *Decimal;
-func (a *Decimal) RoundDown(nd int) *Decimal;
-func (a *Decimal) RoundedInteger() uint64;
+func (a *decimal) String() string;
+func (a *decimal) Assign(v uint64);
+func (a *decimal) Shift(k int) *decimal;
+func (a *decimal) Round(nd int) *decimal;
+func (a *decimal) RoundUp(nd int) *decimal;
+func (a *decimal) RoundDown(nd int) *decimal;
+func (a *decimal) RoundedInteger() uint64;
 
 
-func Copy(dst []byte, src []byte) int;
-func DigitZero(dst []byte) int;
+func copy(dst []byte, src []byte) int;
+func digitZero(dst []byte) int;
 
-func (a *Decimal) String() string {
+func (a *decimal) String() string {
 	n := 10 + a.nd;
 	if a.dp > 0 {
 		n += a.dp;
@@ -51,42 +51,42 @@
 		w++;
 		buf[w] = '.';
 		w++;
-		w += DigitZero(buf[w:w+-a.dp]);
-		w += Copy(buf[w:w+a.nd], a.d[0:a.nd]);
+		w += digitZero(buf[w:w+-a.dp]);
+		w += copy(buf[w:w+a.nd], a.d[0:a.nd]);
 
 	case a.dp < a.nd:
 		// decimal point in middle of digits
-		w += Copy(buf[w:w+a.dp], a.d[0:a.dp]);
+		w += copy(buf[w:w+a.dp], a.d[0:a.dp]);
 		buf[w] = '.';
 		w++;
-		w += Copy(buf[w:w+a.nd-a.dp], a.d[a.dp:a.nd]);
+		w += copy(buf[w:w+a.nd-a.dp], a.d[a.dp:a.nd]);
 
 	default:
 		// zeros fill space between digits and decimal point
-		w += Copy(buf[w:w+a.nd], a.d[0:a.nd]);
-		w += DigitZero(buf[w:w+a.dp-a.nd]);
+		w += copy(buf[w:w+a.nd], a.d[0:a.nd]);
+		w += digitZero(buf[w:w+a.dp-a.nd]);
 	}
 	return string(buf[0:w]);
 }
 
-func Copy(dst []byte, src []byte) int {
+func copy(dst []byte, src []byte) int {
 	for i := 0; i < len(dst); i++ {
 		dst[i] = src[i];
 	}
 	return len(dst);
 }
 
-func DigitZero(dst []byte) int {
+func digitZero(dst []byte) int {
 	for i := 0; i < len(dst); i++ {
 		dst[i] = '0';
 	}
 	return len(dst);
 }
 
-// Trim trailing zeros from number.
+// trim trailing zeros from number.
 // (They are meaningless; the decimal point is tracked
 // independent of the number of digits.)
-func Trim(a *Decimal) {
+func trim(a *decimal) {
 	for a.nd > 0 && a.d[a.nd-1] == '0' {
 		a.nd--;
 	}
@@ -96,7 +96,7 @@
 }
 
 // Assign v to a.
-func (a *Decimal) Assign(v uint64) {
+func (a *decimal) Assign(v uint64) {
 	var buf [50]byte;
 
 	// Write reversed decimal in buf.
@@ -116,21 +116,21 @@
 		a.nd++;
 	}
 	a.dp = a.nd;
-	Trim(a);
+	trim(a);
 }
 
-package func NewDecimal(i uint64) *Decimal {
-	a := new(Decimal);
+func newDecimal(i uint64) *decimal {
+	a := new(decimal);
 	a.Assign(i);
 	return a;
 }
 
 // Maximum shift that we can do in one pass without overflow.
 // Signed int has 31 bits, and we have to be able to accomodate 9<<k.
-const MaxShift = 27
+const maxShift = 27
 
-// Binary shift right (* 2) by k bits.  k <= MaxShift to avoid overflow.
-func RightShift(a *Decimal, k uint) {
+// Binary shift right (* 2) by k bits.  k <= maxShift to avoid overflow.
+func rightShift(a *decimal, k uint) {
 	r := 0;	// read pointer
 	w := 0;	// write pointer
 
@@ -174,69 +174,69 @@
 	}
 
 	a.nd = w;
-	Trim(a);
+	trim(a);
 }
 
 // Cheat sheet for left shift: table indexed by shift count giving
 // number of new digits that will be introduced by that shift.
 //
-// For example, leftcheat[4] = {2, "625"}.  That means that
+// For example, leftcheats[4] = {2, "625"}.  That means that
 // if we are shifting by 4 (multiplying by 16), it will add 2 digits
 // when the string prefix is "625" through "999", and one fewer digit
 // if the string prefix is "000" through "624".
 //
 // Credit for this trick goes to Ken.
 
-type LeftCheat struct {
+type leftCheat struct {
 	delta int;	// number of new digits
 	cutoff string;	//   minus one digit if original < a.
 }
 
-var leftcheat = []LeftCheat {
+var leftcheats = []leftCheat {
 	// Leading digits of 1/2^i = 5^i.
 	// 5^23 is not an exact 64-bit floating point number,
 	// so have to use bc for the math.
 	/*
 	seq 27 | sed 's/^/5^/' | bc |
-	awk 'BEGIN{ print "\tLeftCheat{ 0, \"\" }," }
+	awk 'BEGIN{ print "\tleftCheat{ 0, \"\" }," }
 	{
 		log2 = log(2)/log(10)
-		printf("\tLeftCheat{ %d, \"%s\" },\t// * %d\n",
+		printf("\tleftCheat{ %d, \"%s\" },\t// * %d\n",
 			int(log2*NR+1), $0, 2**NR)
 	}'
 	 */
-	LeftCheat{ 0, "" },
-	LeftCheat{ 1, "5" },	// * 2
-	LeftCheat{ 1, "25" },	// * 4
-	LeftCheat{ 1, "125" },	// * 8
-	LeftCheat{ 2, "625" },	// * 16
-	LeftCheat{ 2, "3125" },	// * 32
-	LeftCheat{ 2, "15625" },	// * 64
-	LeftCheat{ 3, "78125" },	// * 128
-	LeftCheat{ 3, "390625" },	// * 256
-	LeftCheat{ 3, "1953125" },	// * 512
-	LeftCheat{ 4, "9765625" },	// * 1024
-	LeftCheat{ 4, "48828125" },	// * 2048
-	LeftCheat{ 4, "244140625" },	// * 4096
-	LeftCheat{ 4, "1220703125" },	// * 8192
-	LeftCheat{ 5, "6103515625" },	// * 16384
-	LeftCheat{ 5, "30517578125" },	// * 32768
-	LeftCheat{ 5, "152587890625" },	// * 65536
-	LeftCheat{ 6, "762939453125" },	// * 131072
-	LeftCheat{ 6, "3814697265625" },	// * 262144
-	LeftCheat{ 6, "19073486328125" },	// * 524288
-	LeftCheat{ 7, "95367431640625" },	// * 1048576
-	LeftCheat{ 7, "476837158203125" },	// * 2097152
-	LeftCheat{ 7, "2384185791015625" },	// * 4194304
-	LeftCheat{ 7, "11920928955078125" },	// * 8388608
-	LeftCheat{ 8, "59604644775390625" },	// * 16777216
-	LeftCheat{ 8, "298023223876953125" },	// * 33554432
-	LeftCheat{ 8, "1490116119384765625" },	// * 67108864
-	LeftCheat{ 9, "7450580596923828125" },	// * 134217728
+	leftCheat{ 0, "" },
+	leftCheat{ 1, "5" },	// * 2
+	leftCheat{ 1, "25" },	// * 4
+	leftCheat{ 1, "125" },	// * 8
+	leftCheat{ 2, "625" },	// * 16
+	leftCheat{ 2, "3125" },	// * 32
+	leftCheat{ 2, "15625" },	// * 64
+	leftCheat{ 3, "78125" },	// * 128
+	leftCheat{ 3, "390625" },	// * 256
+	leftCheat{ 3, "1953125" },	// * 512
+	leftCheat{ 4, "9765625" },	// * 1024
+	leftCheat{ 4, "48828125" },	// * 2048
+	leftCheat{ 4, "244140625" },	// * 4096
+	leftCheat{ 4, "1220703125" },	// * 8192
+	leftCheat{ 5, "6103515625" },	// * 16384
+	leftCheat{ 5, "30517578125" },	// * 32768
+	leftCheat{ 5, "152587890625" },	// * 65536
+	leftCheat{ 6, "762939453125" },	// * 131072
+	leftCheat{ 6, "3814697265625" },	// * 262144
+	leftCheat{ 6, "19073486328125" },	// * 524288
+	leftCheat{ 7, "95367431640625" },	// * 1048576
+	leftCheat{ 7, "476837158203125" },	// * 2097152
+	leftCheat{ 7, "2384185791015625" },	// * 4194304
+	leftCheat{ 7, "11920928955078125" },	// * 8388608
+	leftCheat{ 8, "59604644775390625" },	// * 16777216
+	leftCheat{ 8, "298023223876953125" },	// * 33554432
+	leftCheat{ 8, "1490116119384765625" },	// * 67108864
+	leftCheat{ 9, "7450580596923828125" },	// * 134217728
 }
 
 // Is the leading prefix of b lexicographically less than s?
-func PrefixIsLessThan(b []byte, s string) bool {
+func prefixIsLessThan(b []byte, s string) bool {
 	for i := 0; i < len(s); i++ {
 		if i >= len(b) {
 			return true;
@@ -248,10 +248,10 @@
 	return false;
 }
 
-// Binary shift left (/ 2) by k bits.  k <= MaxShift to avoid overflow.
-func LeftShift(a *Decimal, k uint) {
-	delta := leftcheat[k].delta;
-	if PrefixIsLessThan(a.d[0:a.nd], leftcheat[k].cutoff) {
+// Binary shift left (/ 2) by k bits.  k <= maxShift to avoid overflow.
+func leftShift(a *decimal, k uint) {
+	delta := leftcheats[k].delta;
+	if prefixIsLessThan(a.d[0:a.nd], leftcheats[k].cutoff) {
 		delta--;
 	}
 
@@ -280,37 +280,37 @@
 
 	if w != 0 {
 		// TODO: Remove - has no business panicking.
-		panicln("strconv: bad LeftShift", w);
+		panicln("strconv: bad leftShift", w);
 	}
 	a.nd += delta;
 	a.dp += delta;
-	Trim(a);
+	trim(a);
 }
 
 // Binary shift left (k > 0) or right (k < 0).
 // Returns receiver for convenience.
-func (a *Decimal) Shift(k int) *Decimal {
+func (a *decimal) Shift(k int) *decimal {
 	switch {
 	case a.nd == 0:
 		// nothing to do: a == 0
 	case k > 0:
-		for k > MaxShift {
-			LeftShift(a, MaxShift);
-			k -= MaxShift;
+		for k > maxShift {
+			leftShift(a, maxShift);
+			k -= maxShift;
 		}
-		LeftShift(a, uint(k));
+		leftShift(a, uint(k));
 	case k < 0:
-		for k < -MaxShift {
-			RightShift(a, MaxShift);
-			k += MaxShift;
+		for k < -maxShift {
+			rightShift(a, maxShift);
+			k += maxShift;
 		}
-		RightShift(a, uint(-k));
+		rightShift(a, uint(-k));
 	}
 	return a;
 }
 
 // If we chop a at nd digits, should we round up?
-func ShouldRoundUp(a *Decimal, nd int) bool {
+func shouldRoundUp(a *decimal, nd int) bool {
 	if nd <= 0 || nd >= a.nd {
 		return false;
 	}
@@ -323,11 +323,11 @@
 
 // Round a to nd digits (or fewer).
 // Returns receiver for convenience.
-func (a *Decimal) Round(nd int) *Decimal {
+func (a *decimal) Round(nd int) *decimal {
 	if nd <= 0 || nd >= a.nd {
 		return a;
 	}
-	if(ShouldRoundUp(a, nd)) {
+	if(shouldRoundUp(a, nd)) {
 		return a.RoundUp(nd);
 	}
 	return a.RoundDown(nd);
@@ -335,18 +335,18 @@
 
 // Round a down to nd digits (or fewer).
 // Returns receiver for convenience.
-func (a *Decimal) RoundDown(nd int) *Decimal {
+func (a *decimal) RoundDown(nd int) *decimal {
 	if nd <= 0 || nd >= a.nd {
 		return a;
 	}
 	a.nd = nd;
-	Trim(a);
+	trim(a);
 	return a;
 }
 
 // Round a up to nd digits (or fewer).
 // Returns receiver for convenience.
-func (a *Decimal) RoundUp(nd int) *Decimal {
+func (a *decimal) RoundUp(nd int) *decimal {
 	if nd <= 0 || nd >= a.nd {
 		return a;
 	}
@@ -371,7 +371,7 @@
 
 // Extract integer part, rounded appropriately.
 // No guarantees about overflow.
-func (a *Decimal) RoundedInteger() uint64 {
+func (a *decimal) RoundedInteger() uint64 {
 	if a.dp > 20 {
 		return 0xFFFFFFFFFFFFFFFF;
 	}
@@ -383,7 +383,7 @@
 	for ; i < a.dp; i++ {
 		n *= 10;
 	}
-	if ShouldRoundUp(a, a.dp) {
+	if shouldRoundUp(a, a.dp) {
 		n++;
 	}
 	return n;
diff --git a/src/lib/strconv/decimal_test.go b/src/lib/strconv/decimal_test.go
index 5b6d1a6..55fcbdd 100644
--- a/src/lib/strconv/decimal_test.go
+++ b/src/lib/strconv/decimal_test.go
@@ -10,30 +10,30 @@
 	"testing";
 )
 
-type ShiftTest struct {
+type shiftTest struct {
 	i uint64;
 	shift int;
 	out string;
 }
 
-var shifttests = []ShiftTest {
-	ShiftTest{ 0, -100, "0" },
-	ShiftTest{ 0, 100, "0" },
-	ShiftTest{ 1, 100, "1267650600228229401496703205376" },
-	ShiftTest{ 1, -100,
+var shifttests = []shiftTest {
+	shiftTest{ 0, -100, "0" },
+	shiftTest{ 0, 100, "0" },
+	shiftTest{ 1, 100, "1267650600228229401496703205376" },
+	shiftTest{ 1, -100,
 		"0.00000000000000000000000000000078886090522101180541"
 		"17285652827862296732064351090230047702789306640625" },
-	ShiftTest{ 12345678, 8, "3160493568" },
-	ShiftTest{ 12345678, -8, "48225.3046875" },
-	ShiftTest{ 195312, 9, "99999744" },
-	ShiftTest{ 1953125, 9, "1000000000" },
+	shiftTest{ 12345678, 8, "3160493568" },
+	shiftTest{ 12345678, -8, "48225.3046875" },
+	shiftTest{ 195312, 9, "99999744" },
+	shiftTest{ 1953125, 9, "1000000000" },
 }
 
 export func TestDecimalShift(t *testing.T) {
 	ok := true;
 	for i := 0; i < len(shifttests); i++ {
 		test := &shifttests[i];
-		s := strconv.NewDecimal(test.i).Shift(test.shift).String();
+		s := strconv.newDecimal(test.i).Shift(test.shift).String();
 		if s != test.out {
 			t.Errorf("Decimal %v << %v = %v, want %v\n",
 				test.i, test.shift, s, test.out);
@@ -41,45 +41,45 @@
 	}
 }
 
-type RoundTest struct {
+type roundTest struct {
 	i uint64;
 	nd int;
 	down, round, up string;
 	int uint64;
 }
 
-var roundtests = []RoundTest {
-	RoundTest{ 0, 4, "0", "0", "0", 0 },
-	RoundTest{ 12344999, 4, "12340000", "12340000", "12350000", 12340000 },
-	RoundTest{ 12345000, 4, "12340000", "12340000", "12350000", 12340000 },
-	RoundTest{ 12345001, 4, "12340000", "12350000", "12350000", 12350000 },
-	RoundTest{ 23454999, 4, "23450000", "23450000", "23460000", 23450000 },
-	RoundTest{ 23455000, 4, "23450000", "23460000", "23460000", 23460000 },
-	RoundTest{ 23455001, 4, "23450000", "23460000", "23460000", 23460000 },
+var roundtests = []roundTest {
+	roundTest{ 0, 4, "0", "0", "0", 0 },
+	roundTest{ 12344999, 4, "12340000", "12340000", "12350000", 12340000 },
+	roundTest{ 12345000, 4, "12340000", "12340000", "12350000", 12340000 },
+	roundTest{ 12345001, 4, "12340000", "12350000", "12350000", 12350000 },
+	roundTest{ 23454999, 4, "23450000", "23450000", "23460000", 23450000 },
+	roundTest{ 23455000, 4, "23450000", "23460000", "23460000", 23460000 },
+	roundTest{ 23455001, 4, "23450000", "23460000", "23460000", 23460000 },
 
-	RoundTest{ 99994999, 4, "99990000", "99990000", "100000000", 99990000 },
-	RoundTest{ 99995000, 4, "99990000", "100000000", "100000000", 100000000 },
-	RoundTest{ 99999999, 4, "99990000", "100000000", "100000000", 100000000 },
+	roundTest{ 99994999, 4, "99990000", "99990000", "100000000", 99990000 },
+	roundTest{ 99995000, 4, "99990000", "100000000", "100000000", 100000000 },
+	roundTest{ 99999999, 4, "99990000", "100000000", "100000000", 100000000 },
 
-	RoundTest{ 12994999, 4, "12990000", "12990000", "13000000", 12990000 },
-	RoundTest{ 12995000, 4, "12990000", "13000000", "13000000", 13000000 },
-	RoundTest{ 12999999, 4, "12990000", "13000000", "13000000", 13000000 },
+	roundTest{ 12994999, 4, "12990000", "12990000", "13000000", 12990000 },
+	roundTest{ 12995000, 4, "12990000", "13000000", "13000000", 13000000 },
+	roundTest{ 12999999, 4, "12990000", "13000000", "13000000", 13000000 },
 }
 
 export func TestDecimalRound(t *testing.T) {
 	for i := 0; i < len(roundtests); i++ {
 		test := &roundtests[i];
-		s := strconv.NewDecimal(test.i).RoundDown(test.nd).String();
+		s := strconv.newDecimal(test.i).RoundDown(test.nd).String();
 		if s != test.down {
 			t.Errorf("Decimal %v RoundDown %d = %v, want %v\n",
 				test.i, test.nd, s, test.down);
 		}
-		s = strconv.NewDecimal(test.i).Round(test.nd).String();
+		s = strconv.newDecimal(test.i).Round(test.nd).String();
 		if s != test.round {
 			t.Errorf("Decimal %v Round %d = %v, want %v\n",
 				test.i, test.nd, s, test.down);
 		}
-		s = strconv.NewDecimal(test.i).RoundUp(test.nd).String();
+		s = strconv.newDecimal(test.i).RoundUp(test.nd).String();
 		if s != test.up {
 			t.Errorf("Decimal %v RoundUp %d = %v, want %v\n",
 				test.i, test.nd, s, test.up);
@@ -87,30 +87,30 @@
 	}
 }
 
-type RoundIntTest struct {
+type roundIntTest struct {
 	i uint64;
 	shift int;
 	int uint64;
 }
 
-var roundinttests = []RoundIntTest {
-	RoundIntTest{ 0, 100, 0 },
-	RoundIntTest{ 512, -8, 2 },
-	RoundIntTest{ 513, -8, 2 },
-	RoundIntTest{ 640, -8, 2 },
-	RoundIntTest{ 641, -8, 3 },
-	RoundIntTest{ 384, -8, 2 },
-	RoundIntTest{ 385, -8, 2 },
-	RoundIntTest{ 383, -8, 1 },
-	RoundIntTest{ 1, 100, 1<<64-1 },
-	RoundIntTest{ 1000, 0, 1000 },
+var roundinttests = []roundIntTest {
+	roundIntTest{ 0, 100, 0 },
+	roundIntTest{ 512, -8, 2 },
+	roundIntTest{ 513, -8, 2 },
+	roundIntTest{ 640, -8, 2 },
+	roundIntTest{ 641, -8, 3 },
+	roundIntTest{ 384, -8, 2 },
+	roundIntTest{ 385, -8, 2 },
+	roundIntTest{ 383, -8, 1 },
+	roundIntTest{ 1, 100, 1<<64-1 },
+	roundIntTest{ 1000, 0, 1000 },
 }
 
 export func TestDecimalRoundedInteger(t *testing.T) {
 	for i := 0; i < len(roundinttests); i++ {
 		test := roundinttests[i];
 		// TODO: should be able to use int := here.
-		int1 := strconv.NewDecimal(test.i).Shift(test.shift).RoundedInteger();
+		int1 := strconv.newDecimal(test.i).Shift(test.shift).RoundedInteger();
 		if int1 != test.int {
 			t.Errorf("Decimal %v >> %v RoundedInteger = %v, want %v\n",
 				test.i, test.shift, int1, test.int);
diff --git a/src/lib/strconv/fp_test.go b/src/lib/strconv/fp_test.go
index ef82d36..d5d5f7f 100644
--- a/src/lib/strconv/fp_test.go
+++ b/src/lib/strconv/fp_test.go
@@ -24,16 +24,16 @@
 	return pow2(i/2) * pow2(i-i/2);
 }
 
-// Wrapper around strconv.atof64.  Handles dddddp+ddd (binary exponent)
-// itself, passes the rest on to strconv.atof64.
+// Wrapper around strconv.Atof64.  Handles dddddp+ddd (binary exponent)
+// itself, passes the rest on to strconv.Atof64.
 func myatof64(s string) (f float64, ok bool) {
 	a := strings.split(s, "p");
 	if len(a) == 2 {
-		n, err := strconv.atoi64(a[0]);
+		n, err := strconv.Atoi64(a[0]);
 		if err != nil {
 			return 0, false;
 		}
-		e, err1 := strconv.atoi(a[1]);
+		e, err1 := strconv.Atoi(a[1]);
 		if err1 != nil {
 			println("bad e", a[1]);
 			return 0, false;
@@ -61,31 +61,31 @@
 		}
 		return v*pow2(e), true;
 	}
-	f1, err := strconv.atof64(s);
+	f1, err := strconv.Atof64(s);
 	if err != nil {
 		return 0, false;
 	}
 	return f1, true;
 }
 
-// Wrapper around strconv.atof32.  Handles dddddp+ddd (binary exponent)
-// itself, passes the rest on to strconv.atof32.
+// Wrapper around strconv.Atof32.  Handles dddddp+ddd (binary exponent)
+// itself, passes the rest on to strconv.Atof32.
 func myatof32(s string) (f float32, ok bool) {
 	a := strings.split(s, "p");
 	if len(a) == 2 {
-		n, err := strconv.atoi(a[0]);
+		n, err := strconv.Atoi(a[0]);
 		if err != nil {
 			println("bad n", a[0]);
 			return 0, false;
 		}
-		e, err1 := strconv.atoi(a[1]);
+		e, err1 := strconv.Atoi(a[1]);
 		if err1 != nil {
 			println("bad p", a[1]);
 			return 0, false;
 		}
 		return float32(float64(n)*pow2(e)), true;
 	}
-	f1, err1 := strconv.atof32(s);
+	f1, err1 := strconv.Atof32(s);
 	if err1 != nil {
 		return 0, false;
 	}
diff --git a/src/lib/strconv/ftoa.go b/src/lib/strconv/ftoa.go
index a0f5efc..f826d94 100644
--- a/src/lib/strconv/ftoa.go
+++ b/src/lib/strconv/ftoa.go
@@ -13,20 +13,20 @@
 import "strconv"
 
 // TODO: move elsewhere?
-package type FloatInfo struct {
+type floatInfo struct {
 	mantbits uint;
 	expbits uint;
 	bias int;
 }
-package var float32info = FloatInfo{ 23, 8, -127 }
-package var float64info = FloatInfo{ 52, 11, -1023 }
+var float32info = floatInfo{ 23, 8, -127 }
+var float64info = floatInfo{ 52, 11, -1023 }
 
-func FmtB(neg bool, mant uint64, exp int, flt *FloatInfo) string
-func FmtE(neg bool, d *Decimal, prec int) string
-func FmtF(neg bool, d *Decimal, prec int) string
-func GenericFtoa(bits uint64, fmt byte, prec int, flt *FloatInfo) string
-func Max(a, b int) int
-func RoundShortest(d *Decimal, mant uint64, exp int, flt *FloatInfo)
+func fmtB(neg bool, mant uint64, exp int, flt *floatInfo) string
+func fmtE(neg bool, d *decimal, prec int) string
+func fmtF(neg bool, d *decimal, prec int) string
+func genericFtoa(bits uint64, fmt byte, prec int, flt *floatInfo) string
+func max(a, b int) int
+func roundShortest(d *decimal, mant uint64, exp int, flt *floatInfo)
 
 func floatsize() int {
 	// Figure out whether float is float32 or float64.
@@ -40,22 +40,22 @@
 }
 export var FloatSize = floatsize()
 
-export func ftoa32(f float32, fmt byte, prec int) string {
-	return GenericFtoa(uint64(sys.float32bits(f)), fmt, prec, &float32info);
+export func Ftoa32(f float32, fmt byte, prec int) string {
+	return genericFtoa(uint64(sys.float32bits(f)), fmt, prec, &float32info);
 }
 
-export func ftoa64(f float64, fmt byte, prec int) string {
-	return GenericFtoa(sys.float64bits(f), fmt, prec, &float64info);
+export func Ftoa64(f float64, fmt byte, prec int) string {
+	return genericFtoa(sys.float64bits(f), fmt, prec, &float64info);
 }
 
-export func ftoa(f float, fmt byte, prec int) string {
+export func Ftoa(f float, fmt byte, prec int) string {
 	if FloatSize == 32 {
-		return ftoa32(float32(f), fmt, prec);
+		return Ftoa32(float32(f), fmt, prec);
 	}
-	return ftoa64(float64(f), fmt, prec);
+	return Ftoa64(float64(f), fmt, prec);
 }
 
-func GenericFtoa(bits uint64, fmt byte, prec int, flt *FloatInfo) string {
+func genericFtoa(bits uint64, fmt byte, prec int, flt *floatInfo) string {
 	neg := bits>>flt.expbits>>flt.mantbits != 0;
 	exp := int(bits>>flt.mantbits) & (1<<flt.expbits - 1);
 	mant := bits & (uint64(1)<<flt.mantbits - 1);
@@ -83,26 +83,26 @@
 
 	// Pick off easy binary format.
 	if fmt == 'b' {
-		return FmtB(neg, mant, exp, flt);
+		return fmtB(neg, mant, exp, flt);
 	}
 
 	// Create exact decimal representation.
 	// The shift is exp - flt.mantbits because mant is a 1-bit integer
 	// followed by a flt.mantbits fraction, and we are treating it as
 	// a 1+flt.mantbits-bit integer.
-	d := NewDecimal(mant).Shift(exp - int(flt.mantbits));
+	d := newDecimal(mant).Shift(exp - int(flt.mantbits));
 
 	// Round appropriately.
 	// Negative precision means "only as much as needed to be exact."
 	shortest := false;
 	if prec < 0 {
 		shortest = true;
-		RoundShortest(d, mant, exp, flt);
+		roundShortest(d, mant, exp, flt);
 		switch fmt {
 		case 'e':
 			prec = d.nd - 1;
 		case 'f':
-			prec = Max(d.nd - d.dp, 0);
+			prec = max(d.nd - d.dp, 0);
 		case 'g':
 			prec = d.nd;
 		}
@@ -122,9 +122,9 @@
 
 	switch fmt {
 	case 'e':
-		return FmtE(neg, d, prec);
+		return fmtE(neg, d, prec);
 	case 'f':
-		return FmtF(neg, d, prec);
+		return fmtF(neg, d, prec);
 	case 'g':
 		// trailing zeros are removed.
 		if prec > d.nd {
@@ -139,9 +139,9 @@
 		}
 		exp := d.dp - 1;
 		if exp < -4 || exp >= eprec {
-			return FmtE(neg, d, prec - 1);
+			return fmtE(neg, d, prec - 1);
 		}
-		return FmtF(neg, d, Max(prec - d.dp, 0));
+		return fmtF(neg, d, max(prec - d.dp, 0));
 	}
 
 	return "%" + string(fmt);
@@ -150,7 +150,7 @@
 // Round d (= mant * 2^exp) to the shortest number of digits
 // that will let the original floating point value be precisely
 // reconstructed.  Size is original floating point size (64 or 32).
-func RoundShortest(d *Decimal, mant uint64, exp int, flt *FloatInfo) {
+func roundShortest(d *decimal, mant uint64, exp int, flt *floatInfo) {
 	// If mantissa is zero, the number is zero; stop now.
 	if mant == 0 {
 		d.nd = 0;
@@ -169,7 +169,7 @@
 	// d = mant << (exp - mantbits)
 	// Next highest floating point number is mant+1 << exp-mantbits.
 	// Our upper bound is halfway inbetween, mant*2+1 << exp-mantbits-1.
-	upper := NewDecimal(mant*2+1).Shift(exp-int(flt.mantbits)-1);
+	upper := newDecimal(mant*2+1).Shift(exp-int(flt.mantbits)-1);
 
 	// d = mant << (exp - mantbits)
 	// Next lowest floating point number is mant-1 << exp-mantbits,
@@ -187,7 +187,7 @@
 		mantlo = mant*2-1;
 		explo = exp-1;
 	}
-	lower := NewDecimal(mantlo*2+1).Shift(explo-int(flt.mantbits)-1);
+	lower := newDecimal(mantlo*2+1).Shift(explo-int(flt.mantbits)-1);
 
 	// The upper and lower bounds are possible outputs only if
 	// the original mantissa is even, so that IEEE round-to-even
@@ -235,8 +235,8 @@
 }
 
 // %e: -d.ddddde±dd
-func FmtE(neg bool, d *Decimal, prec int) string {
-	buf := make([]byte, 3+Max(prec, 0)+30);	// "-0." + prec digits + exp
+func fmtE(neg bool, d *decimal, prec int) string {
+	buf := make([]byte, 3+max(prec, 0)+30);	// "-0." + prec digits + exp
 	w := 0;	// write index
 
 	// sign
@@ -305,8 +305,8 @@
 }
 
 // %f: -ddddddd.ddddd
-func FmtF(neg bool, d *Decimal, prec int) string {
-	buf := make([]byte, 1+Max(d.dp, 1)+1+Max(prec, 0));
+func fmtF(neg bool, d *decimal, prec int) string {
+	buf := make([]byte, 1+max(d.dp, 1)+1+max(prec, 0));
 	w := 0;
 
 	// sign
@@ -349,7 +349,7 @@
 }
 
 // %b: -ddddddddp+ddd
-func FmtB(neg bool, mant uint64, exp int, flt *FloatInfo) string {
+func fmtB(neg bool, mant uint64, exp int, flt *floatInfo) string {
 	var buf [50]byte;
 	w := len(buf);
 	exp -= int(flt.mantbits);
@@ -383,7 +383,7 @@
 	return string(buf[w:len(buf)]);
 }
 
-func Max(a, b int) int {
+func max(a, b int) int {
 	if a > b {
 		return a;
 	}
diff --git a/src/lib/strconv/ftoa_test.go b/src/lib/strconv/ftoa_test.go
index 8dbe7f3..61ce38c 100644
--- a/src/lib/strconv/ftoa_test.go
+++ b/src/lib/strconv/ftoa_test.go
@@ -9,7 +9,7 @@
 	"testing"
 )
 
-type FtoaTest struct {
+type ftoaTest struct {
 	f float64;
 	fmt byte;
 	prec int;
@@ -19,83 +19,83 @@
 func fdiv(a, b float64) float64 { return a / b }	// keep compiler in the dark
 
 const (
-	Below1e23 = 99999999999999974834176;
-	Above1e23 = 100000000000000008388608;
+	below1e23 = 99999999999999974834176;
+	above1e23 = 100000000000000008388608;
 )
 
-var ftoatests = []FtoaTest {
-	FtoaTest{ 1, 'e', 5, "1.00000e+00" },
-	FtoaTest{ 1, 'f', 5, "1.00000" },
-	FtoaTest{ 1, 'g', 5, "1" },
-	FtoaTest{ 1, 'g', -1, "1" },
-	FtoaTest{ 20, 'g', -1, "20" },
-	FtoaTest{ 1234567.8, 'g', -1, "1.2345678e+06" },
-	FtoaTest{ 200000, 'g', -1, "200000" },
-	FtoaTest{ 2000000, 'g', -1, "2e+06" },
+var ftoatests = []ftoaTest {
+	ftoaTest{ 1, 'e', 5, "1.00000e+00" },
+	ftoaTest{ 1, 'f', 5, "1.00000" },
+	ftoaTest{ 1, 'g', 5, "1" },
+	ftoaTest{ 1, 'g', -1, "1" },
+	ftoaTest{ 20, 'g', -1, "20" },
+	ftoaTest{ 1234567.8, 'g', -1, "1.2345678e+06" },
+	ftoaTest{ 200000, 'g', -1, "200000" },
+	ftoaTest{ 2000000, 'g', -1, "2e+06" },
 
-	FtoaTest{ 0, 'e', 5, "0.00000e+00" },
-	FtoaTest{ 0, 'f', 5, "0.00000" },
-	FtoaTest{ 0, 'g', 5, "0" },
-	FtoaTest{ 0, 'g', -1, "0" },
+	ftoaTest{ 0, 'e', 5, "0.00000e+00" },
+	ftoaTest{ 0, 'f', 5, "0.00000" },
+	ftoaTest{ 0, 'g', 5, "0" },
+	ftoaTest{ 0, 'g', -1, "0" },
 
-	FtoaTest{ -1, 'e', 5, "-1.00000e+00" },
-	FtoaTest{ -1, 'f', 5, "-1.00000" },
-	FtoaTest{ -1, 'g', 5, "-1" },
-	FtoaTest{ -1, 'g', -1, "-1" },
+	ftoaTest{ -1, 'e', 5, "-1.00000e+00" },
+	ftoaTest{ -1, 'f', 5, "-1.00000" },
+	ftoaTest{ -1, 'g', 5, "-1" },
+	ftoaTest{ -1, 'g', -1, "-1" },
 
-	FtoaTest{ 12, 'e', 5, "1.20000e+01" },
-	FtoaTest{ 12, 'f', 5, "12.00000" },
-	FtoaTest{ 12, 'g', 5, "12" },
-	FtoaTest{ 12, 'g', -1, "12" },
+	ftoaTest{ 12, 'e', 5, "1.20000e+01" },
+	ftoaTest{ 12, 'f', 5, "12.00000" },
+	ftoaTest{ 12, 'g', 5, "12" },
+	ftoaTest{ 12, 'g', -1, "12" },
 
-	FtoaTest{ 123456700, 'e', 5, "1.23457e+08" },
-	FtoaTest{ 123456700, 'f', 5, "123456700.00000" },
-	FtoaTest{ 123456700, 'g', 5, "1.2346e+08" },
-	FtoaTest{ 123456700, 'g', -1, "1.234567e+08" },
+	ftoaTest{ 123456700, 'e', 5, "1.23457e+08" },
+	ftoaTest{ 123456700, 'f', 5, "123456700.00000" },
+	ftoaTest{ 123456700, 'g', 5, "1.2346e+08" },
+	ftoaTest{ 123456700, 'g', -1, "1.234567e+08" },
 
-	FtoaTest{ 1.2345e6, 'e', 5, "1.23450e+06" },
-	FtoaTest{ 1.2345e6, 'f', 5, "1234500.00000" },
-	FtoaTest{ 1.2345e6, 'g', 5, "1.2345e+06" },
+	ftoaTest{ 1.2345e6, 'e', 5, "1.23450e+06" },
+	ftoaTest{ 1.2345e6, 'f', 5, "1234500.00000" },
+	ftoaTest{ 1.2345e6, 'g', 5, "1.2345e+06" },
 
-	FtoaTest{ 1e23, 'e', 17, "9.99999999999999916e+22" },
-	FtoaTest{ 1e23, 'f', 17, "99999999999999991611392.00000000000000000" },
-	FtoaTest{ 1e23, 'g', 17, "9.9999999999999992e+22" },
+	ftoaTest{ 1e23, 'e', 17, "9.99999999999999916e+22" },
+	ftoaTest{ 1e23, 'f', 17, "99999999999999991611392.00000000000000000" },
+	ftoaTest{ 1e23, 'g', 17, "9.9999999999999992e+22" },
 
-	FtoaTest{ 1e23, 'e', -1, "1e+23" },
-	FtoaTest{ 1e23, 'f', -1, "100000000000000000000000" },
-	FtoaTest{ 1e23, 'g', -1, "1e+23" },
+	ftoaTest{ 1e23, 'e', -1, "1e+23" },
+	ftoaTest{ 1e23, 'f', -1, "100000000000000000000000" },
+	ftoaTest{ 1e23, 'g', -1, "1e+23" },
 
-	FtoaTest{ Below1e23, 'e', 17, "9.99999999999999748e+22" },
-	FtoaTest{ Below1e23, 'f', 17, "99999999999999974834176.00000000000000000" },
-	FtoaTest{ Below1e23, 'g', 17, "9.9999999999999975e+22" },
+	ftoaTest{ below1e23, 'e', 17, "9.99999999999999748e+22" },
+	ftoaTest{ below1e23, 'f', 17, "99999999999999974834176.00000000000000000" },
+	ftoaTest{ below1e23, 'g', 17, "9.9999999999999975e+22" },
 
-	FtoaTest{ Below1e23, 'e', -1, "9.999999999999997e+22" },
-	FtoaTest{ Below1e23, 'f', -1, "99999999999999970000000" },
-	FtoaTest{ Below1e23, 'g', -1, "9.999999999999997e+22" },
+	ftoaTest{ below1e23, 'e', -1, "9.999999999999997e+22" },
+	ftoaTest{ below1e23, 'f', -1, "99999999999999970000000" },
+	ftoaTest{ below1e23, 'g', -1, "9.999999999999997e+22" },
 
-	FtoaTest{ Above1e23, 'e', 17, "1.00000000000000008e+23" },
-	FtoaTest{ Above1e23, 'f', 17, "100000000000000008388608.00000000000000000" },
-	FtoaTest{ Above1e23, 'g', 17, "1.0000000000000001e+23" },
+	ftoaTest{ above1e23, 'e', 17, "1.00000000000000008e+23" },
+	ftoaTest{ above1e23, 'f', 17, "100000000000000008388608.00000000000000000" },
+	ftoaTest{ above1e23, 'g', 17, "1.0000000000000001e+23" },
 
-	FtoaTest{ Above1e23, 'e', -1, "1.0000000000000001e+23" },
-	FtoaTest{ Above1e23, 'f', -1, "100000000000000010000000" },
-	FtoaTest{ Above1e23, 'g', -1, "1.0000000000000001e+23" },
+	ftoaTest{ above1e23, 'e', -1, "1.0000000000000001e+23" },
+	ftoaTest{ above1e23, 'f', -1, "100000000000000010000000" },
+	ftoaTest{ above1e23, 'g', -1, "1.0000000000000001e+23" },
 
-	FtoaTest{ fdiv(5e-304, 1e20), 'g', -1, "5e-324" },
-	FtoaTest{ fdiv(-5e-304, 1e20), 'g', -1, "-5e-324" },
+	ftoaTest{ fdiv(5e-304, 1e20), 'g', -1, "5e-324" },
+	ftoaTest{ fdiv(-5e-304, 1e20), 'g', -1, "-5e-324" },
 
-	FtoaTest{ 32, 'g', -1, "32" },
-	FtoaTest{ 32, 'g', 0, "3e+01" },
+	ftoaTest{ 32, 'g', -1, "32" },
+	ftoaTest{ 32, 'g', 0, "3e+01" },
 
-	FtoaTest{ 100, 'x', -1, "%x" },
+	ftoaTest{ 100, 'x', -1, "%x" },
 
-	FtoaTest{ sys.NaN(), 'g', -1, "NaN" },
-	FtoaTest{ -sys.NaN(), 'g', -1, "NaN" },
-	FtoaTest{ sys.Inf(0), 'g', -1, "+Inf" },
-	FtoaTest{ sys.Inf(-1), 'g', -1,  "-Inf" },
-	FtoaTest{ -sys.Inf(0), 'g', -1, "-Inf" },
+	ftoaTest{ sys.NaN(), 'g', -1, "NaN" },
+	ftoaTest{ -sys.NaN(), 'g', -1, "NaN" },
+	ftoaTest{ sys.Inf(0), 'g', -1, "+Inf" },
+	ftoaTest{ sys.Inf(-1), 'g', -1,  "-Inf" },
+	ftoaTest{ -sys.Inf(0), 'g', -1, "-Inf" },
 
-	FtoaTest{ -1, 'b', -1, "-4503599627370496p-52" },
+	ftoaTest{ -1, 'b', -1, "-4503599627370496p-52" },
 }
 
 export func TestFtoa(t *testing.T) {
@@ -104,12 +104,12 @@
 	}
 	for i := 0; i < len(ftoatests); i++ {
 		test := &ftoatests[i];
-		s := strconv.ftoa64(test.f, test.fmt, test.prec);
+		s := strconv.Ftoa64(test.f, test.fmt, test.prec);
 		if s != test.s {
 			t.Error("test", test.f, string(test.fmt), test.prec, "want", test.s, "got", s);
 		}
 		if float64(float32(test.f)) == test.f && test.fmt != 'b' {
-			s := strconv.ftoa32(float32(test.f), test.fmt, test.prec);
+			s := strconv.Ftoa32(float32(test.f), test.fmt, test.prec);
 			if s != test.s {
 				t.Error("test32", test.f, string(test.fmt), test.prec, "want", test.s, "got", s);
 			}
diff --git a/src/lib/strconv/itoa.go b/src/lib/strconv/itoa.go
index 698c553..256289a 100644
--- a/src/lib/strconv/itoa.go
+++ b/src/lib/strconv/itoa.go
@@ -4,7 +4,7 @@
 
 package strconv
 
-export func itoa64(i int64) string {
+export func Itoa64(i int64) string {
 	if i == 0 {
 		return "0"
 	}
@@ -29,10 +29,9 @@
 	}
 
 	return string(b[bp:len(b)])
-	//return string((&b)[bp:len(b)])
 }
 
-export func itoa(i int) string {
-	return itoa64(int64(i));
+export func Itoa(i int) string {
+	return Itoa64(int64(i));
 }
 
diff --git a/src/lib/strconv/itoa_test.go b/src/lib/strconv/itoa_test.go
index 880aff4..b0e4ed7 100644
--- a/src/lib/strconv/itoa_test.go
+++ b/src/lib/strconv/itoa_test.go
@@ -11,47 +11,47 @@
 	"testing";
 )
 
-type Itoa64Test struct {
+type itoa64Test struct {
 	in int64;
 	out string;
 }
 
-var itoa64tests = []Itoa64Test {
-	Itoa64Test{ 0, "0" },
-	Itoa64Test{ 1, "1" },
-	Itoa64Test{ -1, "-1" },
-	Itoa64Test{ 12345678, "12345678" },
-	Itoa64Test{ -987654321, "-987654321" },
-	Itoa64Test{ 1<<31-1, "2147483647" },
-	Itoa64Test{ -1<<31+1, "-2147483647" },
-	Itoa64Test{ 1<<31, "2147483648" },
-	Itoa64Test{ -1<<31, "-2147483648" },
-	Itoa64Test{ 1<<31+1, "2147483649" },
-	Itoa64Test{ -1<<31-1, "-2147483649" },
-	Itoa64Test{ 1<<32-1, "4294967295" },
-	Itoa64Test{ -1<<32+1, "-4294967295" },
-	Itoa64Test{ 1<<32, "4294967296" },
-	Itoa64Test{ -1<<32, "-4294967296" },
-	Itoa64Test{ 1<<32+1, "4294967297" },
-	Itoa64Test{ -1<<32-1, "-4294967297" },
-	Itoa64Test{ 1<<50, "1125899906842624" },
-	Itoa64Test{ 1<<63-1, "9223372036854775807" },
-	Itoa64Test{ -1<<63+1, "-9223372036854775807" },
-	Itoa64Test{ -1<<63, "-9223372036854775808" },
+var itoa64tests = []itoa64Test {
+	itoa64Test{ 0, "0" },
+	itoa64Test{ 1, "1" },
+	itoa64Test{ -1, "-1" },
+	itoa64Test{ 12345678, "12345678" },
+	itoa64Test{ -987654321, "-987654321" },
+	itoa64Test{ 1<<31-1, "2147483647" },
+	itoa64Test{ -1<<31+1, "-2147483647" },
+	itoa64Test{ 1<<31, "2147483648" },
+	itoa64Test{ -1<<31, "-2147483648" },
+	itoa64Test{ 1<<31+1, "2147483649" },
+	itoa64Test{ -1<<31-1, "-2147483649" },
+	itoa64Test{ 1<<32-1, "4294967295" },
+	itoa64Test{ -1<<32+1, "-4294967295" },
+	itoa64Test{ 1<<32, "4294967296" },
+	itoa64Test{ -1<<32, "-4294967296" },
+	itoa64Test{ 1<<32+1, "4294967297" },
+	itoa64Test{ -1<<32-1, "-4294967297" },
+	itoa64Test{ 1<<50, "1125899906842624" },
+	itoa64Test{ 1<<63-1, "9223372036854775807" },
+	itoa64Test{ -1<<63+1, "-9223372036854775807" },
+	itoa64Test{ -1<<63, "-9223372036854775808" },
 }
 
 export func TestItoa(t *testing.T) {
 	for i := 0; i < len(itoa64tests); i++ {
 		test := itoa64tests[i];
-		s := strconv.itoa64(test.in);
+		s := strconv.Itoa64(test.in);
 		if s != test.out {
-			t.Error("strconv.itoa64(%v) = %v want %v\n",
+			t.Error("strconv.Itoa64(%v) = %v want %v\n",
 				test.in, s, test.out);
 		}
 		if int64(int(test.in)) == test.in {
-			s := strconv.itoa(int(test.in));
+			s := strconv.Itoa(int(test.in));
 			if s != test.out {
-				t.Error("strconv.itoa(%v) = %v want %v\n",
+				t.Error("strconv.Itoa(%v) = %v want %v\n",
 					test.in, s, test.out);
 			}
 		}
@@ -59,17 +59,17 @@
 }
 
 // TODO: Use once there is a strconv.uitoa
-type Uitoa64Test struct {
+type uitoa64Test struct {
 	in uint64;
 	out string;
 }
 
 // TODO: should be able to call this atoui64tests.
-var uitoa64tests = []Uitoa64Test {
-	Uitoa64Test{ 1<<63-1, "9223372036854775807" },
-	Uitoa64Test{ 1<<63, "9223372036854775808" },
-	Uitoa64Test{ 1<<63+1, "9223372036854775809" },
-	Uitoa64Test{ 1<<64-2, "18446744073709551614" },
-	Uitoa64Test{ 1<<64-1, "18446744073709551615" },
+var uitoa64tests = []uitoa64Test {
+	uitoa64Test{ 1<<63-1, "9223372036854775807" },
+	uitoa64Test{ 1<<63, "9223372036854775808" },
+	uitoa64Test{ 1<<63+1, "9223372036854775809" },
+	uitoa64Test{ 1<<64-2, "18446744073709551614" },
+	uitoa64Test{ 1<<64-1, "18446744073709551615" },
 }
 
diff --git a/src/lib/strconv/quote_test.go b/src/lib/strconv/quote_test.go
index a5df94b..ac2c8e7 100644
--- a/src/lib/strconv/quote_test.go
+++ b/src/lib/strconv/quote_test.go
@@ -9,18 +9,18 @@
 	"testing";
 )
 
-type QuoteTest struct {
+type quoteTest struct {
 	in string;
 	out string;
 }
 
-var quotetests = []QuoteTest {
-	QuoteTest{ "\a\b\f\r\n\t\v", `"\a\b\f\r\n\t\v"` },
-	QuoteTest{ "\\", `"\\"` },
-	QuoteTest{ "abc\xffdef", `"abc\xffdef"` },
-	QuoteTest{ "\u263a", `"\u263a"` },
-	QuoteTest{ "\U0010ffff", `"\U0010ffff"` },
-	QuoteTest{ "\x04", `"\x04"` },
+var quotetests = []quoteTest {
+	quoteTest{ "\a\b\f\r\n\t\v", `"\a\b\f\r\n\t\v"` },
+	quoteTest{ "\\", `"\\"` },
+	quoteTest{ "abc\xffdef", `"abc\xffdef"` },
+	quoteTest{ "\u263a", `"\u263a"` },
+	quoteTest{ "\U0010ffff", `"\U0010ffff"` },
+	quoteTest{ "\x04", `"\x04"` },
 }
 
 export func TestQuote(t *testing.T) {
@@ -32,50 +32,50 @@
 	}
 }
 
-type CanBackquoteTest struct {
+type canBackquoteTest struct {
 	in string;
 	out bool;
 }
 
-var canbackquotetests = []CanBackquoteTest {
-	CanBackquoteTest{ "`", false },
-	CanBackquoteTest{ string(0), false },
-	CanBackquoteTest{ string(1), false },
-	CanBackquoteTest{ string(2), false },
-	CanBackquoteTest{ string(3), false },
-	CanBackquoteTest{ string(4), false },
-	CanBackquoteTest{ string(5), false },
-	CanBackquoteTest{ string(6), false },
-	CanBackquoteTest{ string(7), false },
-	CanBackquoteTest{ string(8), false },
-	CanBackquoteTest{ string(9), false },
-	CanBackquoteTest{ string(10), false },
-	CanBackquoteTest{ string(11), false },
-	CanBackquoteTest{ string(12), false },
-	CanBackquoteTest{ string(13), false },
-	CanBackquoteTest{ string(14), false },
-	CanBackquoteTest{ string(15), false },
-	CanBackquoteTest{ string(16), false },
-	CanBackquoteTest{ string(17), false },
-	CanBackquoteTest{ string(18), false },
-	CanBackquoteTest{ string(19), false },
-	CanBackquoteTest{ string(20), false },
-	CanBackquoteTest{ string(21), false },
-	CanBackquoteTest{ string(22), false },
-	CanBackquoteTest{ string(23), false },
-	CanBackquoteTest{ string(24), false },
-	CanBackquoteTest{ string(25), false },
-	CanBackquoteTest{ string(26), false },
-	CanBackquoteTest{ string(27), false },
-	CanBackquoteTest{ string(28), false },
-	CanBackquoteTest{ string(29), false },
-	CanBackquoteTest{ string(30), false },
-	CanBackquoteTest{ string(31), false },
-	CanBackquoteTest{ `' !"#$%&'()*+,-./:;<=>?@[\]^_{|}~`, true },
-	CanBackquoteTest{ `0123456789`, true },
-	CanBackquoteTest{ `ABCDEFGHIJKLMNOPQRSTUVWXYZ`, true },
-	CanBackquoteTest{ `abcdefghijklmnopqrstuvwxyz`, true },
-	CanBackquoteTest{ `☺`, true },
+var canbackquotetests = []canBackquoteTest {
+	canBackquoteTest{ "`", false },
+	canBackquoteTest{ string(0), false },
+	canBackquoteTest{ string(1), false },
+	canBackquoteTest{ string(2), false },
+	canBackquoteTest{ string(3), false },
+	canBackquoteTest{ string(4), false },
+	canBackquoteTest{ string(5), false },
+	canBackquoteTest{ string(6), false },
+	canBackquoteTest{ string(7), false },
+	canBackquoteTest{ string(8), false },
+	canBackquoteTest{ string(9), false },
+	canBackquoteTest{ string(10), false },
+	canBackquoteTest{ string(11), false },
+	canBackquoteTest{ string(12), false },
+	canBackquoteTest{ string(13), false },
+	canBackquoteTest{ string(14), false },
+	canBackquoteTest{ string(15), false },
+	canBackquoteTest{ string(16), false },
+	canBackquoteTest{ string(17), false },
+	canBackquoteTest{ string(18), false },
+	canBackquoteTest{ string(19), false },
+	canBackquoteTest{ string(20), false },
+	canBackquoteTest{ string(21), false },
+	canBackquoteTest{ string(22), false },
+	canBackquoteTest{ string(23), false },
+	canBackquoteTest{ string(24), false },
+	canBackquoteTest{ string(25), false },
+	canBackquoteTest{ string(26), false },
+	canBackquoteTest{ string(27), false },
+	canBackquoteTest{ string(28), false },
+	canBackquoteTest{ string(29), false },
+	canBackquoteTest{ string(30), false },
+	canBackquoteTest{ string(31), false },
+	canBackquoteTest{ `' !"#$%&'()*+,-./:;<=>?@[\]^_{|}~`, true },
+	canBackquoteTest{ `0123456789`, true },
+	canBackquoteTest{ `ABCDEFGHIJKLMNOPQRSTUVWXYZ`, true },
+	canBackquoteTest{ `abcdefghijklmnopqrstuvwxyz`, true },
+	canBackquoteTest{ `☺`, true },
 }
 
 export func TestCanBackquote(t *testing.T) {