Hi, I am trying to get the function showMinProp to return String, but I always get an error of parse error (possibly incorrect indentation)<br>Who can help with this? any idea? <br>Thank u in advance!<br> <br>data Prop<br>
  = Var String<br>  | Negation Prop<br>  | BinOp Op Prop Prop<br><br>data Op = And | Or | Implies | Equiv<br>               derived Eq<br><br>showOp :: Op -&gt; String<br>showOp And      = &quot;&amp;&quot;<br>showOp Or       = &quot;|&quot;<br>
showOp Implies  = &quot;=&gt;&quot;<br>showOp Equiv    = &quot;&lt;=&gt;&quot;<br><br>instance Show Op where show = showOp<br><br>precList = [(And,4),(Or,3),(Implies,2),(Equiv,1)]<br>showProp :: Prop -&gt; String<br>showProp (Var s) = s<br>
showProp (Negation p) = &quot;~&quot; ++ showProp p<br>showProp (BinOp op p q) = paren (showProp a p ++ space (showOp op) ++ showProp a q)<br><br>showMinProp :: Int -&gt; Prop -&gt; String<br>showMinProp preNo (BinOp op p q) =<br>
       case op of<br>         And -&gt; let a = 4<br>         Or  -&gt; let a = 3<br>         Implies -&gt; let a = 2<br>         Equiv   -&gt; let a = 1<br>       if (a &gt; preNo) <br>         then (showMinProp a p  ++ space (showOp op) ++ showMinProp a q)<br>
         else paren (showMinProp a p ++ space (showOp op) ++ showMinProp a q))<br><br>space s = &quot; &quot; ++ s ++ &quot; &quot;<br>paren s = &quot;(&quot; ++ s ++ &quot;)&quot;<br><br>instance Show Prop where show = showProp<br>
<br>