Write more idiomatic definitions of assoc and assoc2

--HG--
extra : amend_source : 6b53bd830a99792bcf45220e7265a57a38d4d052
Write less-scary type signatures