 /// - parameter end: any integer to indicate the end of the range
 /// - parameter total: maximum available length
 /// - returns: (start, end), the safe range indicators
-
 func normalize(start: Int?, end: Int?, total: Int) -> (Int, Int) {
     var actualStart = start == nil ? 0 : start!
     var actualEnd = end == nil ? total : end!

}

public extension String {
    public subscript(start:Int?, end:Int?) -> String {
        let (safeStart, safeEnd) = normalize(start, end: end, total: self.characters.count)


}

public extension ArraySlice {
    /// - parameter start: any integer or `nil` to indicate the beginning of the range
    /// - parameter end: any integer or `nil` to indicate the end of the range
    /// - returns: an ArraySlice with content as specified by the input
    public subscript(start:Int?, end: Int?) -> ArraySlice<Element> {
        let (safeStart, safeEnd) = normalize(start, end: end, total: self.count)
        return self[Range<Int>(start: safeStart, end: safeEnd)]
