     }
   end
 
-  # single pipe, left operand is 0-arity local function, zero arity functions allowed
   defp traverse({:|>, _, [{{:., _, _}, _, []}, _]} = ast, {true, issues}, _, true) do
     {ast, {false, issues}}
   end
 
-  # single pipe, zero arity functions allowed, covers 2 cases
-  # - left operand is 0-arity foreign function
-  # - left operand is anonymous function
   defp traverse({:|>, _, [{fun, _, []}, _]} = ast, {true, issues}, _, true) when is_atom(fun) do
     {ast, {false, issues}}
   end
 
-  # single-pipe, left operand is not a function
   defp traverse({:|>, meta, _} = ast, {true, issues}, issue_meta, true) do
     {
       ast,

    issue_meta = IssueMeta.for(source_file, params)

    allow_0_arity_functions = Params.get(params, :allow_0_arity_functions, __MODULE__)



    {_continue, issues} =
      Credo.Code.prewalk(

    issues
  end

  defp traverse({:|>, _, [{:|>, _, _} | _]} = ast, {_, issues}, _, _) do
    {ast, {false, issues}}
  end

  defp traverse({:|>, meta, _} = ast, {true, issues}, issue_meta, false) do
    {
      ast,
