Composite Types for Ruby