Lazy BDDs with eager literal differences

In a previous article , we discussed how we optimized intersections in Elixir set-theoretic types to improve performance. In a nutshell, lazy BDDs allow us to represent set-theoretic operations at any depth. And while this is useful in many cases, they offer a downside when it comes to intersections. For example, take this type: (% Foo {} or % Bar {} or % Baz {} or % Bat {}) and % Bar {} While we could store the above as-is in the BDD, from a quick glance it is clear that the above can only be equal to %Bar
评论
?
参与讨论