v0.5.1
Fixed
__axioms__can now reference Optional fields. The previous evaluator only handled bare comparison and arithmetic;a == nullparsed but failed at evaluation, anda != nullfailed even at parse time. The expression-language pipeline now does two things: a Python-friendly preprocessor rewrites!=->/=,and/or->&&/||,null/None->Nothing, andX is null/X is not null-> the correspondingNothingcomparison; the evaluator handles the full panproto Expr surface (Just/Nothing,App-style builtins includingmin/max/abs/elem/len,if/then/else(Match),letbindings, lambdas inmap/filter, list literals[1, 2, 3], field accessa.b, and the++(Concat) operator). The preprocessor respects string literals: substitutions never fire inside"..."or'...'. (#26)
Changed
docs/guide/axioms.mddocuments the full surface (operators, Python-friendly synonyms, an Optional-field worked example) and narrows the "what axioms cannot do" section to the truly missing constructs (forall/exists, multi-armcase, graph-traversal builtins).
Full changelog: https://github.com/panproto/didactic/blob/main/CHANGELOG.md