Symbolic differentiation library in Haskell