package dbr

import (
	"fmt"
)

type EventReceiver interface {
	Event(eventName string)
	EventKv(eventName string, kvs map[string]string)
}

type TimingReceiver interface {
	Timing(eventName string, nanoseconds int64)
	TimingKv(eventName string, nanoseconds int64, kvs map[string]string)
}

func DoSomething(s EventReceiver) {
	fmt.Println("Doing it.", s)
	
	s.Event("sup")
}
package main

import (
	"fmt"
	"dbr"
)
--- 
+++ 
@@ -1,6 +1,21 @@
-package main
+package dbr
 
 import (
 	"fmt"
-	"dbr"
 )
+
+type EventReceiver interface {
+	Event(eventName string)
+	EventKv(eventName string, kvs map[string]string)
+}
+
+type TimingReceiver interface {
+	Timing(eventName string, nanoseconds int64)
+	TimingKv(eventName string, nanoseconds int64, kvs map[string]string)
+}
+
+func DoSomething(s EventReceiver) {
+	fmt.Println("Doing it.", s)
+	
+	s.Event("sup")
+}
Fix k/v cascade. Make interfaces so that other libraries can loosely depend on health without an explicit dependency.
