Renaming Queue's functions
WIP: need to find a way to do infinite list inside a monad