This document provides an overview of probabilistic programming in Scala. It discusses how probabilistic programming languages (PPLs) unify general purpose programming with probabilistic modeling. Functional PPLs extend the idea that any function operating on values can also operate on probability distributions. The document outlines how a PPL for Scala could be implemented by extending core functions like Boolean operations to work on distributions, and developing probabilistic data structures like lists and graphs. Examples are given for modeling boolean formulas, hidden Markov models, social networks, and dice problems to demonstrate the capabilities of a functional PPL in Scala.