This language bar is your friend. Select your favorite languages!

Idiom #114 Test deep equality

Set boolean b to true if objects x and y contain the same values, recursively comparing all referenced elements in x and y.
Tell if the code correctly handles recursive types.

(def b (identical? x y))
(def b (= x y))
b = deeplyEqual(x, y));
b = x == y
import "reflect"
b := reflect.DeepEqual(x, y)
b = x == y
const b = JSON.stringify(x) === JSON.stringify(y);
$b = ($x == $y);
use Data::Compare;
my $b = Compare($x, $y);
b = x == y
b = x == y
let b = x == y;
case class A(a: Int, b: Float, c: String)
val x = A(1,2.2f,"hello")
val y = A(1,2.2f,"hello")

b = x == y 

Do you know the best way to do this in your language ?
New implementation...

Idiom created by