caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Yotam Barnoy <yotambarnoy@gmail.com>
To: Alain Frisch <alain@frisch.fr>
Cc: Ocaml Mailing List <caml-list@inria.fr>
Subject: Re: [Caml-list] Default methods for module signatures
Date: Wed, 5 Feb 2014 16:17:31 -0500	[thread overview]
Message-ID: <CAN6ygOmsjLfPfXdumEWRn6N6_yFYO9Q5g31Twbxzh8ZQCZLkXA@mail.gmail.com> (raw)
In-Reply-To: <52F29F45.6070003@frisch.fr>

[-- Attachment #1: Type: text/plain, Size: 1976 bytes --]

Very nice proposal. I'm not crazy about the word 'virtual' since it doesn't
really mean anything (and has been brutally abused in C++), but that's
obviously a minor nitpick. Any reason this patch wasn't picked up?

-Yotam


On Wed, Feb 5, 2014 at 3:29 PM, Alain Frisch <alain@frisch.fr> wrote:

> I proposed (13 years ago...) a small patch to support optional fields in
> modules.  This would help achieving the desired effect. See:
>
> http://alain.frisch.fr/info/patch-option-announce
> http://alain.frisch.fr/info/patch-option
>
> -- Alain
>
>
>
> On 2/5/2014 7:49 PM, Yotam Barnoy wrote:
>
>> Hello List
>>
>> I would like the following feature, and I'm not enough of an expert in
>> module-fu to know if something like this is doable.
>>
>> Suppose I have a module signature of
>>
>> module type Monad = sig
>>    type 'a m
>>    val return : 'a -> 'a m
>>    val (>>=) : 'a m -> ('a -> 'b m) -> 'b m
>>    val (>>) : 'a m -> 'b m -> 'b m
>> end
>>
>> I would like to have a default implementation for (>>), since a simple
>> default implementation is
>>
>> let (>>) m f = m >>= fun _ -> f
>>
>> Alternatively, I would like to include this from some DefaultMonad
>> module, but have the (>>=) referred to in the function be my newly
>> defined (>>=) implementation (ie. late binding). Is there currently any
>> way to do this? If not, would there be a way to implement a partial
>> default implementation built into or associated with a module signature?
>> Something like
>>
>> module type Monad = sig... default struct... end
>>
>> Haskell has this available as part of the semantics of their typeclass
>> system, and I think it would be really handy to have (if there isn't
>> already a way to do it currently).
>>
>> -Yotam
>>
>>
>>
>
> --
> Caml-list mailing list.  Subscription management and archives:
> https://sympa.inria.fr/sympa/arc/caml-list
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs
>

[-- Attachment #2: Type: text/html, Size: 3192 bytes --]

      reply	other threads:[~2014-02-05 21:17 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-05 18:49 Yotam Barnoy
2014-02-05 19:43 ` Martin Jambon
2014-02-05 20:03   ` Yotam Barnoy
2014-02-05 20:10   ` Martin Jambon
2014-02-05 19:53 ` Pippijn van Steenhoven
2014-02-05 20:29 ` Alain Frisch
2014-02-05 21:17   ` Yotam Barnoy [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAN6ygOmsjLfPfXdumEWRn6N6_yFYO9Q5g31Twbxzh8ZQCZLkXA@mail.gmail.com \
    --to=yotambarnoy@gmail.com \
    --cc=alain@frisch.fr \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).