Serious of interesting types and functions for operating on trees and lists