Implementation of various join implementations in (an attempt at) idiomatic Go