Advanced Functional Programming with Elixir: equality check should reside in a value object

Title: Advanced Functional Programming with Elixir (page 21)
Example: Programming Flutter: ‘pub get’ command not working (page 15)

Hi,

I feel that in a large codebase (i.e. outside of a textbook) equality check should be a part of value object’s module:

I.e.

 FastPass.eq_time(fast_pass_a, fast_pass_b)

instead of

 has_eq_time = FunPark.FastPass.eq_time()
 FunPark.Eq.Utils.eq?(fast_pass_a, fast_pass_b, has_eq_time)

The eq_time could then call FunPark.Eq.Utils.eq?

def eq_time(fast_pass_a, fast_pass_b) do
  has_eq_time = Eq.Utils.contramap(&get_time/1)# is this a correct variable name?
  FunPark.Eq.Utils.eq?(fast_pass_a, fast_pass_b, has_eq_time)
end

Is this something that you’d consider doing?