       return @vlen
     else
       if @v?
-        return if dvl.typeOf(@v) == 'array' then @v.length else Infinity
+        return if dvl.typeOf(@v) is 'array' then @v.length else Infinity
       else
         return 0
 

      return @vgen
    else
      that = this
      if dvl.typeOf(@v) == 'array'
        return ((i) -> that.value[i])
      else
        return (-> that.value)


    updateHash = ->
      h = obj.value()
      window.location.hash = h unless window.location.hash is h

    dvl.register({fn:updateHash, listen:[obj], name:'hash_changer'})
    return
