super rough cljs port of go macro