title: When to use Data.Coerce?
body: <p>In the <code>inline-c</code> package, there's an <a href="https://hackage.haskell.org/package/inline-c-0.9.1.4/src/examples/gsl-ode.hs" rel="nofollow noreferrer">example</a> calling the C library GNU Scientific Library <code>gsl</code> from Haskell.</p>
  <pre><code>solveOde fun x0 f0 xend =
    coerce $ solveOdeC (coerce fun) (coerce x0) (coerce f0) (coerce xend)
  </code></pre>
  <p>I'm trying to wrap more of <code>gsl</code> in Haskell and I try to understand every line of the example code. So why it uses <code>Data.Coerce</code> here?</p>