• Given an equality function elemEquals and two trees aTree1 and aTree2, returns a boolean telling if the two trees are equal according to this equality function. This function is curried on its first parameter

    Parameters

    • elemEquals: ((a: any, b: any) => boolean) = ...

      an equality function for elements

        • (a, b): boolean
        • Parameters

          • a: any
          • b: any

          Returns boolean

    Returns ((a: TreeI<any>, b: TreeI<any>) => boolean)

    • an equality function for trees of elements
      • (a, b): boolean
      • Parameters

        Returns boolean

    treeEquals()(leaf(1), leaf(1)) // -> true
    treeEquals()(leaf(1), leaf(3)) // -> false
    treeEquals((a,b) => (a-b)%2 === 0)(leaf(1), leaf(3)) // -> true