A nicer replacement for Ruby's Struct and OpenStruct.