lib/formula/function.ex

defmodule Formula.Function do
  @moduledoc """
  Represents the function
  """

  alias Formula.Symbol

  @type t :: %__MODULE__{
          name: atom(),
          arguments: list(Symbol.t())
        }

  defstruct [:name, :arguments]

  @spec new(atom(), list(Symbol.t())) :: t()
  def new(name, arguments) do
    %__MODULE__{name: name, arguments: arguments}
  end
end