Use this when you are writing your own contract classes. Allows your
contract to be called with [] instead of .new:
Old: Or.new(param1, param2)
New: Or[param1, param2]
Of course, .new still works.
# File lib/contracts/builtin_contracts.rb, line 89 def self.[](*vals) new(*vals) end