{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-} module Data.Random.Distribution.Categorical.Util () where import Data.Maybe (fromMaybe) import Data.Random.Distribution (PDF, pdf) import Data.Random.Distribution.Categorical (Categorical, toList) import Data.Tuple (swap) instance Eq a => PDF (Categorical Double) a where pdf cat a = fromMaybe 0 (lookup a $ map swap $ toList cat)