weedStatement :: Statement -> WeedError
weedStatement (LocalVar (TV typeName name info) value)
  | identifierInExpr name value = Just $ "Variable assignment cannot reference itself" ++ show info
  | isJust exprError = exprError
  | otherwise = Nothing
  where exprError = weedExpression value
weedStatement :: Statement -> WeedError
weedStatement (LocalVar (TV typeName name info) value)
  | identifierInExpr name value = Just $ "Variable assignment cannot reference itself" ++ show info
  | isJust exprError = exprError
  | otherwise = Nothing
  where exprError = weedExpression value
weedStatement (LocalVar (TV typeName name info) value)
  | identifierInExpr name value = Just $ "Variable assignment cannot reference itself" ++ show info
  | isJust exprError = exprError
  | otherwise = Nothing
  where exprError = weedExpression value