lists -- unit type defining features related to list but not requiring aninstance
monoid of lists with infix concatentation operation.
create an empty list
fmap lifts a function from A to B to a function from list<A> to list<B>