hydro-project / hydroflow

Hydro's low-level dataflow runtime
https://hydro.run/docs/hydroflow/
Apache License 2.0
469 stars 34 forks source link

lattices: need a "one-sided cartesian product", AKA way to join `SetUnion<T>` with any `Lat` (to create `Pair<(T, Lat)>`) #1252

Open MingweiSamuel opened 3 months ago

MingweiSamuel commented 3 months ago

Not sure exactly about the types, might be a cartesian-product-esque latticebimorphism, or maybe some sort of atomize morphism

This came up for the KVS, joining a set of readers with a KVS value

jhellerstein commented 2 months ago

Can this be a macro? Here's something similar but a bit different (output type is a single Pair<SetUnion,Lat> rather than SetUnion<Pair<...>>):

<network> -> <SetUnion<T>...> -> map(|e: SetUnion<T>| PairLattice(e, #lat)) -> state()