Whilst I&#x27;ve found Hindley-Milner systems much nicer to use than, e.g. Java, they can still require boilerplate and &quot;creative&quot; workaround which wouldn&#x27;t be necessary in dynamically typed languages.<p>For example, I&#x27;ve recently been struggling with a Haskell library that makes heavy use of `TypeRep` values, which is fine when everything&#x27;s done in a single process invocation, but very awkward when attempting to serialise&#x2F;deserialise (e.g. to pass data between processes, or to suspend a computation and resume it later)