Swappable data structures are generalized to accept any interface type. Please see main function for examples