<div dir="ltr">I found strange behavior, see code below.<div><br></div><div>why last match doesn't works ?</div><div><br></div><div><br></div><div>```main.erl</div><div>#!/usr/bin/env escript<br>-module(main).<br><br>-mode(compile).<br>-compile(export_all).<br><br>xy() -><br>    #{ 160506610  => x, 3960650446 => y }.<br><br>x() -><br>    #{ 160506610  => x }.<br><br>y() -><br>    #{ 3960650446 => y }.<br><br>xy2() -><br>    #{ 888888888  => x, 9999999999 => y }.<br><br>main(_) -><br>    #{ 160506610  := x } = xy(), % ok<br>    #{ 3960650446 := y } = xy(), % ok<br><br>    #{ 160506610  := x } = x(), % ok<br>    #{ 3960650446 := y } = y(), % ok<br><br><br>    #{ 888888888  := x,<br>       9999999999 := y<br>     } = xy2(), % ok<br><br><br>    #{ 160506610  := x,<br>       3960650446 := y<br>     } = xy(), % no match of right hand side value, WHY ??<br><br>    ok.<br></div><div>```</div><div><br></div><div>Erlang: Erlang/OTP 22 [erts-10.4] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe]<br></div><div>OS: Ubuntu 19.04 disco</div></div>