yummly / validaze

Hiccup-inspired DSL implementation of refinement types for validating JSON data.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Demonstrate Turing-completeness and consider making Turing-incomplete.

johanatan opened this issue · comments

Currently, as it stands, ::refinements could include a cycle. e.g.,

{:one [:two [v-fn msg-fn]]
 :two [:one [v-fn-2 msg-fn-2]]}

One could conceive of attaching state via meta to both v-fn and v-fn-2 to do arbitrary computation via a side channel.

We may want to have a check for such cycles and reject them as valid input.