Rules for building ELIs made explicit via multimethods