ruby lambda proc tools for functional programming and arrows