Hi Andrew (Bromage),<br><br>       I reversed the  parameter order to Data.Map.lookup and calling fromJust to pull out value from Maybe wrapper ... all as you suggested:<br><br>&gt; remLookupFwd :: (ReVars m t) =&gt; SimplRe t -&gt; ReM m t (ReInfo t)<br>
&gt; remLookupFwd re<br>&gt;   = do fwd &lt;- gets resFwdMap<br>&gt;        let { Just reinfo = fromJust(M.lookup re fwd) }                    -- PROBLEM<br>&gt;        return reinfo<br><br><br>I am still getting a type mismatch:<br>
<br><br>Swish\HaskellRDF\Dfa\Dfa.lhs:162:29:<br>    Couldn&#39;t match expected type `Maybe t&#39;<br>           against inferred type `ReInfo t1&#39;<br>    In the expression: fromJust (M.lookup re fwd)<br>    In a pattern binding: Just reinfo = fromJust (M.lookup re fwd)<br>
    In the expression:<br>        do fwd &lt;- gets resFwdMap<br>           let Just reinfo = fromJust (M.lookup re fwd)<br>           return reinfo<br><br>Vasili<br>