lib/spark_lint/rule.ex
defmodule SparkLint.Rule do
@moduledoc """
Behaviour that every lint rule must implement.
A rule receives a compiled module and a `SparkLint.Context` and returns
either a (possibly empty) list of violations or an error tuple.
"""
@callback check(module :: module(), context :: SparkLint.Context.t()) ::
{:ok, [SparkLint.Violation.t()]} | {:error, term()}
end