Currently the interpreter reduces expressions based on the most specific rule that applies to the expression. It does not stop rules that are generalisations of existing rules from contradicting one another or vice versa.
e.g.
let not true -> falselet not false -> truelet _x_ > _y_ -> not _y_ > _x_let 1 > 0
then 0 > 1 evaluates as false
but intrepeter stills allows let 0 > 1 without an error.
This maked the rules previously defined not the general case, allowing loads of exceptions to the rule. It also makes any let command have to completely invalidate the cache
Currently the interpreter reduces expressions based on the most specific rule that applies to the expression. It does not stop rules that are generalisations of existing rules from contradicting one another or vice versa.
e.g.
let not true -> false
let not false -> true
let _x_ > _y_ -> not _y_ > _x_
let 1 > 0
then
0 > 1
evaluates as falsebut intrepeter stills allows
let 0 > 1
without an error.This maked the rules previously defined not the general case, allowing loads of exceptions to the rule. It also makes any
let
command have to completely invalidate the cache