 
 // MARK: Debug
 
-extension SwiftQueue: Printable {
+extension SwiftQueue: CustomStringConvertible {
     var description: String {
         return storage.description
     }


// MARK: Debug

extension SwiftDequeue: Printable {
    var description: String {
        return storage.description
    }


struct SwiftQueue <T: Equatable> {
    typealias ElementType = T

    private var storage = [ElementType]()

    // MARK: Queryng the Queue
    var count: Int {
        return storage.count
    }

    var isEmpty: Bool {
        return storage.isEmpty
    }

    func front() -> ElementType? {
        return storage.first
    }

    func back() -> ElementType? {
        return storage.last
    }

    func findElement(element: ElementType) -> Int? {
        return storage.indexOf(element)
    }

    // MARK: Adding and Removing Elements

    mutating func pushBack(element: ElementType) {
        storage.append(element)
    }

    mutating func popFront() -> ElementType? {
        guard let _ = storage.first else {
            return nil
        }
        return storage.removeAtIndex(0)
    }

    mutating func clear() {
        storage.removeAll()
    }
