# `Dune.Allowlist.Default`
[🔗](https://github.com/functional-rewire/dune/blob/v0.3.18/lib/dune/allowlist/default.ex#L1)

The default `Dune.Allowlist` module to be used to allow or restrict
functions and macros that can be safely executed.

## Examples

    iex> Dune.Allowlist.Default.fun_status(Kernel, :+, 2)
    :allowed

    iex> Dune.Allowlist.Default.fun_status(String, :to_atom, 1)
    :restricted

    iex> Dune.Allowlist.Default.fun_status(Atom, :to_string, 1)
    {:shimmed, Dune.Shims.Atom, :to_string}

    iex> Dune.Allowlist.Default.fun_status(Kernel, :foo, 1)
    :undefined_function

    iex> Dune.Allowlist.Default.fun_status(Bar, :foo, 1)
    :undefined_module

    iex> Dune.Allowlist.Default.fun_status(Kernel.SpecialForms, :quote, 2)
    :restricted

## Allowed modules / functions

- `Access`
  - **Allowed**: [`all`](`Access.all/0`), [`at`](`Access.at/1`), [`at!`](`Access.at!/1`), [`elem`](`Access.elem/1`), [`fetch`](`Access.fetch/2`), [`fetch!`](`Access.fetch!/2`), [`filter`](`Access.filter/1`), [`find`](`Access.find/1`), [`get`](`Access.get/2`), [`get_and_update`](`Access.get_and_update/3`), [`key`](`Access.key/1`), [`key!`](`Access.key!/1`), [`pop`](`Access.pop/2`), [`slice`](`Access.slice/1`), [`values`](`Access.values/0`)
- `Atom`
  - **Alernative implementation**: [`to_charlist`](`Atom.to_charlist/1`), [`to_string`](`Atom.to_string/1`)
  - **Restricted**: ~~`to_char_list`~~
- `Base`
  - **Allowed**: [`decode16`](`Base.decode16/1`), [`decode16!`](`Base.decode16!/1`), [`decode32`](`Base.decode32/1`), [`decode32!`](`Base.decode32!/1`), [`decode64`](`Base.decode64/1`), [`decode64!`](`Base.decode64!/1`), [`encode16`](`Base.encode16/1`), [`encode32`](`Base.encode32/1`), [`encode64`](`Base.encode64/1`), [`hex_decode32`](`Base.hex_decode32/1`), [`hex_decode32!`](`Base.hex_decode32!/1`), [`hex_encode32`](`Base.hex_encode32/1`), [`hex_valid32?`](`Base.hex_valid32?/1`), [`url_decode64`](`Base.url_decode64/1`), [`url_decode64!`](`Base.url_decode64!/1`), [`url_encode64`](`Base.url_encode64/1`), [`url_valid64?`](`Base.url_valid64?/1`), [`valid16?`](`Base.valid16?/1`), [`valid32?`](`Base.valid32?/1`), [`valid64?`](`Base.valid64?/1`)
- `Bitwise`
  - **Allowed**: [`&&&`](`Bitwise.&&&/2`), [`<<<`](`Bitwise.<<</2`), [`>>>`](`Bitwise.>>>/2`), `^^^`, `__using__`, [`band`](`Bitwise.band/2`), [`bnot`](`Bitwise.bnot/1`), [`bor`](`Bitwise.bor/2`), [`bsl`](`Bitwise.bsl/2`), [`bsr`](`Bitwise.bsr/2`), [`bxor`](`Bitwise.bxor/2`), [`|||`](`Bitwise.|||/2`), `~~~`
- `Calendar`
  - **Allowed**: [`compatible_calendars?`](`Calendar.compatible_calendars?/2`), [`get_time_zone_database`](`Calendar.get_time_zone_database/0`), [`strftime`](`Calendar.strftime/2`), [`truncate`](`Calendar.truncate/2`)
  - **Restricted**: [~~`put_time_zone_database`~~](`Calendar.put_time_zone_database/1`)
- `Calendar.ISO`
  - **Allowed**: `add_day_fraction_to_iso_days`, `date_from_iso_days`, [`date_to_iodata`](`Calendar.ISO.date_to_iodata/3`), `date_to_iso_days`, [`date_to_string`](`Calendar.ISO.date_to_string/3`), [`datetime_to_iodata`](`Calendar.ISO.datetime_to_iodata/11`), [`datetime_to_string`](`Calendar.ISO.datetime_to_string/11`), [`day_of_era`](`Calendar.ISO.day_of_era/3`), [`day_of_week`](`Calendar.ISO.day_of_week/3`), [`day_of_year`](`Calendar.ISO.day_of_year/3`), [`day_rollover_relative_to_midnight_utc`](`Calendar.ISO.day_rollover_relative_to_midnight_utc/0`), [`days_in_month`](`Calendar.ISO.days_in_month/2`), `from_unix`, `gregorian_seconds_to_iso_days`, [`iso_days_to_beginning_of_day`](`Calendar.ISO.iso_days_to_beginning_of_day/1`), `iso_days_to_day_of_week`, [`iso_days_to_end_of_day`](`Calendar.ISO.iso_days_to_end_of_day/1`), `iso_days_to_unit`, [`leap_year?`](`Calendar.ISO.leap_year?/1`), `microseconds_to_iodata`, [`months_in_year`](`Calendar.ISO.months_in_year/1`), [`naive_datetime_from_iso_days`](`Calendar.ISO.naive_datetime_from_iso_days/1`), [`naive_datetime_to_iodata`](`Calendar.ISO.naive_datetime_to_iodata/7`), [`naive_datetime_to_iso_days`](`Calendar.ISO.naive_datetime_to_iso_days/7`), [`naive_datetime_to_string`](`Calendar.ISO.naive_datetime_to_string/7`), `offset_to_iodata`, `offset_to_string`, [`parse_date`](`Calendar.ISO.parse_date/1`), [`parse_duration`](`Calendar.ISO.parse_duration/1`), [`parse_naive_datetime`](`Calendar.ISO.parse_naive_datetime/1`), [`parse_time`](`Calendar.ISO.parse_time/1`), [`parse_utc_datetime`](`Calendar.ISO.parse_utc_datetime/1`), [`quarter_of_year`](`Calendar.ISO.quarter_of_year/3`), [`shift_date`](`Calendar.ISO.shift_date/4`), `shift_days`, [`shift_naive_datetime`](`Calendar.ISO.shift_naive_datetime/8`), [`shift_time`](`Calendar.ISO.shift_time/5`), `shift_time_unit`, [`time_from_day_fraction`](`Calendar.ISO.time_from_day_fraction/1`), [`time_to_day_fraction`](`Calendar.ISO.time_to_day_fraction/4`), [`time_to_iodata`](`Calendar.ISO.time_to_iodata/4`), [`time_to_string`](`Calendar.ISO.time_to_string/4`), [`time_unit_to_precision`](`Calendar.ISO.time_unit_to_precision/1`), [`valid_date?`](`Calendar.ISO.valid_date?/3`), [`valid_time?`](`Calendar.ISO.valid_time?/4`), [`year_of_era`](`Calendar.ISO.year_of_era/1`)
- `Date`
  - **Allowed**: `__duration__!`, `__struct__`, [`add`](`Date.add/2`), [`after?`](`Date.after?/2`), [`before?`](`Date.before?/2`), [`beginning_of_month`](`Date.beginning_of_month/1`), [`beginning_of_week`](`Date.beginning_of_week/1`), [`compare`](`Date.compare/2`), [`convert`](`Date.convert/2`), [`convert!`](`Date.convert!/2`), [`day_of_era`](`Date.day_of_era/1`), [`day_of_week`](`Date.day_of_week/1`), [`day_of_year`](`Date.day_of_year/1`), [`days_in_month`](`Date.days_in_month/1`), [`diff`](`Date.diff/2`), [`end_of_month`](`Date.end_of_month/1`), [`end_of_week`](`Date.end_of_week/1`), [`from_erl`](`Date.from_erl/1`), [`from_erl!`](`Date.from_erl!/1`), [`from_gregorian_days`](`Date.from_gregorian_days/1`), [`from_iso8601`](`Date.from_iso8601/1`), [`from_iso8601!`](`Date.from_iso8601!/1`), [`leap_year?`](`Date.leap_year?/1`), [`months_in_year`](`Date.months_in_year/1`), [`new`](`Date.new/3`), [`new!`](`Date.new!/3`), [`quarter_of_year`](`Date.quarter_of_year/1`), [`range`](`Date.range/2`), [`shift`](`Date.shift/2`), [`to_erl`](`Date.to_erl/1`), [`to_gregorian_days`](`Date.to_gregorian_days/1`), [`to_iso8601`](`Date.to_iso8601/1`), `to_iso_days`, [`to_string`](`Date.to_string/1`), [`utc_today`](`Date.utc_today/0`), [`year_of_era`](`Date.year_of_era/1`)
- `DateTime`
  - **Allowed**: `__duration__!`, `__struct__`, [`add`](`DateTime.add/2`), [`after?`](`DateTime.after?/2`), [`before?`](`DateTime.before?/2`), [`compare`](`DateTime.compare/2`), [`convert`](`DateTime.convert/2`), [`convert!`](`DateTime.convert!/2`), [`diff`](`DateTime.diff/2`), [`from_gregorian_seconds`](`DateTime.from_gregorian_seconds/1`), [`from_iso8601`](`DateTime.from_iso8601/1`), [`from_naive`](`DateTime.from_naive/2`), [`from_naive!`](`DateTime.from_naive!/2`), [`from_unix`](`DateTime.from_unix/1`), [`from_unix!`](`DateTime.from_unix!/1`), [`new`](`DateTime.new/2`), [`new!`](`DateTime.new!/2`), [`now`](`DateTime.now/1`), [`now!`](`DateTime.now!/1`), [`shift`](`DateTime.shift/2`), [`shift_zone`](`DateTime.shift_zone/2`), [`shift_zone!`](`DateTime.shift_zone!/2`), [`to_date`](`DateTime.to_date/1`), [`to_gregorian_seconds`](`DateTime.to_gregorian_seconds/1`), [`to_iso8601`](`DateTime.to_iso8601/1`), [`to_naive`](`DateTime.to_naive/1`), [`to_string`](`DateTime.to_string/1`), [`to_time`](`DateTime.to_time/1`), [`to_unix`](`DateTime.to_unix/1`), [`truncate`](`DateTime.truncate/2`), [`utc_now`](`DateTime.utc_now/0`)
- `Duration`
  - **Allowed**: `__struct__`, [`add`](`Duration.add/2`), [`from_iso8601`](`Duration.from_iso8601/1`), [`from_iso8601!`](`Duration.from_iso8601!/1`), [`multiply`](`Duration.multiply/2`), [`negate`](`Duration.negate/1`), [`new!`](`Duration.new!/1`), [`subtract`](`Duration.subtract/2`), [`to_iso8601`](`Duration.to_iso8601/1`), [`to_string`](`Duration.to_string/1`)
- `Enum`
  - **Allowed**: `__in__`, [`all?`](`Enum.all?/1`), [`any?`](`Enum.any?/1`), [`at`](`Enum.at/2`), `chunk`, [`chunk_by`](`Enum.chunk_by/2`), [`chunk_every`](`Enum.chunk_every/2`), [`chunk_while`](`Enum.chunk_while/4`), [`concat`](`Enum.concat/1`), [`count`](`Enum.count/1`), [`count_until`](`Enum.count_until/2`), [`dedup`](`Enum.dedup/1`), [`dedup_by`](`Enum.dedup_by/2`), [`drop`](`Enum.drop/2`), [`drop_every`](`Enum.drop_every/2`), [`drop_while`](`Enum.drop_while/2`), [`each`](`Enum.each/2`), [`empty?`](`Enum.empty?/1`), [`fetch`](`Enum.fetch/2`), [`fetch!`](`Enum.fetch!/2`), [`filter`](`Enum.filter/2`), `filter_map`, [`find`](`Enum.find/2`), [`find_index`](`Enum.find_index/2`), [`find_value`](`Enum.find_value/2`), [`flat_map`](`Enum.flat_map/2`), [`flat_map_reduce`](`Enum.flat_map_reduce/3`), [`frequencies`](`Enum.frequencies/1`), [`frequencies_by`](`Enum.frequencies_by/2`), [`group_by`](`Enum.group_by/2`), [`intersperse`](`Enum.intersperse/2`), [`into`](`Enum.into/2`), [`map`](`Enum.map/2`), [`map_every`](`Enum.map_every/3`), [`map_intersperse`](`Enum.map_intersperse/3`), [`map_reduce`](`Enum.map_reduce/3`), [`max`](`Enum.max/1`), [`max_by`](`Enum.max_by/2`), [`member?`](`Enum.member?/2`), [`min`](`Enum.min/1`), [`min_by`](`Enum.min_by/2`), [`min_max`](`Enum.min_max/1`), [`min_max_by`](`Enum.min_max_by/2`), `partition`, [`product`](`Enum.product/1`), [`product_by`](`Enum.product_by/2`), [`random`](`Enum.random/1`), [`reduce`](`Enum.reduce/2`), [`reduce_while`](`Enum.reduce_while/3`), [`reject`](`Enum.reject/2`), [`reverse`](`Enum.reverse/1`), [`reverse_slice`](`Enum.reverse_slice/3`), [`scan`](`Enum.scan/2`), [`shuffle`](`Enum.shuffle/1`), [`slice`](`Enum.slice/2`), [`slide`](`Enum.slide/3`), [`sort`](`Enum.sort/1`), [`sort_by`](`Enum.sort_by/2`), [`split`](`Enum.split/2`), [`split_while`](`Enum.split_while/2`), [`split_with`](`Enum.split_with/2`), [`sum`](`Enum.sum/1`), [`sum_by`](`Enum.sum_by/2`), [`take`](`Enum.take/2`), [`take_every`](`Enum.take_every/2`), [`take_random`](`Enum.take_random/2`), [`take_while`](`Enum.take_while/2`), [`to_list`](`Enum.to_list/1`), [`uniq`](`Enum.uniq/1`), [`uniq_by`](`Enum.uniq_by/2`), [`unzip`](`Enum.unzip/1`), [`with_index`](`Enum.with_index/1`), [`zip`](`Enum.zip/1`), [`zip_reduce`](`Enum.zip_reduce/3`), [`zip_with`](`Enum.zip_with/2`)
  - **Alernative implementation**: [`join`](`Enum.join/1`), [`map_join`](`Enum.map_join/2`)
- `Float`
  - **Allowed**: [`ceil`](`Float.ceil/1`), [`floor`](`Float.floor/1`), [`max_finite`](`Float.max_finite/0`), [`min_finite`](`Float.min_finite/0`), [`parse`](`Float.parse/1`), [`pow`](`Float.pow/2`), [`ratio`](`Float.ratio/1`), [`round`](`Float.round/1`), `to_char_list`, [`to_charlist`](`Float.to_charlist/1`), [`to_string`](`Float.to_string/1`)
- `Function`
  - **Allowed**: [`identity`](`Function.identity/1`)
  - **Restricted**: [~~`capture`~~](`Function.capture/3`), [~~`info`~~](`Function.info/1`)
- `IO`
  - **Allowed**: [`iodata_empty?`](`IO.iodata_empty?/1`), [`iodata_length`](`IO.iodata_length/1`), [`iodata_to_binary`](`IO.iodata_to_binary/1`)
  - **Alernative implementation**: [`chardata_to_string`](`IO.chardata_to_string/1`), [`inspect`](`IO.inspect/1`), [`puts`](`IO.puts/1`)
  - **Restricted**: [~~`binread`~~](`IO.binread/1`), [~~`binstream`~~](`IO.binstream/0`), [~~`binwrite`~~](`IO.binwrite/1`), ~~`each_binstream`~~, ~~`each_stream`~~, [~~`getn`~~](`IO.getn/1`), [~~`gets`~~](`IO.gets/1`), [~~`read`~~](`IO.read/1`), [~~`stream`~~](`IO.stream/0`), [~~`warn`~~](`IO.warn/1`), ~~`warn_once`~~, [~~`write`~~](`IO.write/1`)
- `Integer`
  - **Allowed**: [`ceil_div`](`Integer.ceil_div/2`), [`digits`](`Integer.digits/1`), [`extended_gcd`](`Integer.extended_gcd/2`), [`floor_div`](`Integer.floor_div/2`), [`gcd`](`Integer.gcd/2`), `is_even`, `is_odd`, [`mod`](`Integer.mod/2`), [`parse`](`Integer.parse/1`), [`popcount`](`Integer.popcount/1`), [`pow`](`Integer.pow/2`), `to_char_list`, [`to_charlist`](`Integer.to_charlist/1`), [`to_string`](`Integer.to_string/1`), [`undigits`](`Integer.undigits/1`)
- `JSON`
  - **Allowed**: [`decode`](`JSON.decode/1`), [`decode!`](`JSON.decode!/1`)
  - **Alernative implementation**: [`encode!`](`JSON.encode!/1`), [`encode_to_iodata!`](`JSON.encode_to_iodata!/1`), [`protocol_encode`](`JSON.protocol_encode/2`)
- `Kernel`
  - **Allowed**: [`!`](`Kernel.!/1`), [`!=`](`Kernel.!=/2`), [`!==`](`Kernel.!==/2`), [`&&`](`Kernel.&&/2`), [`*`](`Kernel.*/2`), [`**`](`Kernel.**/2`), [`+`](`Kernel.+/1`), [`++`](`Kernel.++/2`), [`-`](`Kernel.-/1`), [`--`](`Kernel.--/2`), [`..`](`Kernel.../0`), [`..//`](`Kernel...///3`), [`/`](`Kernel.//2`), [`<`](`Kernel.</2`), [`<=`](`Kernel.<=/2`), [`<>`](`Kernel.<>/2`), [`==`](`Kernel.==/2`), [`===`](`Kernel.===/2`), [`=~`](`Kernel.=~/2`), [`>`](`Kernel.>/2`), [`>=`](`Kernel.>=/2`), [`abs`](`Kernel.abs/1`), [`and`](`Kernel.and/2`), [`binary_part`](`Kernel.binary_part/3`), [`bit_size`](`Kernel.bit_size/1`), [`byte_size`](`Kernel.byte_size/1`), [`ceil`](`Kernel.ceil/1`), [`div`](`Kernel.div/2`), [`elem`](`Kernel.elem/2`), [`floor`](`Kernel.floor/1`), [`get_and_update_in`](`Kernel.get_and_update_in/2`), [`get_in`](`Kernel.get_in/1`), [`hd`](`Kernel.hd/1`), [`if`](`Kernel.if/2`), [`in`](`Kernel.in/2`), [`is_atom`](`Kernel.is_atom/1`), [`is_binary`](`Kernel.is_binary/1`), [`is_bitstring`](`Kernel.is_bitstring/1`), [`is_boolean`](`Kernel.is_boolean/1`), [`is_exception`](`Kernel.is_exception/1`), [`is_float`](`Kernel.is_float/1`), [`is_function`](`Kernel.is_function/1`), [`is_integer`](`Kernel.is_integer/1`), [`is_list`](`Kernel.is_list/1`), [`is_map`](`Kernel.is_map/1`), [`is_map_key`](`Kernel.is_map_key/2`), [`is_nil`](`Kernel.is_nil/1`), [`is_non_struct_map`](`Kernel.is_non_struct_map/1`), [`is_number`](`Kernel.is_number/1`), [`is_reference`](`Kernel.is_reference/1`), [`is_struct`](`Kernel.is_struct/1`), [`is_tuple`](`Kernel.is_tuple/1`), [`length`](`Kernel.length/1`), [`make_ref`](`Kernel.make_ref/0`), [`map_size`](`Kernel.map_size/1`), [`match?`](`Kernel.match?/2`), [`max`](`Kernel.max/2`), [`min`](`Kernel.min/2`), [`not`](`Kernel.not/1`), [`or`](`Kernel.or/2`), [`pop_in`](`Kernel.pop_in/1`), [`put_elem`](`Kernel.put_elem/3`), [`put_in`](`Kernel.put_in/2`), [`raise`](`Kernel.raise/1`), [`rem`](`Kernel.rem/2`), [`round`](`Kernel.round/1`), [`self`](`Kernel.self/0`), [`sigil_C`](`Kernel.sigil_C/2`), [`sigil_D`](`Kernel.sigil_D/2`), [`sigil_N`](`Kernel.sigil_N/2`), [`sigil_R`](`Kernel.sigil_R/2`), [`sigil_S`](`Kernel.sigil_S/2`), [`sigil_T`](`Kernel.sigil_T/2`), [`sigil_U`](`Kernel.sigil_U/2`), [`sigil_c`](`Kernel.sigil_c/2`), [`sigil_r`](`Kernel.sigil_r/2`), [`sigil_s`](`Kernel.sigil_s/2`), [`tap`](`Kernel.tap/2`), [`then`](`Kernel.then/2`), [`tl`](`Kernel.tl/1`), [`to_timeout`](`Kernel.to_timeout/1`), [`trunc`](`Kernel.trunc/1`), [`tuple_size`](`Kernel.tuple_size/1`), [`unless`](`Kernel.unless/2`), [`update_in`](`Kernel.update_in/2`), [`|>`](`Kernel.|>/2`), [`||`](`Kernel.||/2`)
  - **Alernative implementation**: [`apply`](`Kernel.apply/2`), [`dbg`](`Kernel.dbg/0`), [`inspect`](`Kernel.inspect/1`), [`sigil_W`](`Kernel.sigil_W/2`), [`sigil_w`](`Kernel.sigil_w/2`), [`throw`](`Kernel.throw/1`), [`to_charlist`](`Kernel.to_charlist/1`), [`to_string`](`Kernel.to_string/1`)
  - **Restricted**: [~~`@`~~](`Kernel.@/1`), [~~`alias!`~~](`Kernel.alias!/1`), [~~`binary_slice`~~](`Kernel.binary_slice/2`), [~~`binding`~~](`Kernel.binding/0`), [~~`def`~~](`Kernel.def/1`), [~~`defdelegate`~~](`Kernel.defdelegate/2`), [~~`defexception`~~](`Kernel.defexception/1`), [~~`defguard`~~](`Kernel.defguard/1`), [~~`defguardp`~~](`Kernel.defguardp/1`), [~~`defimpl`~~](`Kernel.defimpl/2`), [~~`defmacro`~~](`Kernel.defmacro/1`), [~~`defmacrop`~~](`Kernel.defmacrop/1`), [~~`defmodule`~~](`Kernel.defmodule/2`), [~~`defoverridable`~~](`Kernel.defoverridable/1`), [~~`defp`~~](`Kernel.defp/1`), [~~`defprotocol`~~](`Kernel.defprotocol/2`), [~~`defstruct`~~](`Kernel.defstruct/1`), [~~`destructure`~~](`Kernel.destructure/2`), [~~`exit`~~](`Kernel.exit/1`), [~~`function_exported?`~~](`Kernel.function_exported?/3`), [~~`is_pid`~~](`Kernel.is_pid/1`), [~~`is_port`~~](`Kernel.is_port/1`), [~~`macro_exported?`~~](`Kernel.macro_exported?/3`), [~~`node`~~](`Kernel.node/0`), [~~`reraise`~~](`Kernel.reraise/2`), [~~`send`~~](`Kernel.send/2`), [~~`spawn`~~](`Kernel.spawn/1`), [~~`spawn_link`~~](`Kernel.spawn_link/1`), [~~`spawn_monitor`~~](`Kernel.spawn_monitor/1`), [~~`struct`~~](`Kernel.struct/1`), [~~`struct!`~~](`Kernel.struct!/1`), [~~`to_char_list`~~](`Kernel.to_char_list/1`), [~~`use`~~](`Kernel.use/1`), [~~`var!`~~](`Kernel.var!/1`)
- `Kernel.SpecialForms`
  - **Allowed**: [`%{}`](`Kernel.SpecialForms.%{}/1`), [`::`](`Kernel.SpecialForms.::/2`), [`<<>>`](`Kernel.SpecialForms.<<>>/1`), [`=`](`Kernel.SpecialForms.=/2`), [`^`](`Kernel.SpecialForms.^/1`), [`__aliases__`](`Kernel.SpecialForms.__aliases__/1`), [`case`](`Kernel.SpecialForms.case/2`), [`cond`](`Kernel.SpecialForms.cond/1`), [`fn`](`Kernel.SpecialForms.fn/1`), [`for`](`Kernel.SpecialForms.for/1`), [`with`](`Kernel.SpecialForms.with/1`), [`{}`](`Kernel.SpecialForms.{}/1`)
  - **Restricted**: [~~`%`~~](`Kernel.SpecialForms.%/2`), [~~`&`~~](`Kernel.SpecialForms.&/1`), [~~`.`~~](`Kernel.SpecialForms../2`), [~~`__CALLER__`~~](`Kernel.SpecialForms.__CALLER__/0`), [~~`__DIR__`~~](`Kernel.SpecialForms.__DIR__/0`), [~~`__ENV__`~~](`Kernel.SpecialForms.__ENV__/0`), [~~`__MODULE__`~~](`Kernel.SpecialForms.__MODULE__/0`), [~~`__STACKTRACE__`~~](`Kernel.SpecialForms.__STACKTRACE__/0`), [~~`__block__`~~](`Kernel.SpecialForms.__block__/1`), [~~`__cursor__`~~](`Kernel.SpecialForms.__cursor__/1`), [~~`alias`~~](`Kernel.SpecialForms.alias/2`), [~~`import`~~](`Kernel.SpecialForms.import/2`), [~~`quote`~~](`Kernel.SpecialForms.quote/2`), [~~`receive`~~](`Kernel.SpecialForms.receive/1`), [~~`require`~~](`Kernel.SpecialForms.require/2`), [~~`super`~~](`Kernel.SpecialForms.super/1`), [~~`try`~~](`Kernel.SpecialForms.try/1`), [~~`unquote`~~](`Kernel.SpecialForms.unquote/1`), [~~`unquote_splicing`~~](`Kernel.SpecialForms.unquote_splicing/1`)
- `Keyword`
  - **Allowed**: [`delete`](`Keyword.delete/2`), [`delete_first`](`Keyword.delete_first/2`), [`drop`](`Keyword.drop/2`), [`equal?`](`Keyword.equal?/2`), [`fetch`](`Keyword.fetch/2`), [`fetch!`](`Keyword.fetch!/2`), [`filter`](`Keyword.filter/2`), [`from_keys`](`Keyword.from_keys/2`), [`get`](`Keyword.get/2`), [`get_and_update`](`Keyword.get_and_update/3`), [`get_and_update!`](`Keyword.get_and_update!/3`), [`get_lazy`](`Keyword.get_lazy/3`), [`get_values`](`Keyword.get_values/2`), [`has_key?`](`Keyword.has_key?/2`), [`intersect`](`Keyword.intersect/2`), [`keys`](`Keyword.keys/1`), [`keyword?`](`Keyword.keyword?/1`), `map`, [`merge`](`Keyword.merge/2`), [`new`](`Keyword.new/0`), [`pop`](`Keyword.pop/2`), [`pop!`](`Keyword.pop!/2`), [`pop_first`](`Keyword.pop_first/2`), [`pop_lazy`](`Keyword.pop_lazy/3`), [`pop_values`](`Keyword.pop_values/2`), [`put`](`Keyword.put/3`), [`put_new`](`Keyword.put_new/3`), [`put_new_lazy`](`Keyword.put_new_lazy/3`), [`reject`](`Keyword.reject/2`), [`replace`](`Keyword.replace/3`), [`replace!`](`Keyword.replace!/3`), [`replace_lazy`](`Keyword.replace_lazy/3`), `size`, [`split`](`Keyword.split/2`), [`split_with`](`Keyword.split_with/2`), [`take`](`Keyword.take/2`), [`to_list`](`Keyword.to_list/1`), [`update`](`Keyword.update/4`), [`update!`](`Keyword.update!/3`), [`validate`](`Keyword.validate/2`), [`validate!`](`Keyword.validate!/2`), [`values`](`Keyword.values/1`)
- `List`
  - **Allowed**: [`ascii_printable?`](`List.ascii_printable?/1`), [`delete`](`List.delete/2`), [`delete_at`](`List.delete_at/2`), [`duplicate`](`List.duplicate/2`), [`ends_with?`](`List.ends_with?/2`), [`first`](`List.first/1`), [`first!`](`List.first!/1`), [`flatten`](`List.flatten/1`), [`foldl`](`List.foldl/3`), [`foldr`](`List.foldr/3`), [`improper?`](`List.improper?/1`), [`insert_at`](`List.insert_at/3`), [`keydelete`](`List.keydelete/3`), [`keyfind`](`List.keyfind/3`), [`keyfind!`](`List.keyfind!/3`), [`keymember?`](`List.keymember?/3`), [`keyreplace`](`List.keyreplace/4`), [`keysort`](`List.keysort/2`), [`keystore`](`List.keystore/4`), [`keytake`](`List.keytake/3`), [`last`](`List.last/1`), [`last!`](`List.last!/1`), [`myers_difference`](`List.myers_difference/2`), [`pop_at`](`List.pop_at/2`), [`replace_at`](`List.replace_at/3`), [`starts_with?`](`List.starts_with?/2`), [`to_charlist`](`List.to_charlist/1`), [`to_float`](`List.to_float/1`), [`to_integer`](`List.to_integer/1`), [`to_tuple`](`List.to_tuple/1`), [`update_at`](`List.update_at/3`), [`wrap`](`List.wrap/1`), `zip`
  - **Alernative implementation**: [`to_string`](`List.to_string/1`)
  - **Restricted**: [~~`to_atom`~~](`List.to_atom/1`), [~~`to_existing_atom`~~](`List.to_existing_atom/1`)
- `Map`
  - **Allowed**: [`delete`](`Map.delete/2`), [`drop`](`Map.drop/2`), [`equal?`](`Map.equal?/2`), [`fetch`](`Map.fetch/2`), [`fetch!`](`Map.fetch!/2`), [`filter`](`Map.filter/2`), [`from_keys`](`Map.from_keys/2`), [`from_struct`](`Map.from_struct/1`), [`get`](`Map.get/2`), [`get_and_update`](`Map.get_and_update/3`), [`get_and_update!`](`Map.get_and_update!/3`), [`get_lazy`](`Map.get_lazy/3`), [`has_key?`](`Map.has_key?/2`), [`intersect`](`Map.intersect/2`), [`keys`](`Map.keys/1`), `map`, [`merge`](`Map.merge/2`), [`new`](`Map.new/0`), [`pop`](`Map.pop/2`), [`pop!`](`Map.pop!/2`), [`pop_lazy`](`Map.pop_lazy/3`), [`put`](`Map.put/3`), [`put_new`](`Map.put_new/3`), [`put_new_lazy`](`Map.put_new_lazy/3`), [`reject`](`Map.reject/2`), [`replace`](`Map.replace/3`), [`replace!`](`Map.replace!/3`), [`replace_lazy`](`Map.replace_lazy/3`), `size`, [`split`](`Map.split/2`), [`split_with`](`Map.split_with/2`), [`take`](`Map.take/2`), [`to_list`](`Map.to_list/1`), [`update`](`Map.update/4`), [`update!`](`Map.update!/3`), [`values`](`Map.values/1`)
- `MapSet`
  - **Allowed**: `__struct__`, [`delete`](`MapSet.delete/2`), [`difference`](`MapSet.difference/2`), [`disjoint?`](`MapSet.disjoint?/2`), [`equal?`](`MapSet.equal?/2`), [`filter`](`MapSet.filter/2`), [`intersection`](`MapSet.intersection/2`), [`member?`](`MapSet.member?/2`), [`new`](`MapSet.new/0`), [`put`](`MapSet.put/2`), [`reject`](`MapSet.reject/2`), [`size`](`MapSet.size/1`), [`split_with`](`MapSet.split_with/2`), [`subset?`](`MapSet.subset?/2`), [`symmetric_difference`](`MapSet.symmetric_difference/2`), [`to_list`](`MapSet.to_list/1`), [`union`](`MapSet.union/2`)
- `NaiveDateTime`
  - **Allowed**: `__duration__!`, `__struct__`, [`add`](`NaiveDateTime.add/2`), [`after?`](`NaiveDateTime.after?/2`), [`before?`](`NaiveDateTime.before?/2`), [`beginning_of_day`](`NaiveDateTime.beginning_of_day/1`), [`compare`](`NaiveDateTime.compare/2`), [`convert`](`NaiveDateTime.convert/2`), [`convert!`](`NaiveDateTime.convert!/2`), [`diff`](`NaiveDateTime.diff/2`), [`end_of_day`](`NaiveDateTime.end_of_day/1`), [`from_erl`](`NaiveDateTime.from_erl/1`), [`from_erl!`](`NaiveDateTime.from_erl!/1`), [`from_gregorian_seconds`](`NaiveDateTime.from_gregorian_seconds/1`), [`from_iso8601`](`NaiveDateTime.from_iso8601/1`), [`from_iso8601!`](`NaiveDateTime.from_iso8601!/1`), [`local_now`](`NaiveDateTime.local_now/0`), [`new`](`NaiveDateTime.new/2`), [`new!`](`NaiveDateTime.new!/2`), [`shift`](`NaiveDateTime.shift/2`), [`to_date`](`NaiveDateTime.to_date/1`), [`to_erl`](`NaiveDateTime.to_erl/1`), [`to_gregorian_seconds`](`NaiveDateTime.to_gregorian_seconds/1`), [`to_iso8601`](`NaiveDateTime.to_iso8601/1`), [`to_string`](`NaiveDateTime.to_string/1`), [`to_time`](`NaiveDateTime.to_time/1`), [`truncate`](`NaiveDateTime.truncate/2`), [`utc_now`](`NaiveDateTime.utc_now/0`)
- `Process`
  - **Allowed**: [`sleep`](`Process.sleep/1`)
  - **Restricted**: [~~`alias`~~](`Process.alias/0`), [~~`alive?`~~](`Process.alive?/1`), [~~`cancel_timer`~~](`Process.cancel_timer/1`), [~~`delete`~~](`Process.delete/1`), [~~`demonitor`~~](`Process.demonitor/1`), [~~`exit`~~](`Process.exit/2`), [~~`flag`~~](`Process.flag/2`), [~~`get`~~](`Process.get/0`), [~~`get_keys`~~](`Process.get_keys/0`), [~~`get_label`~~](`Process.get_label/0`), [~~`group_leader`~~](`Process.group_leader/0`), [~~`hibernate`~~](`Process.hibernate/3`), [~~`info`~~](`Process.info/1`), [~~`link`~~](`Process.link/1`), [~~`list`~~](`Process.list/0`), [~~`monitor`~~](`Process.monitor/1`), [~~`put`~~](`Process.put/2`), [~~`read_timer`~~](`Process.read_timer/1`), [~~`register`~~](`Process.register/2`), [~~`registered`~~](`Process.registered/0`), [~~`send`~~](`Process.send/3`), [~~`send_after`~~](`Process.send_after/3`), [~~`set_label`~~](`Process.set_label/1`), [~~`spawn`~~](`Process.spawn/2`), [~~`unalias`~~](`Process.unalias/1`), [~~`unlink`~~](`Process.unlink/1`), [~~`unregister`~~](`Process.unregister/1`), [~~`whereis`~~](`Process.whereis/1`)
- `Range`
  - **Allowed**: `__struct__`, [`disjoint?`](`Range.disjoint?/2`), [`new`](`Range.new/2`), `range?`, [`shift`](`Range.shift/2`), [`size`](`Range.size/1`), [`split`](`Range.split/2`), [`to_list`](`Range.to_list/1`)
- `Regex`
  - **Allowed**: `__escape__`, `__import_pattern__`, `__struct__`, [`compile`](`Regex.compile/1`), [`compile!`](`Regex.compile!/1`), [`escape`](`Regex.escape/1`), [`import`](`Regex.import/1`), [`match?`](`Regex.match?/2`), [`named_captures`](`Regex.named_captures/2`), [`names`](`Regex.names/1`), [`opts`](`Regex.opts/1`), [`re_pattern`](`Regex.re_pattern/1`), [`recompile`](`Regex.recompile/1`), [`recompile!`](`Regex.recompile!/1`), `regex?`, [`replace`](`Regex.replace/3`), [`run`](`Regex.run/2`), [`scan`](`Regex.scan/2`), [`source`](`Regex.source/1`), [`split`](`Regex.split/2`), [`to_embed`](`Regex.to_embed/1`), [`version`](`Regex.version/0`)
- `Stream`
  - **Allowed**: `__struct__`, `chunk`, [`chunk_by`](`Stream.chunk_by/2`), [`chunk_every`](`Stream.chunk_every/2`), [`chunk_while`](`Stream.chunk_while/4`), [`concat`](`Stream.concat/1`), [`cycle`](`Stream.cycle/1`), [`dedup`](`Stream.dedup/1`), [`dedup_by`](`Stream.dedup_by/2`), [`drop`](`Stream.drop/2`), [`drop_every`](`Stream.drop_every/2`), [`drop_while`](`Stream.drop_while/2`), [`duplicate`](`Stream.duplicate/2`), [`each`](`Stream.each/2`), [`filter`](`Stream.filter/2`), `filter_map`, [`flat_map`](`Stream.flat_map/2`), [`from_index`](`Stream.from_index/0`), [`intersperse`](`Stream.intersperse/2`), [`interval`](`Stream.interval/1`), [`into`](`Stream.into/2`), [`iterate`](`Stream.iterate/2`), [`map`](`Stream.map/2`), [`map_every`](`Stream.map_every/3`), [`reject`](`Stream.reject/2`), [`repeatedly`](`Stream.repeatedly/1`), [`resource`](`Stream.resource/3`), [`run`](`Stream.run/1`), [`scan`](`Stream.scan/2`), [`take`](`Stream.take/2`), [`take_every`](`Stream.take_every/2`), [`take_while`](`Stream.take_while/2`), [`timer`](`Stream.timer/1`), [`transform`](`Stream.transform/3`), [`unfold`](`Stream.unfold/2`), [`uniq`](`Stream.uniq/1`), [`uniq_by`](`Stream.uniq_by/2`), [`with_index`](`Stream.with_index/1`), [`zip`](`Stream.zip/1`), [`zip_with`](`Stream.zip_with/2`)
- `String`
  - **Allowed**: [`at`](`String.at/2`), [`bag_distance`](`String.bag_distance/2`), [`byte_slice`](`String.byte_slice/3`), [`capitalize`](`String.capitalize/1`), [`chunk`](`String.chunk/2`), [`codepoints`](`String.codepoints/1`), [`contains?`](`String.contains?/2`), [`count`](`String.count/2`), [`downcase`](`String.downcase/1`), [`duplicate`](`String.duplicate/2`), [`ends_with?`](`String.ends_with?/2`), [`equivalent?`](`String.equivalent?/2`), [`first`](`String.first/1`), [`graphemes`](`String.graphemes/1`), [`jaro_distance`](`String.jaro_distance/2`), [`last`](`String.last/1`), [`length`](`String.length/1`), `ljust`, `lstrip`, [`match?`](`String.match?/2`), [`myers_difference`](`String.myers_difference/2`), [`next_codepoint`](`String.next_codepoint/1`), [`next_grapheme`](`String.next_grapheme/1`), [`next_grapheme_size`](`String.next_grapheme_size/1`), [`normalize`](`String.normalize/2`), [`pad_leading`](`String.pad_leading/2`), [`pad_trailing`](`String.pad_trailing/2`), [`printable?`](`String.printable?/1`), [`replace`](`String.replace/3`), [`replace_invalid`](`String.replace_invalid/1`), [`replace_leading`](`String.replace_leading/3`), [`replace_prefix`](`String.replace_prefix/3`), [`replace_suffix`](`String.replace_suffix/3`), [`replace_trailing`](`String.replace_trailing/3`), [`reverse`](`String.reverse/1`), `rjust`, `rstrip`, [`slice`](`String.slice/2`), [`split`](`String.split/1`), [`split_at`](`String.split_at/2`), [`splitter`](`String.splitter/2`), [`starts_with?`](`String.starts_with?/2`), `strip`, `to_char_list`, [`to_charlist`](`String.to_charlist/1`), [`to_float`](`String.to_float/1`), [`to_integer`](`String.to_integer/1`), [`trim`](`String.trim/1`), [`trim_leading`](`String.trim_leading/1`), [`trim_trailing`](`String.trim_trailing/1`), [`upcase`](`String.upcase/1`), [`valid?`](`String.valid?/1`), `valid_character?`
  - **Restricted**: [~~`to_atom`~~](`String.to_atom/1`), [~~`to_existing_atom`~~](`String.to_existing_atom/1`)
- `Time`
  - **Allowed**: `__duration__!`, `__struct__`, [`add`](`Time.add/2`), [`after?`](`Time.after?/2`), [`before?`](`Time.before?/2`), [`compare`](`Time.compare/2`), [`convert`](`Time.convert/2`), [`convert!`](`Time.convert!/2`), [`diff`](`Time.diff/2`), [`from_erl`](`Time.from_erl/1`), [`from_erl!`](`Time.from_erl!/1`), [`from_iso8601`](`Time.from_iso8601/1`), [`from_iso8601!`](`Time.from_iso8601!/1`), [`from_seconds_after_midnight`](`Time.from_seconds_after_midnight/1`), [`new`](`Time.new/3`), [`new!`](`Time.new!/3`), [`shift`](`Time.shift/2`), [`to_erl`](`Time.to_erl/1`), [`to_iso8601`](`Time.to_iso8601/1`), [`to_seconds_after_midnight`](`Time.to_seconds_after_midnight/1`), [`to_string`](`Time.to_string/1`), [`truncate`](`Time.truncate/2`), [`utc_now`](`Time.utc_now/0`)
- `Tuple`
  - **Allowed**: `append`, [`delete_at`](`Tuple.delete_at/2`), [`duplicate`](`Tuple.duplicate/2`), [`insert_at`](`Tuple.insert_at/3`), [`product`](`Tuple.product/1`), [`sum`](`Tuple.sum/1`), [`to_list`](`Tuple.to_list/1`)
- `URI`
  - **Allowed**: [`__struct__`](`URI.__struct__/0`), [`append_path`](`URI.append_path/2`), [`append_query`](`URI.append_query/2`), [`char_reserved?`](`URI.char_reserved?/1`), [`char_unescaped?`](`URI.char_unescaped?/1`), [`char_unreserved?`](`URI.char_unreserved?/1`), [`decode`](`URI.decode/1`), [`decode_query`](`URI.decode_query/1`), [`decode_www_form`](`URI.decode_www_form/1`), [`default_port`](`URI.default_port/1`), [`encode`](`URI.encode/1`), [`encode_query`](`URI.encode_query/1`), [`encode_www_form`](`URI.encode_www_form/1`), [`merge`](`URI.merge/2`), [`new`](`URI.new/1`), [`new!`](`URI.new!/1`), [`parse`](`URI.parse/1`), [`query_decoder`](`URI.query_decoder/1`), [`to_string`](`URI.to_string/1`)
- `Version`
  - **Allowed**: [`__struct__`](`Version.__struct__/0`), [`compare`](`Version.compare/2`), [`compile_requirement`](`Version.compile_requirement/1`), [`match?`](`Version.match?/2`), [`parse`](`Version.parse/1`), [`parse!`](`Version.parse!/1`), [`parse_requirement`](`Version.parse_requirement/1`), [`parse_requirement!`](`Version.parse_requirement!/1`), [`to_string`](`Version.to_string/1`)
- `:array`
  - **Allowed**: [`default`](`:array.default/1`), [`fix`](`:array.fix/1`), [`foldl`](`:array.foldl/3`), [`foldr`](`:array.foldr/3`), [`from_list`](`:array.from_list/1`), [`from_orddict`](`:array.from_orddict/1`), [`get`](`:array.get/2`), [`is_array`](`:array.is_array/1`), [`is_fix`](`:array.is_fix/1`), [`map`](`:array.map/2`), [`new`](`:array.new/0`), [`relax`](`:array.relax/1`), [`reset`](`:array.reset/2`), [`resize`](`:array.resize/1`), [`set`](`:array.set/3`), [`size`](`:array.size/1`), [`sparse_foldl`](`:array.sparse_foldl/3`), [`sparse_foldr`](`:array.sparse_foldr/3`), [`sparse_map`](`:array.sparse_map/2`), [`sparse_size`](`:array.sparse_size/1`), [`sparse_to_list`](`:array.sparse_to_list/1`), [`sparse_to_orddict`](`:array.sparse_to_orddict/1`), [`to_list`](`:array.to_list/1`), [`to_orddict`](`:array.to_orddict/1`)
- `:binary`
  - **Allowed**: [`at`](`:binary.at/2`), [`bin_to_list`](`:binary.bin_to_list/1`), [`compile_pattern`](`:binary.compile_pattern/1`), [`copy`](`:binary.copy/1`), [`decode_hex`](`:binary.decode_hex/1`), [`decode_unsigned`](`:binary.decode_unsigned/1`), [`encode_hex`](`:binary.encode_hex/1`), [`encode_unsigned`](`:binary.encode_unsigned/1`), [`first`](`:binary.first/1`), [`join`](`:binary.join/2`), [`last`](`:binary.last/1`), [`list_to_bin`](`:binary.list_to_bin/1`), [`longest_common_prefix`](`:binary.longest_common_prefix/1`), [`longest_common_suffix`](`:binary.longest_common_suffix/1`), [`match`](`:binary.match/2`), [`matches`](`:binary.matches/2`), [`part`](`:binary.part/2`), [`referenced_byte_size`](`:binary.referenced_byte_size/1`), [`replace`](`:binary.replace/3`), [`split`](`:binary.split/2`)
- `:erlang`
  - **Allowed**: `*`, `+`, `++`, `-`, `--`, `/`, `/=`, `<`, `=/=`, `=:=`, `=<`, `==`, `>`, `>=`, [`abs`](`:erlang.abs/1`), [`adler32`](`:erlang.adler32/1`), [`adler32_combine`](`:erlang.adler32_combine/3`), `and`, [`append_element`](`:erlang.append_element/2`), `band`, [`binary_part`](`:erlang.binary_part/2`), [`binary_to_float`](`:erlang.binary_to_float/1`), [`binary_to_integer`](`:erlang.binary_to_integer/1`), [`binary_to_list`](`:erlang.binary_to_list/1`), [`bit_size`](`:erlang.bit_size/1`), [`bitstring_to_list`](`:erlang.bitstring_to_list/1`), `bnot`, `bor`, `bsl`, `bsr`, `bxor`, [`byte_size`](`:erlang.byte_size/1`), [`ceil`](`:erlang.ceil/1`), [`convert_time_unit`](`:erlang.convert_time_unit/3`), [`crc32`](`:erlang.crc32/1`), [`crc32_combine`](`:erlang.crc32_combine/3`), [`date`](`:erlang.date/0`), [`delete_element`](`:erlang.delete_element/2`), `div`, [`element`](`:erlang.element/2`), [`float`](`:erlang.float/1`), [`float_to_binary`](`:erlang.float_to_binary/1`), [`float_to_list`](`:erlang.float_to_list/1`), [`floor`](`:erlang.floor/1`), [`hd`](`:erlang.hd/1`), [`insert_element`](`:erlang.insert_element/3`), [`integer_to_binary`](`:erlang.integer_to_binary/1`), [`integer_to_list`](`:erlang.integer_to_list/1`), [`iolist_size`](`:erlang.iolist_size/1`), [`iolist_to_binary`](`:erlang.iolist_to_binary/1`), [`iolist_to_iovec`](`:erlang.iolist_to_iovec/1`), [`is_atom`](`:erlang.is_atom/1`), [`is_binary`](`:erlang.is_binary/1`), [`is_bitstring`](`:erlang.is_bitstring/1`), [`is_boolean`](`:erlang.is_boolean/1`), [`is_float`](`:erlang.is_float/1`), [`is_function`](`:erlang.is_function/1`), [`is_integer`](`:erlang.is_integer/1`), [`is_list`](`:erlang.is_list/1`), [`is_map`](`:erlang.is_map/1`), [`is_map_key`](`:erlang.is_map_key/2`), [`is_number`](`:erlang.is_number/1`), [`is_pid`](`:erlang.is_pid/1`), [`is_port`](`:erlang.is_port/1`), [`is_record`](`:erlang.is_record/2`), [`is_reference`](`:erlang.is_reference/1`), [`is_tuple`](`:erlang.is_tuple/1`), [`length`](`:erlang.length/1`), [`list_to_binary`](`:erlang.list_to_binary/1`), [`list_to_bitstring`](`:erlang.list_to_bitstring/1`), [`list_to_float`](`:erlang.list_to_float/1`), [`list_to_integer`](`:erlang.list_to_integer/1`), [`localtime`](`:erlang.localtime/0`), [`localtime_to_universaltime`](`:erlang.localtime_to_universaltime/1`), [`make_ref`](`:erlang.make_ref/0`), [`make_tuple`](`:erlang.make_tuple/2`), [`map_get`](`:erlang.map_get/2`), [`map_size`](`:erlang.map_size/1`), [`max`](`:erlang.max/2`), [`md5`](`:erlang.md5/1`), [`md5_final`](`:erlang.md5_final/1`), [`md5_init`](`:erlang.md5_init/0`), [`md5_update`](`:erlang.md5_update/2`), [`min`](`:erlang.min/2`), [`monotonic_time`](`:erlang.monotonic_time/0`), `not`, `or`, [`phash2`](`:erlang.phash2/1`), [`ref_to_list`](`:erlang.ref_to_list/1`), `rem`, [`round`](`:erlang.round/1`), [`setelement`](`:erlang.setelement/3`), [`size`](`:erlang.size/1`), [`split_binary`](`:erlang.split_binary/2`), [`system_time`](`:erlang.system_time/0`), [`time`](`:erlang.time/0`), [`time_offset`](`:erlang.time_offset/0`), [`timestamp`](`:erlang.timestamp/0`), [`tl`](`:erlang.tl/1`), [`trunc`](`:erlang.trunc/1`), [`tuple_size`](`:erlang.tuple_size/1`), [`tuple_to_list`](`:erlang.tuple_to_list/1`), [`unique_integer`](`:erlang.unique_integer/0`), [`universaltime`](`:erlang.universaltime/0`), [`universaltime_to_localtime`](`:erlang.universaltime_to_localtime/1`), `xor`
  - **Alernative implementation**: [`apply`](`:erlang.apply/2`)
  - **Restricted**: ~~`!`~~, [~~`alias`~~](`:erlang.alias/0`), ~~`alloc_info`~~, ~~`alloc_sizes`~~, ~~`append`~~, [~~`atom_to_binary`~~](`:erlang.atom_to_binary/1`), [~~`atom_to_list`~~](`:erlang.atom_to_list/1`), [~~`binary_to_atom`~~](`:erlang.binary_to_atom/1`), [~~`binary_to_existing_atom`~~](`:erlang.binary_to_existing_atom/1`), [~~`binary_to_term`~~](`:erlang.binary_to_term/1`), [~~`bump_reductions`~~](`:erlang.bump_reductions/1`), ~~`call_on_load_function`~~, [~~`cancel_timer`~~](`:erlang.cancel_timer/1`), [~~`check_old_code`~~](`:erlang.check_old_code/1`), [~~`check_process_code`~~](`:erlang.check_process_code/2`), [~~`decode_packet`~~](`:erlang.decode_packet/3`), ~~`delay_trap`~~, [~~`delete_module`~~](`:erlang.delete_module/1`), [~~`demonitor`~~](`:erlang.demonitor/1`), [~~`disconnect_node`~~](`:erlang.disconnect_node/1`), [~~`display`~~](`:erlang.display/1`), ~~`display_string`~~, [~~`dist_ctrl_get_data`~~](`:erlang.dist_ctrl_get_data/1`), [~~`dist_ctrl_get_data_notification`~~](`:erlang.dist_ctrl_get_data_notification/1`), [~~`dist_ctrl_get_opt`~~](`:erlang.dist_ctrl_get_opt/2`), [~~`dist_ctrl_input_handler`~~](`:erlang.dist_ctrl_input_handler/2`), [~~`dist_ctrl_put_data`~~](`:erlang.dist_ctrl_put_data/2`), [~~`dist_ctrl_set_opt`~~](`:erlang.dist_ctrl_set_opt/3`), ~~`dist_get_stat`~~, ~~`dmonitor_node`~~, ~~`dt_append_vm_tag_data`~~, ~~`dt_get_tag`~~, ~~`dt_get_tag_data`~~, ~~`dt_prepend_vm_tag_data`~~, ~~`dt_put_tag`~~, ~~`dt_restore_tag`~~, ~~`dt_spread_tag`~~, [~~`erase`~~](`:erlang.erase/0`), [~~`error`~~](`:erlang.error/1`), [~~`exit`~~](`:erlang.exit/1`), ~~`exit_signal`~~, [~~`external_size`~~](`:erlang.external_size/1`), ~~`finish_after_on_load`~~, ~~`finish_loading`~~, ~~`format_cpu_topology`~~, [~~`fun_info`~~](`:erlang.fun_info/1`), ~~`fun_info_mfa`~~, [~~`fun_to_list`~~](`:erlang.fun_to_list/1`), [~~`function_exported`~~](`:erlang.function_exported/3`), [~~`garbage_collect`~~](`:erlang.garbage_collect/0`), ~~`garbage_collect_message_area`~~, ~~`gather_gc_info_result`~~, [~~`get`~~](`:erlang.get/0`), [~~`get_cookie`~~](`:erlang.get_cookie/0`), [~~`get_keys`~~](`:erlang.get_keys/0`), ~~`get_module_info`~~, [~~`group_leader`~~](`:erlang.group_leader/0`), [~~`halt`~~](`:erlang.halt/0`), ~~`has_prepared_code_on_load`~~, [~~`hibernate`~~](`:erlang.hibernate/0`), [~~`is_alive`~~](`:erlang.is_alive/0`), [~~`is_builtin`~~](`:erlang.is_builtin/3`), [~~`is_process_alive`~~](`:erlang.is_process_alive/1`), [~~`link`~~](`:erlang.link/1`), [~~`list_to_atom`~~](`:erlang.list_to_atom/1`), [~~`list_to_existing_atom`~~](`:erlang.list_to_existing_atom/1`), [~~`list_to_pid`~~](`:erlang.list_to_pid/1`), [~~`list_to_port`~~](`:erlang.list_to_port/1`), [~~`list_to_ref`~~](`:erlang.list_to_ref/1`), [~~`list_to_tuple`~~](`:erlang.list_to_tuple/1`), [~~`load_module`~~](`:erlang.load_module/2`), [~~`load_nif`~~](`:erlang.load_nif/2`), [~~`loaded`~~](`:erlang.loaded/0`), ~~`make_fun`~~, [~~`match_spec_test`~~](`:erlang.match_spec_test/3`), [~~`memory`~~](`:erlang.memory/0`), [~~`module_loaded`~~](`:erlang.module_loaded/1`), [~~`monitor`~~](`:erlang.monitor/2`), [~~`monitor_node`~~](`:erlang.monitor_node/2`), [~~`nif_error`~~](`:erlang.nif_error/1`), [~~`node`~~](`:erlang.node/0`), [~~`nodes`~~](`:erlang.nodes/0`), [~~`now`~~](`:erlang.now/0`), [~~`open_port`~~](`:erlang.open_port/2`), [~~`phash`~~](`:erlang.phash/2`), [~~`pid_to_list`~~](`:erlang.pid_to_list/1`), [~~`port_call`~~](`:erlang.port_call/2`), [~~`port_close`~~](`:erlang.port_close/1`), [~~`port_command`~~](`:erlang.port_command/2`), [~~`port_connect`~~](`:erlang.port_connect/2`), [~~`port_control`~~](`:erlang.port_control/3`), ~~`port_get_data`~~, [~~`port_info`~~](`:erlang.port_info/1`), ~~`port_set_data`~~, [~~`port_to_list`~~](`:erlang.port_to_list/1`), [~~`ports`~~](`:erlang.ports/0`), ~~`posixtime_to_universaltime`~~, [~~`pre_loaded`~~](`:erlang.pre_loaded/0`), ~~`prepare_loading`~~, [~~`process_display`~~](`:erlang.process_display/2`), [~~`process_flag`~~](`:erlang.process_flag/2`), [~~`process_info`~~](`:erlang.process_info/1`), [~~`processes`~~](`:erlang.processes/0`), [~~`processes_iterator`~~](`:erlang.processes_iterator/0`), [~~`processes_next`~~](`:erlang.processes_next/1`), [~~`purge_module`~~](`:erlang.purge_module/1`), [~~`put`~~](`:erlang.put/2`), [~~`raise`~~](`:erlang.raise/3`), [~~`read_timer`~~](`:erlang.read_timer/1`), [~~`register`~~](`:erlang.register/2`), [~~`registered`~~](`:erlang.registered/0`), [~~`resume_process`~~](`:erlang.resume_process/1`), [~~`self`~~](`:erlang.self/0`), [~~`send`~~](`:erlang.send/2`), [~~`send_after`~~](`:erlang.send_after/3`), [~~`send_nosuspend`~~](`:erlang.send_nosuspend/2`), ~~`seq_trace`~~, ~~`seq_trace_info`~~, ~~`seq_trace_print`~~, [~~`set_cookie`~~](`:erlang.set_cookie/1`), ~~`set_cpu_topology`~~, ~~`setnode`~~, [~~`spawn`~~](`:erlang.spawn/1`), [~~`spawn_link`~~](`:erlang.spawn_link/1`), [~~`spawn_monitor`~~](`:erlang.spawn_monitor/1`), [~~`spawn_opt`~~](`:erlang.spawn_opt/2`), [~~`spawn_request`~~](`:erlang.spawn_request/1`), [~~`spawn_request_abandon`~~](`:erlang.spawn_request_abandon/1`), [~~`start_timer`~~](`:erlang.start_timer/3`), [~~`statistics`~~](`:erlang.statistics/1`), ~~`subtract`~~, [~~`suspend_process`~~](`:erlang.suspend_process/1`), [~~`system_flag`~~](`:erlang.system_flag/2`), [~~`system_info`~~](`:erlang.system_info/1`), [~~`system_monitor`~~](`:erlang.system_monitor/0`), [~~`system_profile`~~](`:erlang.system_profile/0`), [~~`term_to_binary`~~](`:erlang.term_to_binary/1`), [~~`term_to_iovec`~~](`:erlang.term_to_iovec/1`), [~~`throw`~~](`:erlang.throw/1`), [~~`trace`~~](`:erlang.trace/3`), [~~`trace_delivered`~~](`:erlang.trace_delivered/1`), [~~`trace_info`~~](`:erlang.trace_info/2`), [~~`trace_pattern`~~](`:erlang.trace_pattern/2`), [~~`unalias`~~](`:erlang.unalias/1`), ~~`universaltime_to_posixtime`~~, [~~`unlink`~~](`:erlang.unlink/1`), [~~`unregister`~~](`:erlang.unregister/1`), [~~`whereis`~~](`:erlang.whereis/1`), [~~`yield`~~](`:erlang.yield/0`)
- `:erts_debug`
  - **Allowed**: `same`, `size`, `size_shared`
  - **Restricted**: ~~`alloc_blocks_size`~~, ~~`breakpoint`~~, ~~`copy_shared`~~, ~~`df`~~, ~~`dirty`~~, ~~`dirty_cpu`~~, ~~`dirty_io`~~, ~~`dis_to_file`~~, ~~`disassemble`~~, ~~`dist_ext_to_term`~~, ~~`flat_size`~~, ~~`get_internal_state`~~, ~~`ic`~~, ~~`instructions`~~, ~~`interpreter_size`~~, ~~`lc_graph`~~, ~~`lc_graph_merge`~~, ~~`lc_graph_to_dot`~~, ~~`lcnt_clear`~~, ~~`lcnt_collect`~~, ~~`lcnt_control`~~, ~~`map_info`~~, ~~`set_internal_state`~~, ~~`unaligned_bitstring`~~
- `:gb_sets`
  - **Allowed**: `add`, [`add_element`](`:gb_sets.add_element/2`), [`balance`](`:gb_sets.balance/1`), `del_element`, [`delete`](`:gb_sets.delete/2`), [`delete_any`](`:gb_sets.delete_any/2`), `difference`, [`empty`](`:gb_sets.empty/0`), [`filter`](`:gb_sets.filter/2`), [`filtermap`](`:gb_sets.filtermap/2`), [`fold`](`:gb_sets.fold/3`), [`from_list`](`:gb_sets.from_list/1`), [`from_ordset`](`:gb_sets.from_ordset/1`), [`insert`](`:gb_sets.insert/2`), [`intersection`](`:gb_sets.intersection/1`), [`is_disjoint`](`:gb_sets.is_disjoint/2`), `is_element`, [`is_empty`](`:gb_sets.is_empty/1`), [`is_equal`](`:gb_sets.is_equal/2`), [`is_member`](`:gb_sets.is_member/2`), [`is_set`](`:gb_sets.is_set/1`), [`is_subset`](`:gb_sets.is_subset/2`), [`iterator`](`:gb_sets.iterator/1`), [`iterator_from`](`:gb_sets.iterator_from/2`), [`larger`](`:gb_sets.larger/2`), [`largest`](`:gb_sets.largest/1`), [`map`](`:gb_sets.map/2`), [`new`](`:gb_sets.new/0`), [`next`](`:gb_sets.next/1`), [`singleton`](`:gb_sets.singleton/1`), [`size`](`:gb_sets.size/1`), [`smaller`](`:gb_sets.smaller/2`), [`smallest`](`:gb_sets.smallest/1`), [`subtract`](`:gb_sets.subtract/2`), [`take_largest`](`:gb_sets.take_largest/1`), [`take_smallest`](`:gb_sets.take_smallest/1`), [`to_list`](`:gb_sets.to_list/1`), [`union`](`:gb_sets.union/1`)
- `:gb_trees`
  - **Allowed**: [`balance`](`:gb_trees.balance/1`), [`delete`](`:gb_trees.delete/2`), [`delete_any`](`:gb_trees.delete_any/2`), [`empty`](`:gb_trees.empty/0`), [`enter`](`:gb_trees.enter/3`), [`from_orddict`](`:gb_trees.from_orddict/1`), [`get`](`:gb_trees.get/2`), [`insert`](`:gb_trees.insert/3`), [`is_defined`](`:gb_trees.is_defined/2`), [`is_empty`](`:gb_trees.is_empty/1`), [`iterator`](`:gb_trees.iterator/1`), [`iterator_from`](`:gb_trees.iterator_from/2`), [`keys`](`:gb_trees.keys/1`), [`larger`](`:gb_trees.larger/2`), [`largest`](`:gb_trees.largest/1`), [`lookup`](`:gb_trees.lookup/2`), [`map`](`:gb_trees.map/2`), [`next`](`:gb_trees.next/1`), [`size`](`:gb_trees.size/1`), [`smaller`](`:gb_trees.smaller/2`), [`smallest`](`:gb_trees.smallest/1`), [`take`](`:gb_trees.take/2`), [`take_any`](`:gb_trees.take_any/2`), [`take_largest`](`:gb_trees.take_largest/1`), [`take_smallest`](`:gb_trees.take_smallest/1`), [`to_list`](`:gb_trees.to_list/1`), [`update`](`:gb_trees.update/3`), [`values`](`:gb_trees.values/1`)
- `:lists`
  - **Allowed**: [`all`](`:lists.all/2`), [`any`](`:lists.any/2`), [`append`](`:lists.append/1`), [`concat`](`:lists.concat/1`), [`delete`](`:lists.delete/2`), [`droplast`](`:lists.droplast/1`), [`dropwhile`](`:lists.dropwhile/2`), [`duplicate`](`:lists.duplicate/2`), [`enumerate`](`:lists.enumerate/1`), [`filter`](`:lists.filter/2`), [`filtermap`](`:lists.filtermap/2`), [`flatlength`](`:lists.flatlength/1`), [`flatmap`](`:lists.flatmap/2`), [`flatten`](`:lists.flatten/1`), [`foldl`](`:lists.foldl/3`), [`foldr`](`:lists.foldr/3`), [`foreach`](`:lists.foreach/2`), [`join`](`:lists.join/2`), [`keydelete`](`:lists.keydelete/3`), [`keyfind`](`:lists.keyfind/3`), [`keymap`](`:lists.keymap/3`), [`keymember`](`:lists.keymember/3`), [`keymerge`](`:lists.keymerge/3`), [`keyreplace`](`:lists.keyreplace/4`), [`keysearch`](`:lists.keysearch/3`), [`keysort`](`:lists.keysort/2`), [`keystore`](`:lists.keystore/4`), [`keytake`](`:lists.keytake/3`), [`last`](`:lists.last/1`), [`map`](`:lists.map/2`), [`mapfoldl`](`:lists.mapfoldl/3`), [`mapfoldr`](`:lists.mapfoldr/3`), [`max`](`:lists.max/1`), [`member`](`:lists.member/2`), [`merge`](`:lists.merge/1`), [`merge3`](`:lists.merge3/3`), [`min`](`:lists.min/1`), [`nth`](`:lists.nth/2`), [`nthtail`](`:lists.nthtail/2`), [`partition`](`:lists.partition/2`), [`prefix`](`:lists.prefix/2`), [`reverse`](`:lists.reverse/1`), `rkeymerge`, `rmerge`, `rmerge3`, `rukeymerge`, `rumerge`, `rumerge3`, [`search`](`:lists.search/2`), [`seq`](`:lists.seq/2`), [`sort`](`:lists.sort/1`), [`split`](`:lists.split/2`), [`splitwith`](`:lists.splitwith/2`), [`sublist`](`:lists.sublist/2`), [`subtract`](`:lists.subtract/2`), [`suffix`](`:lists.suffix/2`), [`sum`](`:lists.sum/1`), [`takewhile`](`:lists.takewhile/2`), [`ukeymerge`](`:lists.ukeymerge/3`), [`ukeysort`](`:lists.ukeysort/2`), [`umerge`](`:lists.umerge/1`), [`umerge3`](`:lists.umerge3/3`), [`uniq`](`:lists.uniq/1`), [`unzip`](`:lists.unzip/1`), [`unzip3`](`:lists.unzip3/1`), [`usort`](`:lists.usort/1`), `zf`, [`zip`](`:lists.zip/2`), [`zip3`](`:lists.zip3/3`), [`zipwith`](`:lists.zipwith/3`), [`zipwith3`](`:lists.zipwith3/4`)
- `:maps`
  - **Allowed**: [`filter`](`:maps.filter/2`), [`filtermap`](`:maps.filtermap/2`), [`find`](`:maps.find/2`), [`fold`](`:maps.fold/3`), [`foreach`](`:maps.foreach/2`), [`from_keys`](`:maps.from_keys/2`), [`from_list`](`:maps.from_list/1`), [`get`](`:maps.get/2`), [`groups_from_list`](`:maps.groups_from_list/2`), [`intersect`](`:maps.intersect/2`), [`intersect_with`](`:maps.intersect_with/3`), `is_iterator_valid`, [`is_key`](`:maps.is_key/2`), [`iterator`](`:maps.iterator/1`), [`keys`](`:maps.keys/1`), [`map`](`:maps.map/2`), [`merge`](`:maps.merge/2`), [`merge_with`](`:maps.merge_with/3`), [`new`](`:maps.new/0`), [`next`](`:maps.next/1`), [`put`](`:maps.put/3`), [`remove`](`:maps.remove/2`), [`size`](`:maps.size/1`), [`take`](`:maps.take/2`), [`to_list`](`:maps.to_list/1`), [`update`](`:maps.update/3`), [`update_with`](`:maps.update_with/3`), [`values`](`:maps.values/1`), [`with`](`:maps.with/2`), [`without`](`:maps.without/2`)
- `:math`
  - **Allowed**: [`acos`](`:math.acos/1`), [`acosh`](`:math.acosh/1`), [`asin`](`:math.asin/1`), [`asinh`](`:math.asinh/1`), [`atan`](`:math.atan/1`), [`atan2`](`:math.atan2/2`), [`atanh`](`:math.atanh/1`), [`ceil`](`:math.ceil/1`), [`cos`](`:math.cos/1`), [`cosh`](`:math.cosh/1`), [`erf`](`:math.erf/1`), [`erfc`](`:math.erfc/1`), [`exp`](`:math.exp/1`), [`floor`](`:math.floor/1`), [`fmod`](`:math.fmod/2`), [`log`](`:math.log/1`), [`log10`](`:math.log10/1`), [`log2`](`:math.log2/1`), [`pi`](`:math.pi/0`), [`pow`](`:math.pow/2`), [`sin`](`:math.sin/1`), [`sinh`](`:math.sinh/1`), [`sqrt`](`:math.sqrt/1`), [`tan`](`:math.tan/1`), [`tanh`](`:math.tanh/1`), [`tau`](`:math.tau/0`)
- `:orddict`
  - **Allowed**: [`append`](`:orddict.append/3`), [`append_list`](`:orddict.append_list/3`), [`erase`](`:orddict.erase/2`), [`fetch`](`:orddict.fetch/2`), [`fetch_keys`](`:orddict.fetch_keys/1`), [`filter`](`:orddict.filter/2`), [`find`](`:orddict.find/2`), [`fold`](`:orddict.fold/3`), [`from_list`](`:orddict.from_list/1`), [`is_empty`](`:orddict.is_empty/1`), [`is_key`](`:orddict.is_key/2`), [`map`](`:orddict.map/2`), [`merge`](`:orddict.merge/3`), [`new`](`:orddict.new/0`), [`size`](`:orddict.size/1`), [`store`](`:orddict.store/3`), [`take`](`:orddict.take/2`), [`to_list`](`:orddict.to_list/1`), [`update`](`:orddict.update/3`), [`update_counter`](`:orddict.update_counter/3`)
- `:ordsets`
  - **Allowed**: [`add_element`](`:ordsets.add_element/2`), [`del_element`](`:ordsets.del_element/2`), [`filter`](`:ordsets.filter/2`), [`filtermap`](`:ordsets.filtermap/2`), [`fold`](`:ordsets.fold/3`), [`from_list`](`:ordsets.from_list/1`), [`intersection`](`:ordsets.intersection/1`), [`is_disjoint`](`:ordsets.is_disjoint/2`), [`is_element`](`:ordsets.is_element/2`), [`is_empty`](`:ordsets.is_empty/1`), [`is_equal`](`:ordsets.is_equal/2`), [`is_set`](`:ordsets.is_set/1`), [`is_subset`](`:ordsets.is_subset/2`), [`map`](`:ordsets.map/2`), [`new`](`:ordsets.new/0`), [`size`](`:ordsets.size/1`), [`subtract`](`:ordsets.subtract/2`), [`to_list`](`:ordsets.to_list/1`), [`union`](`:ordsets.union/1`)
- `:proplists`
  - **Allowed**: [`append_values`](`:proplists.append_values/2`), [`compact`](`:proplists.compact/1`), [`delete`](`:proplists.delete/2`), [`expand`](`:proplists.expand/2`), [`from_map`](`:proplists.from_map/1`), [`get_all_values`](`:proplists.get_all_values/2`), [`get_bool`](`:proplists.get_bool/2`), [`get_keys`](`:proplists.get_keys/1`), [`get_value`](`:proplists.get_value/2`), [`is_defined`](`:proplists.is_defined/2`), [`lookup`](`:proplists.lookup/2`), [`lookup_all`](`:proplists.lookup_all/2`), [`normalize`](`:proplists.normalize/2`), [`property`](`:proplists.property/1`), [`split`](`:proplists.split/2`), [`substitute_aliases`](`:proplists.substitute_aliases/2`), [`substitute_negations`](`:proplists.substitute_negations/2`), [`to_map`](`:proplists.to_map/1`), [`unfold`](`:proplists.unfold/1`)
- `:queue`
  - **Allowed**: [`all`](`:queue.all/2`), [`any`](`:queue.any/2`), [`cons`](`:queue.cons/2`), [`daeh`](`:queue.daeh/1`), [`delete`](`:queue.delete/2`), [`delete_r`](`:queue.delete_r/2`), [`delete_with`](`:queue.delete_with/2`), [`delete_with_r`](`:queue.delete_with_r/2`), [`drop`](`:queue.drop/1`), [`drop_r`](`:queue.drop_r/1`), [`filter`](`:queue.filter/2`), [`filtermap`](`:queue.filtermap/2`), [`fold`](`:queue.fold/3`), [`from_list`](`:queue.from_list/1`), [`get`](`:queue.get/1`), [`get_r`](`:queue.get_r/1`), [`head`](`:queue.head/1`), [`in`](`:queue.in/2`), [`in_r`](`:queue.in_r/2`), [`init`](`:queue.init/1`), [`is_empty`](`:queue.is_empty/1`), [`is_queue`](`:queue.is_queue/1`), [`join`](`:queue.join/2`), [`lait`](`:queue.lait/1`), [`last`](`:queue.last/1`), [`len`](`:queue.len/1`), [`liat`](`:queue.liat/1`), [`member`](`:queue.member/2`), [`new`](`:queue.new/0`), [`out`](`:queue.out/1`), [`out_r`](`:queue.out_r/1`), [`peek`](`:queue.peek/1`), [`peek_r`](`:queue.peek_r/1`), [`reverse`](`:queue.reverse/1`), [`snoc`](`:queue.snoc/2`), [`split`](`:queue.split/2`), [`tail`](`:queue.tail/1`), [`to_list`](`:queue.to_list/1`)
- `:rand`
  - **Allowed**: `bc64`, [`bytes`](`:rand.bytes/1`), [`bytes_s`](`:rand.bytes_s/2`), [`export_seed`](`:rand.export_seed/0`), [`export_seed_s`](`:rand.export_seed_s/1`), `exro928_jump_2pow20`, `exro928_jump_2pow512`, `exro928_next`, `exro928_next_state`, `exro928_seed`, [`exsp_jump`](`:rand.exsp_jump/1`), [`exsp_next`](`:rand.exsp_next/1`), `float2str`, `format_jumpconst58`, [`jump`](`:rand.jump/0`), `make_float`, [`mwc59`](`:rand.mwc59/1`), [`mwc59_float`](`:rand.mwc59_float/1`), [`mwc59_seed`](`:rand.mwc59_seed/0`), [`mwc59_value`](`:rand.mwc59_value/1`), [`mwc59_value32`](`:rand.mwc59_value32/1`), [`normal`](`:rand.normal/0`), [`normal_s`](`:rand.normal_s/1`), [`seed`](`:rand.seed/1`), `seed58`, [`seed_s`](`:rand.seed_s/1`), [`splitmix64_next`](`:rand.splitmix64_next/1`), [`uniform`](`:rand.uniform/0`), [`uniform_real`](`:rand.uniform_real/0`), [`uniform_real_s`](`:rand.uniform_real_s/1`), [`uniform_s`](`:rand.uniform_s/1`)
- `:string`
  - **Allowed**: [`casefold`](`:string.casefold/1`), [`centre`](`:string.centre/2`), [`chars`](`:string.chars/2`), [`chomp`](`:string.chomp/1`), [`chr`](`:string.chr/2`), [`concat`](`:string.concat/2`), [`copies`](`:string.copies/2`), [`cspan`](`:string.cspan/2`), [`equal`](`:string.equal/2`), [`find`](`:string.find/2`), [`is_empty`](`:string.is_empty/1`), [`jaro_similarity`](`:string.jaro_similarity/2`), [`join`](`:string.join/2`), [`left`](`:string.left/2`), [`len`](`:string.len/1`), [`length`](`:string.length/1`), [`lexemes`](`:string.lexemes/2`), `list_to_float`, `list_to_integer`, [`lowercase`](`:string.lowercase/1`), [`next_codepoint`](`:string.next_codepoint/1`), [`next_grapheme`](`:string.next_grapheme/1`), [`nth_lexeme`](`:string.nth_lexeme/3`), [`pad`](`:string.pad/2`), [`prefix`](`:string.prefix/2`), [`rchr`](`:string.rchr/2`), [`replace`](`:string.replace/3`), [`reverse`](`:string.reverse/1`), [`right`](`:string.right/2`), [`rstr`](`:string.rstr/2`), [`slice`](`:string.slice/2`), [`span`](`:string.span/2`), [`split`](`:string.split/2`), [`str`](`:string.str/2`), [`strip`](`:string.strip/1`), [`sub_string`](`:string.sub_string/2`), [`sub_word`](`:string.sub_word/2`), [`substr`](`:string.substr/2`), [`take`](`:string.take/2`), [`titlecase`](`:string.titlecase/1`), [`to_float`](`:string.to_float/1`), [`to_graphemes`](`:string.to_graphemes/1`), [`to_integer`](`:string.to_integer/1`), [`to_lower`](`:string.to_lower/1`), [`to_upper`](`:string.to_upper/1`), [`tokens`](`:string.tokens/2`), [`trim`](`:string.trim/1`), [`uppercase`](`:string.uppercase/1`), [`words`](`:string.words/1`)
- `:zlib`
  - **Allowed**: [`compress`](`:zlib.compress/1`), [`gunzip`](`:zlib.gunzip/1`), [`gzip`](`:zlib.gzip/1`), [`uncompress`](`:zlib.uncompress/1`), [`unzip`](`:zlib.unzip/1`), [`zip`](`:zlib.zip/1`)
  - **Restricted**: [~~`close`~~](`:zlib.close/1`), [~~`deflate`~~](`:zlib.deflate/2`), [~~`deflateEnd`~~](`:zlib.deflateEnd/1`), [~~`deflateInit`~~](`:zlib.deflateInit/1`), [~~`deflateParams`~~](`:zlib.deflateParams/3`), [~~`deflateReset`~~](`:zlib.deflateReset/1`), [~~`deflateSetDictionary`~~](`:zlib.deflateSetDictionary/2`), [~~`inflate`~~](`:zlib.inflate/2`), [~~`inflateEnd`~~](`:zlib.inflateEnd/1`), [~~`inflateGetDictionary`~~](`:zlib.inflateGetDictionary/1`), [~~`inflateInit`~~](`:zlib.inflateInit/1`), [~~`inflateReset`~~](`:zlib.inflateReset/1`), [~~`inflateSetDictionary`~~](`:zlib.inflateSetDictionary/2`), ~~`on_load`~~, [~~`open`~~](`:zlib.open/0`), [~~`safeInflate`~~](`:zlib.safeInflate/2`), [~~`set_controlling_process`~~](`:zlib.set_controlling_process/2`)

# `ensure_alias_atoms`

# `fun_status`

Implements `c:Dune.Allowlist.fun_status/3`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
