added Traverse trait with implementations of Option, List and Tree