глянь как в го реализованы io.Reader ReadWriter ReadCloser и прочие
но самое главное как потом написаны функции которые принимают на вход ридер. они чаще всего принимают просто io.Reader но уже внутри проверяют реализует ли он ReadCloser например
https://golang.org/src/io/io.go#L404 в твоем случае так же должно было быть - есть базовый интерфейс для ноды. и есть интерфейсы для унарных бинарный операций.