Cannot compile Erlang dependency in an Elixir project

Hi,
I am using the following versions on Windows 10:
Erlang/OTP 27 [erts-15.1] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit:ns]
Elixir 1.18.4 (compiled with Erlang/OTP 27)

My Elixir project uses the following Erlang dependency (a hex package):
{:egd24, “~> 0.10”}

Unfortunately when I compile the egd24 dependency, I get a bbmustache compile error:
mix deps.compile egd24
===> Analyzing applications…
===> Compiling string_compat
===> Compiling bbmustache
===> Compiling _build/default/plugins/bbmustache/src/bbmustache.erl failed

 | _build/default/plugins/bbmustache/src/bbmustache.erl:
 |
 |  -spec check_data_type(data() | term()) -> boolean() | maybe.
 |                                                                    syntax error before: 'maybe'

 | _build/default/plugins/bbmustache/src/bbmustache.erl:
 |
 |  check_data_type([])                               -> maybe;
 |                                                                     syntax error before: ';'


 | _build/default/plugins/bbmustache/src/bbmustache.erl:
 |
 |      case check_data_type(Data) of
 |                 function check_data_type/1 undefined

 | _build/default/plugins/bbmustache/src/bbmustache.erl:
 |
 |      case check_data_type(Value) of
 |                 function check_data_type/1 undefined

 | _build/default/plugins/bbmustache/src/bbmustache.erl:
 |
 |      case check_data_type(Data) =:= true andalso find_data(convert_keytype(Key, State), Data) of
 |                function check_data_type/1 undefined

Note: I believe compiling this under OTP 26 works.
I do not know Erlang, but can it be that the error is due to maybe becoming a reserved word in OTP 27???

Any help appreciated…

Thanks :slight_smile:

Use ‘maybe’ instead!

1 Like

Yes, exactly. You need a newer version of egd24, one that supports OTP27+.

Sadly, it looks like that library was not updated past OTP24. Maybe you can submit a PR there or open an issue.