Alessandro Cheli
Alessandro Cheli
You can wrap it in a custom struct, without implementing any `TermInterface` method. It should treat it as a different constant
> Just an idea: > My assumption as to why this happens is because in Julia `false == 0`. I do not know where exactly in MT during the saturation...
Ah, I see, the method for ` ::Union{DataType, Function}` may not cover `::Type{Main.dcac.Plus}`
> Ah, I see, the method for ` ::Union{DataType, Function}` may not cover `::Type{Main.dcac.Plus}` ``` julia> Plus isa DataType false ```
Did you make the types matchable by satisfying TermInterface?
Nvm, verified. I just pushed a bugfix. You should use TermInterface.jl if you define custom AST types. See `test/tutorials/custom_types.jl`
Let me know if it works for your use case :)
Metadata is not yet agreed on on 3.0 and on e-graphs. It works on classical rewriting though. The issue is that the fix I've pushed only works on Julia 1.10...
> sorry, I missed your reply on this. Is there an inherent reason for it not working on 1.11? If you pull latest 3.0 branch the original example you sent...
@keorn @jtrakk @iamed2 I think a pipe-like `|>` syntax would be really nice. I'm just using ⇶ (really ugly) as an example operator because we don't have any "cool" extra...