func ParseExpr(input string) (Expr, error) {
	p := newParser(input)

	expr, err := p.parseExpr()
	if err != nil {
		return nil, err
	}
	err = p.typecheck(expr)
	return expr, err
}
func ParseExpr(input string) (Expr, error) {
	p := newParser(input)

	expr, err := p.parseExpr()
	if err != nil {
		return nil, err
	}
	err = p.typecheck(expr)
	return expr, err
}
func ParseExpr ( input string ) ( Expr , error ) { p := newParser ( input ) expr , err := p . parseExpr ( ) if err != nil { return nil , err } err = p . typecheck ( expr ) return expr , err }
// ParseExpr returns the expression parsed from the input.
ParseExpr returns the expression parsed from the input .