title: parse error (possibly incorrect indentation)
body: <p>I am getting following error can any one explain me what is wrong with the code.</p>
  
  <pre><code>105:0: parse error (possibly incorrect indentation)
  </code></pre>
  
  <p>This is the code:</p>
  
  <pre><code>-- Type inference for expressions
  --
  tyInf :: Gamma -&gt; Exp -&gt; TC (Exp, Type, Subst)
  tyInf g (Num n) =  return (Num n, intTyCon, [([intId], intTyCon)])
  tyInf g (Con tag[])   
    | tag == unitTag  = return (Con tag[],unitTyCon,[([unitId], unitTyCon)])
    | tag == falseTag = return (Con tag[], boolTyCon, [([boolId],boolTyCon)])
    | tag == trueTag  = return (Con tag[],boolTyCon, [([boolId],boolTyCon)])
    | otherwise       = error "unknown constructor"
  
  tyInf g (Con tag [ e1, e2]) | tag == pairTag = do       
    return ( (Con tag [ e1, e1], (mkPairTy (tyInf g e1) (tyInf g e2)), 
      [([pairId], (mkPairTy (tyInf g e1) (tyInf g e2)))])
  
  -- ---------------------------------------------------------------------
  -- The type for a unifier. A value of this type maps free
  -- type variables to real types.
  --
  -- You may change this type if you wish. The following is
  -- one possible type, though not necessarily the best.
  --
  type Subst = [([TyVar], Type)] -- &lt;--- This is line 105
  
  -- --------------------------------------------------------------------
  -- Unification
  --
  unify :: Type -&gt; Type -&gt; Subst
  unify t1 t2 
    | t1 == t2  =  []
    | otherwise  =  [(tyVarsIn t1, t2)]
  </code></pre>