Compatibility with `ad`
I have been trying to use this package with nonlinear-optimization and ad for maximum likelihood computations, however this is highly non-practical since distributions always return Double -> Double and ad needs some kind of polymorphic interface to work. Are there any barriers for such a polymorphic interface?
One problem I see is the need for different contraints depending on the distribution (Erf for Normal, Num for others).
Unfortunately there are. Mostly because some distributions use functions like (incomplete) beta/gamma functions. Current implementations in math-functions are specialized to Doubles and making them generic is a lot of work.
To make matter more complicated there are also efficiency concerns. For example for incomplete beta/gamma functions derivative exist in closed form and could be calculated very cheaply without using all complicated approximations.