Added cause interface trait
diff --git a/errors.go b/errors.go
index 1c3c713..06e6f7e 100644
--- a/errors.go
+++ b/errors.go
@@ -33,3 +33,12 @@
 	}
 	return err
 }
+
+// cause implements the interface required by Cause.
+type cause struct {
+	err error
+}
+
+func (c *cause) Cause() error {
+	return c.err
+}
diff --git a/errors_test.go b/errors_test.go
index 86a53a5..b88e016 100644
--- a/errors_test.go
+++ b/errors_test.go
@@ -38,11 +38,10 @@
 func (nilError) Error() string { return "nil error" }
 
 type causeError struct {
-	err error
+	cause
 }
 
 func (e *causeError) Error() string { return "cause error" }
-func (e *causeError) Cause() error  { return e.err }
 
 func TestCause(t *testing.T) {
 	tests := []struct {
@@ -66,7 +65,7 @@
 		want: io.EOF,
 	}, {
 		// caused error returns cause
-		err:  &causeError{err: io.EOF},
+		err:  &causeError{cause{err: io.EOF}},
 		want: io.EOF,
 	}}