Autocompletion from Elixir:
# Of course this has all the limitations that tab-completion in IEx has.
expression = Enum.reverse 'IO.'
IEx.Autocomplete.expand expression
#=> {:yes, [],
#=> ['binread/2', 'binstream/2', 'binwrite/2', 'chardata_to_string/1', 'getn/3',
#=> 'getn/2', 'gets/2', 'inspect/3', 'inspect/2', 'iodata_length/1',
#=> 'iodata_to_binary/1', 'puts/2', 'read/2', 'stream/2', 'write/2', 'ANSI']}