#{o := 0} = maps:put(o, 0, maps:new()).
Знак =>
используется для создания пары ключей значения, знак :=
работы по существующему ключу. поэтому предыдущее выражение справедливо для сопоставления с образцом, и для сравнения справедливо следующее: обе стороны сравнения эквивалентны:
#{o => 0} == maps:put(o, 0, maps:new()).
1> #{o := 0} = #{o => 0,i => 1}. % will match
#{i => 1,o => 0}
2> #{o := 0} = #{o => 2,i => 1}. % will not match
** exception error: no match of right hand side value #{i => 1,o => 2}
3> #{o => 0} == #{o => 0,i => 1}. % is false
false
3>