interface BinaryTreeNode<T> {
value: T;
left: BinaryTreeNode<T> | null;
right: BinaryTreeNode<T> | null;
}
const BTree = Data.case<BinaryTreeNode<number>>()
const tree_2 = BTree({ value: 0, left: { value: 1, left: null, right: null }, right: null })
const tree_3 = BTree({ value: 0, left: { value: 1, left: null, right: null }, right: null })
Effect.runSync(Console.log(Equal.equals(tree_2, tree_3))) // false
interface BinaryTreeNode<T> {
value: T;
left: BinaryTreeNode<T> | null;
right: BinaryTreeNode<T> | null;
}
const BTree = Data.case<BinaryTreeNode<number>>()
const tree_2 = BTree({ value: 0, left: { value: 1, left: null, right: null }, right: null })
const tree_3 = BTree({ value: 0, left: { value: 1, left: null, right: null }, right: null })
Effect.runSync(Console.log(Equal.equals(tree_2, tree_3))) // false