title: Haskell static computation
body: <p>I was reading the "<a href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.22.7806" rel="nofollow">Fun with functional dependencies</a>" </p>
  
  <p>This part is said to statically computed ie performed at the compile time</p>
  
  <pre><code>data Nat = Zero | Succ Nat
  three = Succ(Succ(Succ Zero)))
  even Zero = True
  even (Succ n) = odd n
  odd Zero = False
  odd (Succ n) = even n
  
  (odd three)
  </code></pre>
  
  <p>But I don't quite get what would be statically computed. And I also don't find anything unusual the compiler to compute to check types</p>