Assign5.DoubleListDequeueval empty : 'a tAn empty dequeue.
push_front x q is the dequeue gotten by prepending x to the front of q.
pop_front q is
Some (x, r) where x is the first element of q and r is the remaining element of q;None if q is empty.push_back x q is the dequeue gotten by appending x to the back of q.
pop_back q is
Some (x, r) where x is the last element of q and r is the remaining element of q;None if q is empty.val to_list : 'a t -> 'a listConverts a dequeue into a list with the same elements (in the same order).