Hi Ambrose
The general Idea is called deductive typing.
In Qi you write your types by giving logical rules if a symbol is of your
type.
This logical rules are then used to typecheck the programm
(Typecheck as a proof using depth-first search with chronoligical
backtracking).
The reason for this is the following:
You get a turing complete language for defining types. This enables the
type system to check for far more errors at compile time, which is the goal
of every type system.
For example you could write a type of an array with at most N elements to
have array bound checks at compile time.
I could also imagine, in the case of say ring defining types that represent
the ring spec and generate an error at compile time when a specific
non-optional key is omitted or one value has a wrong type.

I think it would best be build on top of core.typed (I don't know how much
of it it does already), using clojure (logic) code for defining types and
utilizing core.logic for typechecking.

I could be far off with my predictions because I don't know much about
core.typed and core.logic internals.
If you want to hear more of this please contact me and I will do further
research to write a specification of the idea to see if it is applicable.
Or you tell me what I wrote above is nonsense ...



On Wed, Feb 20, 2013 at 5:20 PM, Ambrose Bonnaire-Sergeant <
abonnaireserge...@gmail.com> wrote:

> Interesting idea, but the specifics of the project are not clear to me.
> Could you flesh out what
> you're trying to achieve in particular?
>
> Would you build on top of core.logic and core.typed?
>
> Thanks,
> Ambrose
>
> On Thu, Feb 21, 2013 at 12:13 AM, Maik Schünemann <
> maikschuenem...@gmail.com> wrote:
>
>> given the current position of core.logic and core.typed
>> I wonder if it would be in range of a gsoc project to implement something
>> similar to Qis type system for clojure
>> (here is a link to an example of using Qis type system
>> http://programmingkungfuqi.blogspot.de/2006/04/qi-and-magic-prime-type.html
>>
>> and it is documented in detail in the official qi book
>> http://www.lambdassociates.org/Book/page000.htm)
>>
>> If something like this is possible I'w be happy to give it a try
>>
>>
>> On Sat, Feb 16, 2013 at 2:43 PM, Daniel Solano Gómez <cloj...@sattvik.com
>> > wrote:
>>
>>> These sound like some good ideas.  Feel free to add a core.matrix
>>> category to the project ideas page.
>>>
>>> Thanks,
>>>
>>> Daniel
>>>
>>> On Sat Feb 16 01:02 2013, Mikera wrote:
>>> > Awesome stuff!
>>> >
>>> > core.matrix has a lot of great opportunities to work on something
>>> > meaningful, and I'd be happy to mentor one or more students in this
>>> area.
>>> > Top of my list would be:
>>> >
>>> >  - Extending core.matrix support to Incanter (medium, needs
>>> collaboration
>>> > with Incanter team)
>>> >  - A full NumPy style NDArray implementation in Clojure (large, quite
>>> > advanced)
>>> >  - core.matrix support for data tables (e.g. database resultsets,
>>> > statistical datasets etc.) (medium)
>>> >
>>> > Will post a proposal along these lines.
>>> >
>>> > On Friday, 15 February 2013 02:03:58 UTC+8, Daniel Solano Gómez wrote:
>>> > >
>>> > > Hello, all,
>>> > >
>>> > > It's official:  Google Summer of Code 2013 is on.
>>> > >
>>> > > Last year, Clojure was able to get four students who worked on
>>> projects
>>> > > like Typed Clojure, Clojure on Android, Clojure and Lua, and
>>> Overtone, and
>>> > > I'd love to see Clojure be a mentoring organisation again this year.
>>> > >
>>> > > I have created a GSoC 2013 page on the Clojure community wiki <
>>> > > http://dev.clojure.org/display/community/Google+Summer+of+Code+2013
>>> >.
>>> > >  Here you will be able to find the latest information about what's
>>> going on
>>> > > with Clojure's GSoC 2013 effort and how to get involved.
>>> > >
>>> > > Here's some ways you can help:
>>> > >
>>> > > * Let people in your local user groups or university know about
>>> Clojure
>>> > > and GSoC.
>>> > > * If you're going to Clojure/West, attend the GSoC unsession.
>>> > >
>>> > > For students
>>> > >
>>> > > * Start researching project ideas and get involved with the relevant
>>> > > communities to find mentors.
>>> > >
>>> > > For developers:
>>> > >
>>> > > Does your open source project have a backlog of features to
>>> implement?
>>> > >  GSoC is a great way to draw new contributors to your project.
>>> > >
>>> > > * Post it to the project idea page and become a mentor.
>>> > > * Let people know about GSoC on your project mailing list.
>>> > >
>>> > > I'd like to thank everyone in advance for helping with our GSoC 2013
>>> > > project.
>>> > >
>>> > > Sincerely,
>>> > >
>>> > > Daniel
>>> > >
>>> >
>>> > --
>>> > --
>>> > You received this message because you are subscribed to the Google
>>> > Groups "Clojure" group.
>>> > To post to this group, send email to clojure@googlegroups.com
>>> > Note that posts from new members are moderated - please be patient
>>> with your first post.
>>> > To unsubscribe from this group, send email to
>>> > clojure+unsubscr...@googlegroups.com
>>> > For more options, visit this group at
>>> > http://groups.google.com/group/clojure?hl=en
>>> > ---
>>> > You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> > To unsubscribe from this group and stop receiving emails from it, send
>>> an email to clojure+unsubscr...@googlegroups.com.
>>> > For more options, visit https://groups.google.com/groups/opt_out.
>>> >
>>> >
>>>
>>
>>  --
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>>
>
>  --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to