Functional Data Structures for Erlang Finger Tree - backed catenable queues (faster than Erlang queue) Priority Queues - don't exist in erlang, but can be implemented with sets Arraylists (Lists with O(1) concatenation and O(log(n)) update)