title: Illegal type signature in instance declaration
body: <p>I'm getting the Illegal type signature in instance declaration error and I have no idea why it is popping up for my program. Indentation seems right, etc.
  I hope you can help me.</p>
  
  <pre><code>class Game g s | g -&gt; s where
    findPossibleMoves :: Player -&gt; g -&gt; [(s,g)]
    identifyWinner :: g -&gt; Player -&gt; Maybe Player
  
  instance Game HForest HStrategy where
    identifyWinner :: HForest -&gt; Player -&gt; Maybe Player
    identifyWinner ts p = getWinner $ getLeaves ts
  
    findPossibleMoves :: Player -&gt; HForest -&gt; [(HStrategy, HForest)]
    findPossibleMoves p ts = map (\s -&gt; (s,move s ts)) $ getStrategies p ts
  </code></pre>
  
  <p>The error is : </p>
  
  <pre><code>Illegal type signature in instance declaration:
    findPossibleMoves :: Player -&gt; HForest -&gt; [(HStrategy, HForest)]
  (Use InstanceSigs to allow this)
  In the instance declaration for `Game HForest HStrategy'
  </code></pre>