#compdef zle

local expl

if [[ "$words[2]" = -N && CURRENT -eq 3 ]]; then
  _wanted -C -N functions expl 'widget shell function' &&
      compadd "$expl[@]" "$@" - "${(k@)functions}" && ret=0
else
  _wanted widgets expl widget && compadd "$expl[@]" - "${(@k)widgets}"
fi
