{ ... }: {
	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/\/$//"
		}
	'';
}