Building a Rete algorithm based Rule Engine in Golang