#autoload
# option: -p - needs a `_' prefix
local us
local -a disp list expl
list=( complete approximate correct match expand list menu oldlist
ignored prefix history )
zparseopts -D -K -E 'p=us'
[[ -n "$us" ]] && us='_'
zstyle -t ":completion:${curcontext}:completers" prefix-hidden &&
disp=(-d list)
_wanted completers expl 'completer' \
compadd "$@" "$disp[@]" - "$us${^list[@]}"