statebox / cql

CQL: Categorical Query Language implementation in Haskell
GNU Affero General Public License v3.0
162 stars 14 forks source link

Add acyclic dependency check #95

Closed wisnesky closed 5 years ago

wisnesky commented 5 years ago

The dependency graph for an AQL program must be acyclic for the program to run. The 'Program' datatype contains a graph traversal order, currently set to be whatever order the user enters the bindings in in the AQL program. This issue is to replace that order with a topologically sorted order or to fail with an error when the user enters a cyclic program.