title: SOLID for functional programming
body: <p>Coming from an OOP language, I am familiar with the SOLID principles of object oriented design.  It seems like some of these would fit into a functional programming model, while other parts make no sense in a world lacking state.  Is there a similar set of principles for refactoring functional code?</p>