         }
     }
     subscript(range: Range<String.CharacterView.Index>) -> String {
-        get { return String(self.characters[range]) }
-        set {
-            var chars = self.characters
-            chars.replaceSubrange(range, with: newValue.characters)
-            self = String(chars)
-        }
+        @warn_unused_result get { return String(self.characters[range]) }
+        set { self.characters.replaceSubrange(range, with: newValue.characters) }
     }
     
     func getIndex(_ v: Int) -> Index {

        return i
    }
    
    func getIndexRange(_ r: Range<Int>) -> Range<Index> {
        let start = getIndex(r.lowerBound)
        var end = start
        for _ in 0..<r.count-1 { end = index(after: end) }
        return start..<end
    }
    
    
    subscript(index: Int) -> Character {
        get {
            let index = getIndex(index)
            return self.characters[index]
        }
        set {
            let index = getIndex(index)
            var chars = self.characters
            chars.remove(at: index)
            chars.insert(newValue, at: index)
            self = String(chars)
            
        }
    }
    
    subscript(range: Range<Int>) -> String {
        get {
            let range = getIndexRange(range)
            return String(self.characters[range])
        }
        set {
            let range = getIndexRange(range)
            var chars = self.characters
            chars.replaceSubrange(range, with: newValue.characters)
            self = String(chars)
        }
    }

}

    return res
}

/*
 implementation of the *= operator on String and UInt to concatonate a String to itself multiple times and directly assigning it to the String
 
 - parameter right : UInt - how many times (-1) the string should be concatonated to itself
 
 - parameter left : String - the string to concatonate to itself, will be assigned to this variable (inout ;-) )
 
 - return String - the concatonated string
 
 */

func *= ( left: inout String, right: UInt) -> String {
    if right == 0 {
