Library vs Language: Two Approaches to Functional Programming in Go