## A monadic reasoning around function composition in Golang

Introduction Function composition is something we as developers do every day, more or less. This concept come from Mathematics: if you search on Wikipedia, you find out that function composition is an operation that takes two functions $$f$$ and $$g$$ and produces a function $$h$$ such that $$h(x) = g(f(x))$$. In this operation, the function $$g$$ is applied to the result of applying the function $$f$$ to the input $$x$$. That is, the functions $$f: X \rightarrow Y$$ and $$g: Y \rightarrow Z$$ are composed to yield a function that maps $$x$$ in $$X$$ to $$g(f(x))$$ in $$Z$$....