From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: * X-Spam-Status: No, score=1.4 required=5.0 tests=AWL,HTML_00_10,HTML_MESSAGE, SPF_NEUTRAL autolearn=disabled version=3.1.3 Received: from discorde.inria.fr (discorde.inria.fr [192.93.2.38]) by yquem.inria.fr (Postfix) with ESMTP id 39225BC69 for ; Sun, 19 Aug 2007 20:15:49 +0200 (CEST) Received: from ug-out-1314.google.com (ug-out-1314.google.com [66.249.92.171]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id l7JIFmLw007321 for ; Sun, 19 Aug 2007 20:15:48 +0200 Received: by ug-out-1314.google.com with SMTP id o2so463471uge for ; Sun, 19 Aug 2007 11:15:48 -0700 (PDT) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:sender:to:subject:mime-version:content-type:x-google-sender-auth; b=GdhvbsliHKqZFI08p+THMV9GxcX6XUiXbnwBqKZ+0hGGSykAgJX5uItWELlBN4GV5/FrajA7hmubRPs9wWIF4xR6ay0gklIbm3IB7ekyZ1Lj1rzEH7Shqa14tYM+KfREdqR5PhqUd61A0iRgOwPeuuVMh6WdQNiUjwo0lmDuR/c= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:sender:to:subject:mime-version:content-type:x-google-sender-auth; b=gJQSjpEmjjtih/tbM8G9r8LAr7PwaYt8GeDapH8TF/c26wueLhjYsMef/wj7fJJKGuQQNavGdOkG9BmdT6FSgMc8U7DvNvyoh/P+CAb6l469Hsf97g9KEYH90QOS+vVGNNL570Jfhbs4CegDpDjHzmh7RcqnJ939AP7T0b8X7FA= Received: by 10.66.219.11 with SMTP id r11mr4737369ugg.1187547348162; Sun, 19 Aug 2007 11:15:48 -0700 (PDT) Received: by 10.66.237.1 with HTTP; Sun, 19 Aug 2007 11:15:48 -0700 (PDT) Message-ID: <2a1a1a0c0708191115r2fba44b9y3b5478846b2a144b@mail.gmail.com> Date: Sun, 19 Aug 2007 14:15:48 -0400 From: "Mike Lin" Sender: nilekim@gmail.com To: "Caml List" Subject: Re: [caml-list] If OCaml were a car MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_70065_13624665.1187547348132" X-Google-Sender-Auth: aa5a80d06f6f1df2 X-Miltered: at discorde with ID 46C888D4.003 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; mikelin:01 ocaml:01 ocaml:01 syntax:01 parser:01 mismatch:01 syntax:01 parser:01 mismatch:01 hair:98 hair:98 wrote:01 wrote:01 caml-list:01 parentheses:01 ------=_Part_70065_13624665.1187547348132 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline On Aug 19, 10:46 am, John Carr wrote: > OCaml has a badly designed syntax processed by a badly implemented > parser feeding into a backend that generates poor error messages. > All this makes the language hard to use. I think the bad error messages break down into two categories most of the time, 1) lengthy, unintelligible type mismatches and 2) unhelpful (location-wise) complaints about parentheses in nested expressions. I find that ocaml+twt helps immensely with the latter category. Basically, I'm much much happier with the language since doing TWT - I don't have to pull my hair out fixing things that are obvious from the indentation anyway. And, mostly just to make a point, it does away with the fugly ;; It's been a while since PL class so I'm not sure what can be done to make type mismatch errors more helpful. ------=_Part_70065_13624665.1187547348132 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline On Aug 19, 10:46 am, John Carr <j...@MIT.EDU> wrote:
> OCaml has a badly designed syntax processed by a badly implemented
> parser feeding into a backend that generates poor error messages.
> All this makes the language hard to use.

I think the bad error messages break down into two categories most of the time, 1) lengthy, unintelligible type mismatches and 2) unhelpful (location-wise) complaints about parentheses in nested expressions. I find that ocaml+twt helps immensely with the latter category. Basically, I'm much much happier with the language since doing TWT - I don't have to pull my hair out fixing things that are obvious from the indentation anyway. And, mostly just to make a point, it does away with the fugly ;;

It's been a while since PL class so I'm not sure what can be done to make type mismatch errors more helpful.
------=_Part_70065_13624665.1187547348132--