def check(obj)
      if name == 'Boolean'
        obj == true || obj == false
      else
        obj.kind_of? constant
      end
    end
def check(obj)
      if name == 'Boolean'
        obj == true || obj == false
      else
        obj.kind_of? constant
      end
    end
Type checks a given object. Special consideration is given to
 the pseudo-class `Boolean`, which does not actually exist in Ruby,
 but is commonly used to mean `TrueClass, FalseClass`.

 @param (see Type#check)
 @return [Boolean] `true` if `obj.kind_of?(constant)`.