Probabilistic Programming and Data Structures