@@ -68,8 +68,8 @@ evalTransGraphRelationalExpr (Join exprA exprB) graph = do
68 exprB' <- evalTransGraphRelationalExpr exprB graph
68 exprB' <- evalTransGraphRelationalExpr exprB graph
69 pure (Join exprA' exprB')
69 pure (Join exprA' exprB')
70evalTransGraphRelationalExpr (Rename attrName1 attrName2 expr) graph = do
70evalTransGraphRelationalExpr (Rename attrName1 attrName2 expr) graph = do
71− expr' <- evalTransGraphRelationalExpr expr graph
71+ let expr' = evalTransGraphRelationalExpr expr graph
72− pure (Rename attrName1 attrName2 expr')
72+ Rename attrName1 attrName2 <$> expr'
73evalTransGraphRelationalExpr (Difference exprA exprB) graph = do
73evalTransGraphRelationalExpr (Difference exprA exprB) graph = do
74 exprA' <- evalTransGraphRelationalExpr exprA graph
74 exprA' <- evalTransGraphRelationalExpr exprA graph
75 exprB' <- evalTransGraphRelationalExpr exprB graph
75 exprB' <- evalTransGraphRelationalExpr exprB graph
@@ -79,8 +79,8 @@ evalTransGraphRelationalExpr (Group transAttrNames attrName expr) graph = do
79 attrNames <- evalTransAttributeNames transAttrNames graph
79 attrNames <- evalTransAttributeNames transAttrNames graph
80 pure (Group attrNames attrName expr')
80 pure (Group attrNames attrName expr')
81evalTransGraphRelationalExpr (Ungroup attrName expr) graph = do
81evalTransGraphRelationalExpr (Ungroup attrName expr) graph = do
82− expr' <- evalTransGraphRelationalExpr expr graph
82+ let expr' = evalTransGraphRelationalExpr expr graph
83− pure (Ungroup attrName expr')
83+ Ungroup attrName <$> expr'
84evalTransGraphRelationalExpr (Restrict predicateExpr expr) graph = do
84evalTransGraphRelationalExpr (Restrict predicateExpr expr) graph = do
85 expr' <- evalTransGraphRelationalExpr expr graph
85 expr' <- evalTransGraphRelationalExpr expr graph
86 predicateExpr' <- evalTransGraphRestrictionPredicateExpr predicateExpr graph
86 predicateExpr' <- evalTransGraphRestrictionPredicateExpr predicateExpr graph
@@ -100,11 +100,11 @@ evalTransGraphRelationalExpr (Extend extendExpr expr) graph = do
101evalTransGraphTupleExpr :: TransactionGraph -> TransGraphTupleExpr -> Either RelationalError TupleExpr
101evalTransGraphTupleExpr :: TransactionGraph -> TransGraphTupleExpr -> Either RelationalError TupleExpr
102evalTransGraphTupleExpr graph (TupleExpr attrMap) = do
102evalTransGraphTupleExpr graph (TupleExpr attrMap) = do
103− attrAssoc <- mapM (\(attrName, atomExpr) -> do
103+ let attrAssoc = mapM (\(attrName, atomExpr) -> do
104 aExpr <- evalTransGraphAtomExpr graph atomExpr
104 aExpr <- evalTransGraphAtomExpr graph atomExpr
105 pure (attrName, aExpr)
105 pure (attrName, aExpr)
106 ) (M.toList attrMap)
106 ) (M.toList attrMap)
107− pure (TupleExpr (M.fromList attrAssoc))
107+ TupleExpr . M.fromList <$> attrAssoc
109evalTransGraphAtomExpr :: TransactionGraph -> TransGraphAtomExpr -> Either RelationalError AtomExpr
109evalTransGraphAtomExpr :: TransactionGraph -> TransGraphAtomExpr -> Either RelationalError AtomExpr
110evalTransGraphAtomExpr _ (AttributeAtomExpr aname) = pure $ AttributeAtomExpr aname
110evalTransGraphAtomExpr _ (AttributeAtomExpr aname) = pure $ AttributeAtomExpr aname
@@ -116,8 +116,8 @@ evalTransGraphAtomExpr graph (FunctionAtomExpr funcName args tLookup) = do
116 atom <- runReader (evalAtomExpr emptyTuple (FunctionAtomExpr funcName args' ())) (RelationalExprStateElems (concreteDatabaseContext trans))
116 atom <- runReader (evalAtomExpr emptyTuple (FunctionAtomExpr funcName args' ())) (RelationalExprStateElems (concreteDatabaseContext trans))
117 pure (NakedAtomExpr atom)
117 pure (NakedAtomExpr atom)
118evalTransGraphAtomExpr graph (RelationAtomExpr expr) = do
118evalTransGraphAtomExpr graph (RelationAtomExpr expr) = do
119− expr' <- evalTransGraphRelationalExpr expr graph
119+ let expr' = evalTransGraphRelationalExpr expr graph
120− pure (RelationAtomExpr expr')
120+ RelationAtomExpr <$> expr'
121evalTransGraphAtomExpr graph (ConstructedAtomExpr dConsName args tLookup) = do
121evalTransGraphAtomExpr graph (ConstructedAtomExpr dConsName args tLookup) = do
122 trans <- lookupTransaction graph tLookup
122 trans <- lookupTransaction graph tLookup
123 args' <- mapM (evalTransGraphAtomExpr graph) args
123 args' <- mapM (evalTransGraphAtomExpr graph) args
@@ -135,22 +135,22 @@ evalTransGraphRestrictionPredicateExpr (OrPredicate exprA exprB) graph = do
135 exprB' <- evalTransGraphRestrictionPredicateExpr exprB graph
135 exprB' <- evalTransGraphRestrictionPredicateExpr exprB graph
136 pure (OrPredicate exprA' exprB')
136 pure (OrPredicate exprA' exprB')
137evalTransGraphRestrictionPredicateExpr (NotPredicate expr) graph = do
137evalTransGraphRestrictionPredicateExpr (NotPredicate expr) graph = do
138− expr' <- evalTransGraphRestrictionPredicateExpr expr graph
138+ let expr' = evalTransGraphRestrictionPredicateExpr expr graph
139− pure (NotPredicate expr')
139+ NotPredicate <$> expr'
140evalTransGraphRestrictionPredicateExpr (RelationalExprPredicate expr) graph = do
140evalTransGraphRestrictionPredicateExpr (RelationalExprPredicate expr) graph = do
141− expr' <- evalTransGraphRelationalExpr expr graph
141+ let expr' = evalTransGraphRelationalExpr expr graph
142− pure (RelationalExprPredicate expr')
142+ RelationalExprPredicate <$> expr'
143evalTransGraphRestrictionPredicateExpr (AtomExprPredicate expr) graph = do
143evalTransGraphRestrictionPredicateExpr (AtomExprPredicate expr) graph = do
144− expr' <- evalTransGraphAtomExpr graph expr
144+ let expr' = evalTransGraphAtomExpr graph expr
145− pure (AtomExprPredicate expr')
145+ AtomExprPredicate <$> expr'
146evalTransGraphRestrictionPredicateExpr (AttributeEqualityPredicate attrName expr) graph = do
146evalTransGraphRestrictionPredicateExpr (AttributeEqualityPredicate attrName expr) graph = do
147− expr' <- evalTransGraphAtomExpr graph expr
147+ let expr' = evalTransGraphAtomExpr graph expr
148− pure (AttributeEqualityPredicate attrName expr')
148+ AttributeEqualityPredicate attrName <$> expr'
150evalTransGraphExtendTupleExpr :: TransGraphExtendTupleExpr -> TransactionGraph -> Either RelationalError ExtendTupleExpr
150evalTransGraphExtendTupleExpr :: TransGraphExtendTupleExpr -> TransactionGraph -> Either RelationalError ExtendTupleExpr
151evalTransGraphExtendTupleExpr (AttributeExtendTupleExpr attrName expr) graph = do
151evalTransGraphExtendTupleExpr (AttributeExtendTupleExpr attrName expr) graph = do
152− expr' <- evalTransGraphAtomExpr graph expr
152+ let expr' = evalTransGraphAtomExpr graph expr
153− pure (AttributeExtendTupleExpr attrName expr')
153+ AttributeExtendTupleExpr attrName <$> expr'
155evalTransGraphAttributeExpr :: TransactionGraph -> TransGraphAttributeExpr -> Either RelationalError AttributeExpr
155evalTransGraphAttributeExpr :: TransactionGraph -> TransGraphAttributeExpr -> Either RelationalError AttributeExpr
156evalTransGraphAttributeExpr graph (AttributeAndTypeNameExpr attrName tCons tLookup) = do
156evalTransGraphAttributeExpr graph (AttributeAndTypeNameExpr attrName tCons tLookup) = do