On Tue, May 27, 2014 at 1:53 PM, Brandon Myers <notifications@github.com>wrote:

> In raco/expression/expression.py:
>
> > @@ -553,3 +553,34 @@ def __str__(self):
> >
> >      def __repr__(self):
> >          return self.__str__()
> > +
> > +
> > +import boolean
> > +import abc
> > +
> > +
> > +class ExpressionVisitor(boolean.BooleanExprVisitor):
>
> I agree y+1 should be caught as an error somewhere, but I disagree where.
> That was the point I was making.
>
> It is arguably better to catch it during a type checking phase rather than
> embedding types into the syntax phase. This will be more flexible: low
> level syntax should be rigid, while types should be extensible (e.g.,
> suppose y+1 for a particular type y evaluated to a boolean in the future;
> we don't want to have to change the syntax of datalog expressions to
> support this).
>
As long as the message is clear, this seems ok.

However, I don't buy the motivation: y+1 should never evaluate to a
boolean.  C we ain't.


>  —
> Reply to this email directly or view it on GitHub<https://github.com/uwescience/raco/pull/209/files#r13101788>
> .
>