Try to make your API free of mutable state
Provides vocabulary in conversations/api specs
Precise definition save you from rediscovering the wheel (a complicated wheel)
Applicative functors!
Modularity
Be careful with mutable state
Types
By bkase