aListUnion :: Eq k => [(k,a)] -> [(k,a)] -> [(k,a)]
aListUnion = \case
  []         -> id
  (k,a) : as -> aListInsert k a . aListUnion as
aListUnion :: Eq k => [(k,a)] -> [(k,a)] -> [(k,a)]
aListUnion = \case
  []         -> id
  (k,a) : as -> aListInsert k a . aListUnion as
aListUnion = \case
  []         -> id
  (k,a) : as -> aListInsert k a . aListUnion as