caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] FroCoS 2017 - 2nd Call for Papers
@ 2017-01-27 14:22 Geoff Sutcliffe
  2017-01-27 16:39 ` [Caml-list] where are we on the Hoogle for OCaml front? Francois BERENGER
  0 siblings, 1 reply; 15+ messages in thread
From: Geoff Sutcliffe @ 2017-01-27 14:22 UTC (permalink / raw)
  To: caml-list

           *** Apologies for multiple copies, please redistribute ***

                         SECOND CALL FOR PAPERS

                             FroCoS 2017
   11th International Symposium on Frontiers of Combining Systems
                            Brasilia, Brazil
                         September 25-29th, 2017
                       http://frocos2017.cic.unb.br


Submission Deadlines: 24th April 2017 (abstracts)
                       28th April 2017 (full papers)


GENERAL INFORMATION
   The 11th International Symposium on Frontiers of Combining Systems
   (FroCoS 2017) will be held in Brasilia, Brazil, between September 25 to
   September 29, 2017. Its main goal is to disseminate and promote
   progress in research areas related to the development of techniques
   for the integration, combination, and modularization of formal
   systems together with their analysis.

   FroCoS 2017 will be co-located with the 26th International
   Conference on Automated Reasoning with Analytic Tableaux and Related
   Methods (TABLEAUX 2017) and the 8th International Conference on
   Interactive Theorem Proving (ITP 2017). The local organization of
   all events will be organised  by Claudia Nalon (USB, Brazil),
   Daniele Nantes (UnB, Brazil), Elaine Pimentel (UFRN, Brazil) and
   Joao Marcos (UFRN, Brazil).

SCOPE OF CONFERENCE
   In various areas of computer science, such as logic, computation,
   program development and verification, artificial intelligence,
   knowledge representation, and automated reasoning, there is an
   obvious need for using specialized formalisms and inference systems
   for selected tasks. To be usable in practice, these specialized
   systems must be combined with each other and integrated into general
   purpose systems. This has led---in many research areas---to the
   development of techniques and methods for the combination and
   integration of dedicated formal systems, as well as for their
   modularization and analysis.

   The International Symposium on Frontiers of Combining Systems
   (FroCoS) traditionally focusses on these types of research questions
   and activities. Like its predecessors, FroCoS 2017 seeks to offer a
   common forum for research in the general area of combination,
   modularization, and integration of systems, with emphasis on
   logic-based ones, and of their practical use.

   Typical topics of interest include (but are not limited to):
     * combinations of logics (such as higher-order, first-order,
       temporal, modal, description or other non-classical logics);
     * combination and integration methods in SAT and SMT solving;
     * combination of decision procedures, satisfiability
       procedures, constraint solving techniques, or logical
       frameworks;
     * combinations and modularity in ontologies;
     * integration of equational and other theories into deductive
       systems;
     * hybrid methods for deduction, resolution and constraint
       propagation;
     * hybrid systems in knowledge representation and natural
       language semantics;
     * combined logics for distributed and multi-agent systems;
     * logical aspects of combining and modularizing programs and
       specifications;
     * integration of data structures into constraint logic
       programming and deduction;
     * combinations and modularity in term rewriting;
     * applications of methods and techniques to the verification and
       analysis of information systems.

INVITED SPEAKERS
     - Katalin Bimbo (University of Alberta, Canada) (joint with TABLEAUX 
and ITP)
     - Jasmin Blanchette (Inria and LORIA, Nancy, France) (joint with 
TABLEAUX and ITP)
     - Cezary Kaliszyk (University of Innsbruck, Austria) (joint with 
TABLEAUX and ITP)
     - Cesare Tinelli (University of Iowa, USA)
     - Renata Wassermann (University of Sao Paulo, Brazil)

PUBLICATION DETAILS
   The proceedings of the symposium will be published in the
   Springer LNAI/LNCS series.

PAPER SUBMISSIONS
   The program committee seeks high-quality submissions describing
   original work, written in English, not overlapping with published or
   simultaneously submitted work to a journal or conference with
   archival proceedings. Selection criteria include accuracy and
   originality of ideas, clarity and significance of results, and
   quality of presentation. The page limit in Springer LNCS style is 16
   pages.

   Papers must be edited in LaTeX using the llncs style and must be
   submitted electronically as PDF files via the EasyChair system at
   the following address:

         https://easychair.org/conferences/?conf=frocos2017

   For each accepted paper, at least one of the authors is required to
   attend the symposium and present the work. Prospective authors must
   register a title and an abstract five days before the paper
   submission deadline. Further information about paper submissions is
   available at the conference website that can be found at the
   beginning of this call for papers.

WORKSHOPS AND TUTORIALS
   Proposals for Workshops and Tutorial sessions have been solicited
   in a separate call, which can be found at
   http://frocos2017.cic.unb.br/#cfw.

IMPORTANT DATES
   24th April 2017: Abstract submission deadline
   28th April 2017: Full paper submission deadline
    9th June  2017: Author notification
   23rd June  2017: Camera-ready version due
   September 25-29, 2017: FroCoS Conference

PROGRAM COMMITTEE
  Carlos Areces, FaMAF - Universidad Nacional de Cordoba
  Alessandro Artale, Free University of Bolzano-Bozen
  Mauricio Ayala-Rincon, Universidade de Brasilia
  Franz Baader, TU Dresden
  Peter Baumgartner, National ICT Australia
  Christoph Benzmueller, Freie Universitaet Berlin
  Thomas	Bolander, Technical University of Denmark
  Marcelo Coniglio, State University of Campinas
  Clare Dixon, University of Liverpool [co-chair]
  Francois Fages, Inria Paris-Rocquencourt
  Marcelo Finger, Universidade de Sao Paulo [co-chair]
  Pascal Fontaine, LORIA, INRIA, University of Lorraine
  Didier Galmiche, LORIA, University of Lorraine
  Vijay Ganesh, University of Waterloo
  Silvio Ghilardi, Universita degli Studi di Milano
  Juergen Giesl, RWTH Aachen
  Laura Giordano, Universita del Piemonte Orientale
  Agi Kurucz, Kings College, London
  Till Mossakowski, Otto-von-Guericke-University Magdeburg
  Claudia Nalon, University of Brasilia
  Elaine Pimentel, Universidade Federal do Rio Grande do Norte
  Silvio Ranise, Fondazione Bruno Kessler-Irst
  Christophe Ringeissen, LORIA-INRIA
  Uli Sattler, University of Manchester
  Roberto Sebastiani, University of Trento
  Guillermo Simari, Universidad Nacional del Sur in Bahia Blanca
  Viorica Sofronie-Stokkermans, University Koblenz-Landau
  Andrzej Szalas, University of Warsaw
  Rene Thiemann, University of Innsbruck
  Ashish Tiwari, SRI International
  Christoph Weidenbach, Max Planck Institute for Informatics

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Caml-list] where are we on the Hoogle for OCaml front?
  2017-01-27 14:22 [Caml-list] FroCoS 2017 - 2nd Call for Papers Geoff Sutcliffe
@ 2017-01-27 16:39 ` Francois BERENGER
  2017-02-04  3:58   ` Jacques Garrigue
  0 siblings, 1 reply; 15+ messages in thread
From: Francois BERENGER @ 2017-01-27 16:39 UTC (permalink / raw)
  To: caml-list

Hello,

Do we have a hoogle[1] equivalent that is in production for OCaml?

I mean something that would index all source code available in opam
and allow queries by type signature or keyword?

Currently, I use ocp-browser but I still feel like
it's a temporary and not super efficient measure.

I don't know how to do query by type signature with it.
And many packages don't install their doc so you cannot
see the doc for each function.
At list for the stdlib it works (inside ocp-browser you type List.map 
then spacebar, for example).

When I was an Haskell programmer (for two months, a long time ago), I 
felt Hoogle was the biggest productivity enhancer (you don't reinvent
the wheel, just find which one you need and use it).

Regards,
F.

[1] https://www.haskell.org/hoogle/


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Caml-list] where are we on the Hoogle for OCaml front?
  2017-01-27 16:39 ` [Caml-list] where are we on the Hoogle for OCaml front? Francois BERENGER
@ 2017-02-04  3:58   ` Jacques Garrigue
  2017-02-06 14:35     ` Francois BERENGER
  2017-02-06 15:46     ` Daniel Bünzli
  0 siblings, 2 replies; 15+ messages in thread
From: Jacques Garrigue @ 2017-02-04  3:58 UTC (permalink / raw)
  To: Francois BERENGER; +Cc: OCaml Mailing List

For search by type signature you can use Jun Furuse's OCamlOScope:

https://camlspotter.github.io/ocamloscope.html

It also gives documentation when available.

I'm not sure how big the database is.

Jacques

On 2017/01/28 01:39, Francois BERENGER wrote:
> 
> Hello,
> 
> Do we have a hoogle[1] equivalent that is in production for OCaml?
> 
> I mean something that would index all source code available in opam
> and allow queries by type signature or keyword?
> 
> Currently, I use ocp-browser but I still feel like
> it's a temporary and not super efficient measure.
> 
> I don't know how to do query by type signature with it.
> And many packages don't install their doc so you cannot
> see the doc for each function.
> At list for the stdlib it works (inside ocp-browser you type List.map then spacebar, for example).
> 
> When I was an Haskell programmer (for two months, a long time ago), I felt Hoogle was the biggest productivity enhancer (you don't reinvent
> the wheel, just find which one you need and use it).
> 
> Regards,
> F.
> 
> [1] https://www.haskell.org/hoogle/




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Caml-list] where are we on the Hoogle for OCaml front?
  2017-02-06 15:46     ` Daniel Bünzli
@ 2017-02-06 14:02       ` Hendrik Boom
  2017-02-06 16:00         ` Daniel Bünzli
  2017-02-06 16:01         ` Ivan Gotovchits
  2017-02-06 17:46       ` Francois BERENGER
  1 sibling, 2 replies; 15+ messages in thread
From: Hendrik Boom @ 2017-02-06 14:02 UTC (permalink / raw)
  To: caml-list

On Mon, Feb 06, 2017 at 04:46:02PM +0100, Daniel Bünzli wrote:
> On Saturday, 4 February 2017 at 04:58, Jacques Garrigue wrote:
> > For search by type signature you can use Jun Furuse's OCamlOScope:
> 
> I'm a little bit curious. While I can see the benefit of having general full text search over value identifiers, type identifier and doc strings I was always a little bit dubious about type signature search -- in the end ML types for themselves are a rather weak specification language (I'm not talking about the invariants you may hide behind those of course).
> 
> So beyond curiosity searches are actually people seriously using this to lookup a value they might need ? 

Search on parts of the type, even.  It is very useful to find all the 
functions that do anything with values of a particular type in order 
to find out what you can do with it.  As well as how you can produce 
values of that type.

-- hendrik

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Caml-list] where are we on the Hoogle for OCaml front?
  2017-02-04  3:58   ` Jacques Garrigue
@ 2017-02-06 14:35     ` Francois BERENGER
  2017-02-06 15:46     ` Daniel Bünzli
  1 sibling, 0 replies; 15+ messages in thread
From: Francois BERENGER @ 2017-02-06 14:35 UTC (permalink / raw)
  Cc: OCaml Mailing List

On 02/03/2017 09:58 PM, Jacques Garrigue wrote:
> For search by type signature you can use Jun Furuse's OCamlOScope:
>
> https://camlspotter.github.io/ocamloscope.html
>
> It also gives documentation when available.
>
> I'm not sure how big the database is.

It would be nice if the database was containing everything that is in opam.
Or, at least the latest version of anything that is in opam.

Is it really "production ready"?

Should we all jump on it?

Will it stay online for some years?

> Jacques
>
> On 2017/01/28 01:39, Francois BERENGER wrote:
>>
>> Hello,
>>
>> Do we have a hoogle[1] equivalent that is in production for OCaml?
>>
>> I mean something that would index all source code available in opam
>> and allow queries by type signature or keyword?
>>
>> Currently, I use ocp-browser but I still feel like
>> it's a temporary and not super efficient measure.
>>
>> I don't know how to do query by type signature with it.
>> And many packages don't install their doc so you cannot
>> see the doc for each function.
>> At list for the stdlib it works (inside ocp-browser you type List.map then spacebar, for example).
>>
>> When I was an Haskell programmer (for two months, a long time ago), I felt Hoogle was the biggest productivity enhancer (you don't reinvent
>> the wheel, just find which one you need and use it).
>>
>> Regards,
>> F.
>>
>> [1] https://www.haskell.org/hoogle/
>
>
>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Caml-list] where are we on the Hoogle for OCaml front?
  2017-02-04  3:58   ` Jacques Garrigue
  2017-02-06 14:35     ` Francois BERENGER
@ 2017-02-06 15:46     ` Daniel Bünzli
  2017-02-06 14:02       ` Hendrik Boom
  2017-02-06 17:46       ` Francois BERENGER
  1 sibling, 2 replies; 15+ messages in thread
From: Daniel Bünzli @ 2017-02-06 15:46 UTC (permalink / raw)
  To: Jacques Garrigue; +Cc: Francois BERENGER, OCaml Mailing List

On Saturday, 4 February 2017 at 04:58, Jacques Garrigue wrote:
> For search by type signature you can use Jun Furuse's OCamlOScope:

I'm a little bit curious. While I can see the benefit of having general full text search over value identifiers, type identifier and doc strings I was always a little bit dubious about type signature search -- in the end ML types for themselves are a rather weak specification language (I'm not talking about the invariants you may hide behind those of course).

So beyond curiosity searches are actually people seriously using this to lookup a value they might need ? 

Best, 

Daniel



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Caml-list] where are we on the Hoogle for OCaml front?
  2017-02-06 14:02       ` Hendrik Boom
@ 2017-02-06 16:00         ` Daniel Bünzli
  2017-02-06 16:07           ` Ivan Gotovchits
  2017-02-06 16:01         ` Ivan Gotovchits
  1 sibling, 1 reply; 15+ messages in thread
From: Daniel Bünzli @ 2017-02-06 16:00 UTC (permalink / raw)
  To: Hendrik Boom; +Cc: caml-list

On Monday, 6 February 2017 at 15:02, Hendrik Boom wrote:
> It is very useful to find all the 
> functions that do anything with values of a particular type in order 
> to find out what you can do with it. As well as how you can produce 
> values of that type.

Sure but boolean queries on type identifiers seems enough for this. Of course you can always wish to be more precise --- I want this type to appear in that position --- but I'm not sure that's an information need users often have.


D  



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Caml-list] where are we on the Hoogle for OCaml front?
  2017-02-06 14:02       ` Hendrik Boom
  2017-02-06 16:00         ` Daniel Bünzli
@ 2017-02-06 16:01         ` Ivan Gotovchits
  2017-02-06 16:06           ` Daniel Bünzli
  1 sibling, 1 reply; 15+ messages in thread
From: Ivan Gotovchits @ 2017-02-06 16:01 UTC (permalink / raw)
  To: Hendrik Boom; +Cc: caml-list

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

On Mon, Feb 6, 2017 at 9:02 AM, Hendrik Boom <hendrik@topoi.pooq.com> wrote:

>
> Search on parts of the type, even.  It is very useful to find all the
> functions that do anything with values of a particular type in order
> to find out what you can do with it.  As well as how you can produce
> values of that type.
>
> Yep, the same as it is done in Coq's search command, where you query all
functions that produce integer

       Search (_ -> int)

It is extremely useful in Coq, and should be as well in OCaml.

For example, when I see, that a function requires a value of type
`Uuidm.t`, then a search for `_ -> Uuidm.t` will reveal all possible ways
to create it.
(Of course, I can just go to the mli file, and read it, but this defeats
the whole purpose of searching).

Regards,
Ivan





> -- hendrik
>
> --
> 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: 2167 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Caml-list] where are we on the Hoogle for OCaml front?
  2017-02-06 16:01         ` Ivan Gotovchits
@ 2017-02-06 16:06           ` Daniel Bünzli
  0 siblings, 0 replies; 15+ messages in thread
From: Daniel Bünzli @ 2017-02-06 16:06 UTC (permalink / raw)
  To: Ivan Gotovchits; +Cc: Hendrik Boom, caml-list

On Monday, 6 February 2017 at 17:01, Ivan Gotovchits wrote:
> For example, when I see, that a function requires a value of type `Uuidm.t`, then a search for `_ -> Uuidm.t` will reveal all possible ways to create it.

So domain vs range position seems a useful distinction. 

D



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Caml-list] where are we on the Hoogle for OCaml front?
  2017-02-06 16:00         ` Daniel Bünzli
@ 2017-02-06 16:07           ` Ivan Gotovchits
  2017-02-06 16:11             ` Ivan Gotovchits
  2017-02-06 16:34             ` Daniel Bünzli
  0 siblings, 2 replies; 15+ messages in thread
From: Ivan Gotovchits @ 2017-02-06 16:07 UTC (permalink / raw)
  To: Daniel Bünzli; +Cc: Hendrik Boom, caml-list

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

On Mon, Feb 6, 2017 at 11:00 AM, Daniel Bünzli <daniel.buenzli@erratique.ch>
wrote:

> On Monday, 6 February 2017 at 15:02, Hendrik Boom wrote:
> > It is very useful to find all the
> > functions that do anything with values of a particular type in order
> > to find out what you can do with it. As well as how you can produce
> > values of that type.
>
> Sure but boolean queries on type identifiers seems enough for this. Of
> course you can always wish to be more precise --- I want this type to
> appear in that position --- but I'm not sure that's an information need
> users often have.



That's why the search should be up-to some isomorphism, e.g.,

     int -> float -> bool


is isomoprhic to

   float -> int -> bool


The seach should also work correctly with lots of aliases, since it is
usual when the same type or value in OCaml has mutliple names. The seach
should also ignore parameter names,
as this is not what a user can know in advance.



>
>
> D
>
>
>
> --
> 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: 2333 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Caml-list] where are we on the Hoogle for OCaml front?
  2017-02-06 16:07           ` Ivan Gotovchits
@ 2017-02-06 16:11             ` Ivan Gotovchits
  2017-02-06 16:34             ` Daniel Bünzli
  1 sibling, 0 replies; 15+ messages in thread
From: Ivan Gotovchits @ 2017-02-06 16:11 UTC (permalink / raw)
  To: Daniel Bünzli; +Cc: Hendrik Boom, caml-list

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

This is a link [1] to the underlying theory of type isomorphism search, for
those who are interested:

[1]: http://www.dicosmo.org/ResearchThemes/ISOS/ISOShomepage.html

On Mon, Feb 6, 2017 at 11:07 AM, Ivan Gotovchits <ivg@ieee.org> wrote:

>
>
> On Mon, Feb 6, 2017 at 11:00 AM, Daniel Bünzli <
> daniel.buenzli@erratique.ch> wrote:
>
>> On Monday, 6 February 2017 at 15:02, Hendrik Boom wrote:
>> > It is very useful to find all the
>> > functions that do anything with values of a particular type in order
>> > to find out what you can do with it. As well as how you can produce
>> > values of that type.
>>
>> Sure but boolean queries on type identifiers seems enough for this. Of
>> course you can always wish to be more precise --- I want this type to
>> appear in that position --- but I'm not sure that's an information need
>> users often have.
>
>
>
> That's why the search should be up-to some isomorphism, e.g.,
>
>      int -> float -> bool
>
>
> is isomoprhic to
>
>    float -> int -> bool
>
>
> The seach should also work correctly with lots of aliases, since it is
> usual when the same type or value in OCaml has mutliple names. The seach
> should also ignore parameter names,
> as this is not what a user can know in advance.
>
>
>
>>
>>
>> D
>>
>>
>>
>> --
>> 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: 3063 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Caml-list] where are we on the Hoogle for OCaml front?
  2017-02-06 16:07           ` Ivan Gotovchits
  2017-02-06 16:11             ` Ivan Gotovchits
@ 2017-02-06 16:34             ` Daniel Bünzli
  2017-02-06 16:46               ` Ivan Gotovchits
  1 sibling, 1 reply; 15+ messages in thread
From: Daniel Bünzli @ 2017-02-06 16:34 UTC (permalink / raw)
  To: Ivan Gotovchits; +Cc: Hendrik Boom, caml-list

On Monday, 6 February 2017 at 17:07, Ivan Gotovchits wrote:
> That's why the search should be up-to some isomorphism, e.g.,
> 
> int -> float -> bool
> 
> 
> is isomoprhic to
> 
> float -> int -> bool

The papers you mention seem to be about the type ismorophism theory but I can't see any that tries to asses end-user information needs and retrieval evaluation. I'm not sure you need the full theory to build an effective system to support a programmer, e.g. what about the effectiveness of a full type isomorphism search vs a bag of type identifiers with functional position model. Meaningfully limiting the query power to an IR system is a problem in practice, for space, computational and user interface reasons.

D



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Caml-list] where are we on the Hoogle for OCaml front?
  2017-02-06 16:34             ` Daniel Bünzli
@ 2017-02-06 16:46               ` Ivan Gotovchits
  2017-02-06 16:55                 ` Frédéric Bour
  0 siblings, 1 reply; 15+ messages in thread
From: Ivan Gotovchits @ 2017-02-06 16:46 UTC (permalink / raw)
  To: Daniel Bünzli; +Cc: Hendrik Boom, caml-list

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

Well yes, the theory is not required, but it is better to know one :) I
provided a link mostly because it is a sort of a homepage for
type-isomorphic search. There are links to the CamlLight implementations
(yeah the idea was there for some time) and Haskel. Speaking of modern
implementations, Argot [1] is the only example that comes to mind. It has
the isomorphic search and a type manifest search. The search is implemented
mostly in Javascript (generated from OCaml). (Probably, you heard the story
that it is broken and abandoned, and yadda yadda...)

The digest of the theory, is that we have the following rules:

1. a -> b -> c ~ b -> a -> c
2. a * b -> c ~ a -> b -> c
3. unit -> a ~ a

And by applying these rules recursively we can build a set of types that
are isomorphic to the query (or partition all the types into the
isomoprhism groups).


[1]: http://ocaml.github.io/platform-dev/packages/argot/



On Mon, Feb 6, 2017 at 11:34 AM, Daniel Bünzli <daniel.buenzli@erratique.ch>
wrote:

> On Monday, 6 February 2017 at 17:07, Ivan Gotovchits wrote:
> > That's why the search should be up-to some isomorphism, e.g.,
> >
> > int -> float -> bool
> >
> >
> > is isomoprhic to
> >
> > float -> int -> bool
>
> The papers you mention seem to be about the type ismorophism theory but I
> can't see any that tries to asses end-user information needs and retrieval
> evaluation. I'm not sure you need the full theory to build an effective
> system to support a programmer, e.g. what about the effectiveness of a full
> type isomorphism search vs a bag of type identifiers with functional
> position model. Meaningfully limiting the query power to an IR system is a
> problem in practice, for space, computational and user interface reasons.
>
> D
>
>
>

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

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Caml-list] where are we on the Hoogle for OCaml front?
  2017-02-06 16:46               ` Ivan Gotovchits
@ 2017-02-06 16:55                 ` Frédéric Bour
  0 siblings, 0 replies; 15+ messages in thread
From: Frédéric Bour @ 2017-02-06 16:55 UTC (permalink / raw)
  To: caml-list

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

The experimental version of Merlin implements a similar feature (however 
it looks only in loaded packages, not the whole opam universe).

It is based on names (normalizing type constructors to resolve aliases), 
and uses variance information (types occurring in positive and negative 
positions) to guide the search.

The prototype query language looks like "-int +string" for "string of 
int". You can see a demo here: 
http://alfred.lakaban.net/~def/polarity.webm .


On 06/02/2017 16:46, Ivan Gotovchits wrote:
> Well yes, the theory is not required, but it is better to know one :) 
> I provided a link mostly because it is a sort of a homepage for 
> type-isomorphic search. There are links to the CamlLight 
> implementations (yeah the idea was there for some time) and Haskel. 
> Speaking of modern implementations, Argot [1] is the only example that 
> comes to mind. It has the isomorphic search and a type manifest 
> search. The search is implemented mostly in Javascript (generated from 
> OCaml). (Probably, you heard the story that it is broken and 
> abandoned, and yadda yadda...)
>
> The digest of the theory, is that we have the following rules:
>
> 1. a -> b -> c ~ b -> a -> c
> 2. a * b -> c ~ a -> b -> c
> 3. unit -> a ~ a
>
> And by applying these rules recursively we can build a set of types 
> that are isomorphic to the query (or partition all the types into the 
> isomoprhism groups).
>
>
> [1]: http://ocaml.github.io/platform-dev/packages/argot/
>
>
>
> On Mon, Feb 6, 2017 at 11:34 AM, Daniel Bünzli 
> <daniel.buenzli@erratique.ch <mailto:daniel.buenzli@erratique.ch>> wrote:
>
>     On Monday, 6 February 2017 at 17:07, Ivan Gotovchits wrote:
>     > That's why the search should be up-to some isomorphism, e.g.,
>     >
>     > int -> float -> bool
>     >
>     >
>     > is isomoprhic to
>     >
>     > float -> int -> bool
>
>     The papers you mention seem to be about the type ismorophism
>     theory but I can't see any that tries to asses end-user
>     information needs and retrieval evaluation. I'm not sure you need
>     the full theory to build an effective system to support a
>     programmer, e.g. what about the effectiveness of a full type
>     isomorphism search vs a bag of type identifiers with functional
>     position model. Meaningfully limiting the query power to an IR
>     system is a problem in practice, for space, computational and user
>     interface reasons.
>
>     D
>
>
>


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

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Caml-list] where are we on the Hoogle for OCaml front?
  2017-02-06 15:46     ` Daniel Bünzli
  2017-02-06 14:02       ` Hendrik Boom
@ 2017-02-06 17:46       ` Francois BERENGER
  1 sibling, 0 replies; 15+ messages in thread
From: Francois BERENGER @ 2017-02-06 17:46 UTC (permalink / raw)
  To: OCaml Mailing List

On 02/06/2017 09:46 AM, Daniel Bünzli wrote:
> On Saturday, 4 February 2017 at 04:58, Jacques Garrigue wrote:
>> For search by type signature you can use Jun Furuse's OCamlOScope:
>
> I'm a little bit curious. While I can see the benefit of having general full text search over value identifiers, type identifier and doc strings I was always a little bit dubious about type signature search -- in the end ML types for themselves are a rather weak specification language (I'm not talking about the invariants you may hide behind those of course).

For sure, a plain text search is also very useful and should be provided 
by such a tool (a search "a la Google"; by keywords).

> So beyond curiosity searches are actually people seriously using this to lookup a value they might need ?

But, when you have no idea of how people call the function you are 
looking for, you would go for the search by type signature.

And, because you are not lucky every time, the "hoogle for ocaml" should 
also give you interesting results even when the type signature you have 
input contains some errors.
Like, if the type signature you typed does not exist, you may be 
interested by the closest matching type signature.

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2017-02-06 17:47 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-27 14:22 [Caml-list] FroCoS 2017 - 2nd Call for Papers Geoff Sutcliffe
2017-01-27 16:39 ` [Caml-list] where are we on the Hoogle for OCaml front? Francois BERENGER
2017-02-04  3:58   ` Jacques Garrigue
2017-02-06 14:35     ` Francois BERENGER
2017-02-06 15:46     ` Daniel Bünzli
2017-02-06 14:02       ` Hendrik Boom
2017-02-06 16:00         ` Daniel Bünzli
2017-02-06 16:07           ` Ivan Gotovchits
2017-02-06 16:11             ` Ivan Gotovchits
2017-02-06 16:34             ` Daniel Bünzli
2017-02-06 16:46               ` Ivan Gotovchits
2017-02-06 16:55                 ` Frédéric Bour
2017-02-06 16:01         ` Ivan Gotovchits
2017-02-06 16:06           ` Daniel Bünzli
2017-02-06 17:46       ` Francois BERENGER

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).