Changed Product and Sum type to be always non-empty lists.