{ ... }:
{
  text = ''
    # Unset possible system-defined aliases.
    unalias l ll lll llll la lla &> /dev/null
    unset l ll lll llll la lla &> /dev/null

    # List files in dirs.
    # Current dir by default.
    # Usage: l [DIRS]
    function l() {
      # ls -lhv --si --group-directories-first --color=auto -- "$@"
      ccd "$@"
    }

    # List last modified files first.
    # Current dir by default.
    # Usage: ll [DIRS]
    function ll() {
      ls -lhv --si --group-directories-first --color=auto -- "$@"
      # ls -lhvtr --si --color=auto -- "$@"
    }

    # List files in tree structure.
    # Current dir by default.
    # Depth can be omitted by passing `-` (dash).
    # Usage: lll [DEPTH] [DIRS]
    function lll() {
      local IFS=$'\n'
      local depth="''${1}"
      local target=("''${@:2}")

      [[ "''${target}" = "" ]] && target="."
      [[ "''${depth}" = "" ]] && depth=666
      [[ "''${depth}" = "-" ]] && depth=666

      tree -a -L "''${depth}" -- "''${target[@]}"
    }

    # List files recursively.
    # Current dir by default.
    # Usage: llll [DIRS]
    function llll() {
      ls -RlAhv --si --group-directories-first --color=auto -- "$@"
    }

    # List all files in dirs, incl. hidden files.
    # Current dir by default.
    # Usage: la [DIRS]
    function la() {
      ls -lAh --si --group-directories-first --color=auto -- "$@"
    }

    # List all files in dirs, incl. hidden files, sorted by mtime.
    # Current dir by default.
    # Usage: lla [DIRS]
    function lla() {
      ls -lAhtr --si --color=auto -- "$@"
    }

    # List only files.
    function _ls_file() {
      ls --classify | grep -v \/$
    }

    # List only dirs.
    function _ls_dir() {
      ls --classify | grep \/$ | sed -e "s/\/$//"
    }
  '';
}