   isupper: ->
     lowers = 'abcdefghijklmnopqrstuvwxyz'
     uppers = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-    if @__len__() == 0
+    if @__len__().value == 0
       return false
     else
       containsUpper = false

  rstrip: -> return
  split: -> return
  splitlines: -> return
  startswith: (prefix, start = 0, end = @__len__()) ->
    return @value.slice(start, end).indexOf(prefix) == 0

  strip: -> return

    index = @value.indexOf(sub)
    withinBounds = start <= index < end
    if withinBounds
      return new Int index
    else
      return new Int -1

  format: -> return
  
  index: (sub, start = 0, end = @__len__().value) ->
    substr = @value.slice(start, end)
    index = substr.indexOf(sub)
    if index is -1
      raise new ValueError "substring not found"
    else
      return new Int index

  isalnum: ->
    alnums = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
    if @__len__().value is 0
      return false
    else
      for c in @value
