From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com [IPv6:2a00:1450:4864:20::62f]) by sourceware.org (Postfix) with ESMTPS id E80A93858D28 for ; Thu, 29 Sep 2022 07:48:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E80A93858D28 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ej1-x62f.google.com with SMTP id dv25so1027311ejb.12 for ; Thu, 29 Sep 2022 00:48:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date; bh=Shs/XqfiIqmbHaZYGmEL0g9PKtDakDIvwtwbpOe+bUs=; b=Vf55PTjrEFn6H7MoNnkUB/Z7Mq7GT8E7dLtMTp4nIPvjnFtkTC1jXlgDMRQYanxZ1n Kgn+7ZEeaAnmeep8fSOG7oifslV55RlqyqUlGt8SSiOPf6zUYr6qz3SNM3v2lVZa2Z5/ oi5hteK0CJaaMtqTUfEa7sH/Ww/DJ9F7/LdMJXtKnlEZltUcMACdeiDGVpVAkS0EPhyo F18We/J2GMDKLpuyOI97cBINWUwiTW+mH1dJf8yrcyel0rjvJZCk7CL6W2VcCPMAPsbt 38PDb3pXiFHP8d1d8DzUl36Wj78SfSMOVccD4GubmJ7MItojNzZde9DITATgtNWRkowg M/Rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date; bh=Shs/XqfiIqmbHaZYGmEL0g9PKtDakDIvwtwbpOe+bUs=; b=aRi8kLMGWwBWTzVX9mOI8GodAq+WXJufKpVP2FpTJMlnP4sXAr/OeW70sxv5/WPSev gk7nQ3uMkkjjylmgupgrsJW1d/Zt/siEVOkdJNuSdxpcEClXar7aPnCjIoC38WK6YISW v1DRTCvd0muQHjB/JUk07g2LKL6l6JXi0BZh4zSmbeei/9w+YLnRAiNvCTg6Fpm7fbeV cd8W8d4uuM5+OJRe3qcScgjz7U8g9M3QSHXR3hRohAF45ydSXlTc5UMSTiXa99FMNjBP Ux+h0cuubH8ENd8ETIHSPIcwdj50EB2L7bpri+2Inx8iuJ2cynSn7ViC2vnuAbIuXcBd i7Ww== X-Gm-Message-State: ACrzQf3YTGrvdRDgBPbG88LWwMXMNrYbpL4oSOFfvOPcVP5dqMpv893k bwF5WoC+/dTyqw8Dj45LyNwlrZ/YveinsL9SlzCymQr8 X-Google-Smtp-Source: AMsMyM5FdUvtidoq4CM7PrcfkpIyYrh+hWznXn6QcoafVbTmC2+8RetnElWfcUf1eoQXpWmjNAu3TxvWjS9skqLUzGo= X-Received: by 2002:a17:907:7214:b0:783:415e:70c7 with SMTP id dr20-20020a170907721400b00783415e70c7mr1659728ejc.636.1664437691476; Thu, 29 Sep 2022 00:48:11 -0700 (PDT) MIME-Version: 1.0 From: Arvydas Silanskas Date: Thu, 29 Sep 2022 10:48:03 +0300 Message-ID: Subject: srfi 145 To: kawa mailing list Content-Type: multipart/alternative; boundary="00000000000059f05505e9cc199e" X-Spam-Status: No, score=-0.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,HTML_MESSAGE,KAM_NUMSUBJECT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --00000000000059f05505e9cc199e Content-Type: text/plain; charset="UTF-8" Good day, what are your opinions on srfi 145? Looking at it, it could be a decent r7rs portable way to provide some degree of static type checking. The work would involve adding a syntax tree rewrite pass. For example, code such as (define (foo a) (assume (integer? a)) ...) would be transformed to (define (foo a ::int) ...) and then the rest of it would be usual kawa behavior. Certainly making it as powerful as a standard kawa syntax would be very difficult, but perhaps it's not necessary? I think handling only function parameters + let bindings, and only handling base types + user defined simple records would pragmatically cover a lot of useful cases. If there is a consensus that this would be useful, I'll give it a shot at implementing it myself. Arvydas --00000000000059f05505e9cc199e--