give this precedence code a stab more, this time taking more properly associativity into account
update line count
update cabal file