runInference :: InferenceState (TEContext a, TypeExpr) -> Maybe (TEContext a, TypeExpr)
runInference state = case runStateT state [] of
                          Just ((c,t),_) -> Just (c,t)
                          Nothing -> Nothing
runInference :: InferenceState (TEContext a, TypeExpr) -> Maybe (TEContext a, TypeExpr)
runInference state = case runStateT state [] of
                          Just ((c,t),_) -> Just (c,t)
                          Nothing -> Nothing
runInference state = case runStateT state [] of
                          Just ((c,t),_) -> Just (c,t)
                          Nothing -> Nothing