fix binding clashes, pattern overlaps, and missing patterns according to -Wall
hlint suggestions