Of course, that should be:

class Foo
   MAX = 14
   typed_attr(Integer, nil, :foo) {|v| v <= MAX }
   array_attr(Range, :bar) {|v| v.end+(v.exclude_end? ? 0 : 1) < MAX }
end

Can't use a block without parenthesizing the params...