Daniel, you are still using a Dict of params, which kills type inference. Pass parameters directly or put them in (typed) fields of a composite type.
(On the other hand, common misconception: there is no performance need to declare the types of function arguments.)
