Ducks and monads: wonders of Ruby types

Software Design