{-# LANGUAGE RankNTypes, BangPatterns #-} {-# OPTIONS -W #-} module Types where import Sampler (Sampler) import Data.Dynamic -- Basic types for conditioning and conditioned sampler data Cond = Unconditioned | Lebesgue !Dynamic | Discrete !Dynamic deriving (Show) newtype CSampler a = CSampler (Cond -> Sampler a)