statistics icon indicating copy to clipboard operation
statistics copied to clipboard

Add newtype wrappers to fix scale/rate confusion

Open Shimuuar opened this issue 10 years ago • 1 comments

We have several functions which could take either scale or rate parameter. For example exponential distribution. I can never remember which should be used. I think we shold use type system to encode which kind of parameter should be used. It's also conveninent to be able to pass either rate or scale parameter. So I propose following design:

newtype Rate = Rate Double
newtype Scale = Scale Double

class RateOrScale a where
  toRateParameter :: a → Double
  toScaleParameter :: a → Double

Name of type class is hmm... not ideal.

Shimuuar avatar Feb 01 '15 12:02 Shimuuar

another option is:

data RateOrScale {- or any better name -}
  = Rate Double
  | Scale Double

Shimuuar avatar Nov 17 '16 10:11 Shimuuar