declarative function composition inspired by prismatics graph library