<commit_before>import Elixir.Builtin, except: [raise: 1, raise: 2]

defmodule Elixir.Builtin do
  @moduledoc """
  `Elixir.Builtin` provides the default macros and functions
  Elixir imports to your environment. Those macros and functions
  can be skipped or cherry-picked via the import function. For
  instance, if you want to tell Elixir to not import the `case`
  macro, you can do:

      import Elixir.Builtin, except: [case: 2]

  Elixir also has special forms that are always imported and
  cannot be skipped. These are described in `Elixir.SpecialForms`.
  """

  @doc """
  Defines a module given by name with the given contents.

  ## Examples

      defmodule Foo do
        def bar, do: :baz
      end

      Foo.bar #=> :baz

  ## Nesting

  Nesting a module inside the other does not affect its name:

      defmodule Foo do
        defmodule Bar do
        end
      end

  In the example above, two modules `Foo` and `Bar`. Notice that
  the second module is **not** called `Foo.Bar`. In general,
  nesting modules is discouraged in Elixir.

  ## Dynamic names

  Elixir module names can be dynamically generated. This is very
  useful for macros. For instance, one could write:

      defmodule binary_to_atom("Foo\#{1}", :utf8) do
        # contents ...
      end

  Elixir will accept any module name as long as the expression
  returns an atom.
  """
  defmacro defmodule(name, do: contents)

  @doc """
  Defines a function with the given name and contents.

  ## Examples

      defmodule Foo do
        def bar, do: :baz
      end

      Foo.bar #=> :baz<commit_msg>Fix nesting docs, closes #217.<commit_after>import Elixir.Builtin, except: [raise: 1, raise: 2]

defmodule Elixir.Builtin do
  @moduledoc """
  `Elixir.Builtin` provides the default macros and functions
  Elixir imports to your environment. Those macros and functions
  can be skipped or cherry-picked via the import function. For
  instance, if you want to tell Elixir to not import the `case`
  macro, you can do:

      import Elixir.Builtin, except: [case: 2]

  Elixir also has special forms that are always imported and
  cannot be skipped. These are described in `Elixir.SpecialForms`.
  """

  @doc """
  Defines a module given by name with the given contents.

  ## Examples

      defmodule Foo do
        def bar, do: :baz
      end

      Foo.bar #=> :baz

  ## Nesting

  Nesting a module inside the other affects its name:

      defmodule Foo do
        defmodule Bar do
        end
      end

  In the example above, two modules `Foo` and `Foo.Bar`. The
  second can be accessed as `Bar` inside `Foo` in the same
  lexical scope. If the module Bar is moved away to another
  file, it needs to be referenced via the full name or a
  reference need to be set with the help of `refer/2`.

  ## Dynamic names

  Elixir module names can be dynamically generated. This is very
  useful for macros. For instance, one could write:

      defmodule binary_to_atom("Foo\#{1}", :utf8) do
        # contents ...
      end

  Elixir will accept any module name as long as the expression
  returns an atom.
  """
  defmacro defmodule(name, do: contents)

  @doc """
  Defines a function with the given name and contents.

  ## Examples

      defmodule Foo do
        def bar, do: :baz
      end

      Foo.bar #=> :baz
{'fraction_non_alphanumeric': 0.07248565388100271, 'fraction_numerical': 0.004228329809725159, 'mean_word_length': 2.733934611048478, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7181840', 'n_tokens_mistral': 1044, 'n_tokens_neox': 947, 'n_words': 449}