<div dir="ltr">I'm having some problems with Numeric.AD (translation, things are not working for reason that I don't understand).  Note I don't have much experience with this package, so these are newbie questions, thus appropriate answers may involve pointing me to a document somewhere out there on the net.<div><br></div><div>Anyway,  here is my problem:</div><div><br></div><div>I have a function (call it f x theta) which I have defined purely in terms of basic arithmetic functions  (+/-/(/)/*/**) glued together using standard applicative functor operations has type</div><div><br></div><div>f  :: m1 (m2 Double) -> m3 Double -> Double</div><div>f x theta = ...</div><div><br></div><div>m1 m2 and m3 are all Traversable.</div><div>f is defined purely in terms of basic arithmetic operations, (+/-/(/)/*/**) glued together using standard applicative functor operations, and m1 m2 and m3 are all pretty trivial record types (no recursion, even).</div><div><br></div><div>I would like to write</div><div><br></div><div>df x theta = grad (f x) theta</div><div><br></div><div>But it refuses to type, even though (admittedly quite a lot) simpler versions do.</div><div><br></div><div>So what am I missing? Does AD not go through Applicative?  That seems unlikely to me.</div><div><br></div><div>Any advice / suggestions, etc. gratefully received.</div><div><br></div><div>Sean Matthews</div><div><br></div><div><br></div><div><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">Sean Matthews<br><a href="mailto:seanmatthews1@gmail.com" target="_blank">seanmatthews1@gmail.com</a> / +49 1515 800 1901</div></div></div></div></div></div>
</div></div>