Tool for type-driven implementation inference for Haskell functions