There's value in not forcing the programmer to talk to you in your language (declarative queries) but instead meeting them where they are.
There's value in not forcing the programmer to talk to you in your language (declarative queries) but instead meeting them where they are.
- for loops over relations
- while loops with monotone conditions
- x ∪= y etc.
seems likely to be tractable.
- for loops over relations
- while loops with monotone conditions
- x ∪= y etc.
seems likely to be tractable.
Imperative languages should have query planner-like loop nest optimizations, opts that know about map/set semantics, data layout opts, incrementalization.
Imperative languages should have query planner-like loop nest optimizations, opts that know about map/set semantics, data layout opts, incrementalization.
Difference types are afaik impossible to have all the properties of the integers (e.g. 1 - 1 = 1 + (-1) = 0, so that would imply a map 1 -> 0)
Difference types are afaik impossible to have all the properties of the integers (e.g. 1 - 1 = 1 + (-1) = 0, so that would imply a map 1 -> 0)
Side effectful ops have "token" inputs and outputs that reify fragments of the world. A typed version would be similar to separation logic.
Side effectful ops have "token" inputs and outputs that reify fragments of the world. A typed version would be similar to separation logic.