Iteração em várias listas no SML

Estou tendo duas listas em SML, digamos, listar A[(a,b,c),(d,e,f)] e lista B[b,e]. Eu quero contar quantas ocorrências de cada item em B que corresponde ao segundo elemento de cada triplo em A. A saída deve ser 2. Porqueb ee cada um ocorre uma vez em A.

Este é o meu código até agora, mas o meu contador é sempre definido como 0 quando eu passar de um elemento para outro em B. Eu sei que em Java isso será apenas um simples duplo para loop.

fun number_in_months (d : (int * int * int ) list, m : (int) list) = 
    if null m then 0 
    else if null d then number_in_months(d, tl m)
    else if (#2(hd d)) = (hd m) then 1 + number_in_months (tl d, m)
    else number_in_months(tl d, m)

questionAnswers(2)

yourAnswerToTheQuestion