News aggregator

Injective type families for GHC - syntax proposals

haskell-cafe - 0 sec ago
Haskellers, there is some discussion going on at the moment about implementing injective type families in GHC [1]. I'd like to hear your opinions on proposed syntax for this new feature. == Problem == Currently GHC assumes that type families are not injective. This is of course conservative and the idea behind implementing injective type families is to allow the programmer to explicitly declare that a type family has the injectivity property (which GHC will of course verify). == Forms of injectivity == Injectivity can take forms more complicated than just determining the LHS from RHS: A. RHS determines all arguments on the LHS. Example: type family Id a where Id a = a Here the RHS uniquely determines LHS. B. RHS determines some but not all arguments on the LHS. Example (contrieved): type family G a b c where G Int Char Bool = Bool G Int Char Int = Bool G Bool Int Int = Int Here RHS uniquely determines `a` and `b` but not `c`. C. RHS and some LHS ar
Categories: Offsite Discussion

ANN: HacBerlin - Haskell Hackathon in Berlin,26-28 Sep 2014

Hi everyone, this is just a quick reminder: The Haskell Hackathon in Berlin starts in 9 days and there are very few places left. Please register now: http://goo.gl/aLfnWu Where: Berlin, Germany When: Fri 26 - Sun 28 September 2014 We will do lots of Haskell hacking and listen to two excellent talks: * Beyond Parsec -- Revisiting Parser Combinators, by Andres Löh * Chordify: Advanced Functional Programming for Fun and Profit, by José Pedro Magalhães Meet in Berlin, discuss, hack together and improve the Haskell infrastructure. We welcome all programmers interested in Haskell, beginners and experts! For all details, visit our wiki page (http://www.haskell.org/haskellwiki/HacBerlin2014) and make sure to register now! Cheers, Stefan
Categories: Incoming News

ANN: HacBerlin - Haskell Hackathon in Berlin,26-28 Sep 2014

haskell-cafe - 0 sec ago
Hi everyone, this is just a quick reminder: The Haskell Hackathon in Berlin starts in 9 days and there are very few places left. Please register now: http://goo.gl/aLfnWu Where: Berlin, Germany When: Fri 26 - Sun 28 September 2014 We will do lots of Haskell hacking and listen to two excellent talks: * Beyond Parsec -- Revisiting Parser Combinators, by Andres Löh * Chordify: Advanced Functional Programming for Fun and Profit, by José Pedro Magalhães Meet in Berlin, discuss, hack together and improve the Haskell infrastructure. We welcome all programmers interested in Haskell, beginners and experts! For all details, visit our wiki page (http://www.haskell.org/haskellwiki/HacBerlin2014) and make sure to register now! Cheers, Stefan
Categories: Offsite Discussion

[ANN] BOB 2015: Call for Contributions

Here's a quick reminder. The Deadline for BOB 2015 is in about two weeks (30 September 2014). The BOB conference will have a strong focus on functional programming, so Haskell submissions are very welcome. Please consider submitting! BOB Conference 2015 Berlin 23.1.2015 http://bobkonf.de/2015/ CALL FOR CONTRIBUTIONS English: http://bobkonf.de/2015/cfp.html German: http://bobkonf.de/2015/cfp.html Deadline: September 30, 2014 You drive advanced software engineering methods, implement ambitious architectures and are open to cutting-edge innovation? Attend this conference, meet people that share your goals, and get to know the best software tools and technologies available today. We strive to offer you a day full of new experiences and impressions that you can use to immediately improve your daily life as a software developer. If
Categories: Incoming News

Using Haskell to study provability logic?

Haskell on Reddit - 1 hour 22 min ago

This is kind of an open-ended question.

I'm trying to figure out if this proof of Löb's theorem can be translated into Haskell step by step. The idea was inspired by sigfpe's post. Unfortunately he used the Functor type class, whose law (a→b)→(□a→□b) isn't valid in modal logic. I'm trying to fix that drawback and use the correct law □(a→b)→(□a→□b) instead.

Here's a tentative type signature for what I want:

class Prov p f where mp :: p (a -> b) -> p a -> p b dup :: p a -> p (p a) fix :: p (f a -> a (f a)) unfix :: p (a (f a) -> f a) loeb :: Prov p f => p (p a -> a) -> p a loeb = ???

The idea is to use p as the provability predicate, and f as the fixpoint operator. Note that there's no method with type a -> p a, because not all true sentences are provable. If we had such a method, the problem would be much easier.

Trying to implement that, I ran into a few difficulties:

1) Haskell doesn't have type-level lambdas, so fix and unfix can only be used with newtypes. That requires adding more methods to Prov, for packing and unpacking every single newtype. I wish there was a better way.

2) The methods of Prov don't seem to be enough. It looks like I need versions of dup and mp that work inside p as well. Is there a workaround?

3) Using f seems like a hacky approximation to the diagonal lemma. Can we do better?

I guess I'm just confused overall. Is it even feasible to use such a direct encoding for modal logics, like provability logic? Or should I go lower level and define explicit types for sentences, proofs, etc.?

submitted by want_to_want
[link] [comment]
Categories: Incoming News

a question about cabal files

haskell-cafe - 4 hours 50 min ago
Hi cafe, I'm developing a library. In this package, some tools for development are included. I would like to compile these tools when I'm developing but I don't want users to compile them. Are there any ways to express such modes in cabal files? ("Executable" cannot be located under "if".) Or should I prepare a separated package for the development tools? Regards, --Kazu
Categories: Offsite Discussion

Towards Shake 1.0

Haskell on Reddit - 5 hours 30 min ago
Categories: Incoming News

What's in store for the most widely used language by discerning hackers?

Lambda the Ultimate - Tue, 09/16/2014 - 11:14pm

Or, in other words, what's the future of Emacs Lisp (and unavoidable HN discussion).

The original message contains some interesting tidbits. I am not sure how the discussion on emacs-devel will develop. But speculating about things such as Guile elisp is, of course, our bailiwick.

Categories: Offsite Discussion

Security with 'cabal install'

Haskell on Reddit - Tue, 09/16/2014 - 10:47pm

Are hackage packages signed? Does cabal download packages via http or https?

submitted by MintyGrindy
[link] [6 comments]
Categories: Incoming News

LPNMR 2015 - Preliminary Call for Papers - 13th International Conference on Logic Programming and Non-monotonic Reasoning

General haskell list - Tue, 09/16/2014 - 10:00pm
[apologies for any cross-posting] Call for Papers --------------------------------------------------------------------------- 13th International Conference on Logic Programming and Non-monotonic Reasoning LPNMR 2015 http://lpnmr2015.mat.unical.it/ Lexington, KY, USA September 27-30, 2015 (Collocated with the 4th Conference on Algorithmic Decision Theory 2015) --------------------------------------------------------------------------- AIMS AND SCOPE LPNMR 2015 is the thirteenth in the series of international meetings on logic programming and non-monotonic reasoning. LPNMR is a forum for exchanging ideas on declarative logic programming, non-monotonic reasoning, and knowledge representation. The aim of the conference is to facilitate interactions between researchers and practitioners interested in the design and
Categories: Incoming News

Yesod Web Framework: Persistent 2.1 Release Candidate

Planet Haskell - Tue, 09/16/2014 - 4:15pm

We are happy to announce a stable persistent 2 release candidate.

We previously announced an unstable release of persistent 2. It was a good idea to call it unstable because some commenters pointed out that we were not exposing the full power of the new flexible Key type. This lead to a couple of breaking releases that organizied the internal types of persistent. All of these are on the unstable 2.0.x series.

persistent-2.0.3.* is on hackage now. We consider this a release candidate that will be promoted to persistent-2.1. We may wait until the haddocks build on hackage before releasing.

Ongoing persistent maintainership

Persistent is of huge importance to the Hasekll community, playing the role of default ORM. The project has benefited immensely from the community involvement. We get a lot of prompt bug reports that often include fixes. And there have been many great new features added by contributors.

However, persistent it is lacking in dedicated maintainers for each backend. We would like for Michael to keep doing a great job stewarding the project, but for others to step up and help own a SQL backend.

An extreme example of a lack of backend maitenance is when we received a pull request for a CouchDB backend. It was great to share the code as a starting point, but it was already using an older version of persistent and is now sitting in the experimental folder in a bit-rotted state.

In general a persistent backend can only be first class and in our tree with a dedicated maintainer. Michael and I maintain persistent and persistent-template. I maintain the persitent-mongoDB backend. The issue now is more with the SQL backends, where the maitenance and development for them is being pushed on Michael. For example, I implemented custom Key types in persistent, persistent-template, and persistent-mongoDB. Michael and myself implemented them for persistent-sqlite, but it still needs to be implement for persistent-postgressql and persistent-mysql.

Maintaining persitent and persitent-template has had a questionable cost/benefit ratio for me. But I have personally found that maintaing the persistent-mongoDB backend has paid off well for me. I need to have a good understanding of what is happening with my code that deals with the database. Rather than treating it as a black box I make continous incremental improvements to the library that I rely on, and I can smoothly get code onto hackage rather than having local modifications.

Let us know if you are interested in helping to maintain a backend.

Categories: Offsite Blogs

Neil Mitchell: Towards Shake 1.0

Planet Haskell - Tue, 09/16/2014 - 2:54pm

Summary: I've just released a new version of Shake, with a --demo feature and an underlying continuation monad. I want to release v1.0 in the near future.

I've just released a new version of the Shake build system, version 0.13.3. While the version number is only 0.0.1 higher, the changelog lists a large number of improvements. In particular, two changes are:

  • The Action monad is now based on continuations, which allows Shake to suspend threads without requiring a GHC RTS thread. The result is significantly less memory used on thread stacks. I still find it quite amazing that Haskell has such powerful and robust abstraction mechanisms that a huge change doesn't even break the API.
  • The shake binary now features a --demo mode, invoked by running shake --demo. This mode generates a Shake project, compiles it, and shows off some of the features of Shake. You can the output of --demo here.

Version 1.0

With the two features above, I'm now looking towards Shake version 1.0. I'm not looking to make any significant backwards-incompatible change, or necessarily any code/API changes at all. However, if you have anything you think should be addressed before reaching such a milestone, please comment on the issue tracker or email the mailing list.

Shake website

The one thing I still want to finish before releasing version 1.0 is to have a proper website for Shake. I've registered shakebuild.com which will host the content, and have set up GitHub pages to serve it up. I have some rough content in the docs directory and a prototype generator in the website directory - as an example it currently generates something a bit like this for the user manual, but with a table of contents when run through the latest generator. I'd appreciate any help with the content, the generator, or the styling - just email the mailing list.

Categories: Offsite Blogs

Chung-chieh Shan: A challenge for a better community

Planet Haskell - Tue, 09/16/2014 - 10:09am


Did you know that all ACM-sponsored conferences have an anti-harassment policy? I didn’t, until I chaired the Haskell Symposium last year. The concise policy says, among other things, that people shouldn’t use my family constitution to interfere with my professional participation. And the policy has teeth. That’s great.

My not knowing the policy and not seeing it publicized didn’t make me go out of my way to harass anyone. But it did make me less sure and less comfortable that I belonged at ICFP. Briefly, it’s because I didn’t know if it would be common ground at the conference that my actual self was fully human. That’s not something I can take for granted in general society. Also, it’s because I didn’t know whether my fellow conference attendees were aware of the policy. We could all use a reminder, and a public signal that we mean it.

For these reasons, I’m very happy that ICFP will start to publicize ACM’s existing anti-harassment policy and make sure everyone registered knows it. All ACM conferences should do it. That’s why Tim Chevalier, Clement Delafargue, Adam Foltzer, Eric Merritt, and I are doing two things. We ask you to join us:

  1. Donate to the Ada Initiative. Our goal is for the functional programming community to raise $4096 by the end of Friday (Sept 19) UTC. To count toward this goal, please use this link: http://supportada.org/?campaign=lambda
  2. Call on the ACM and tell your friends. For example, I tweeted this:
    I donate to @AdaInitiative because I want @TheOfficialACM events to announce their anti-harassment policy http://supportada.org/?campaign=lambda #lambda4ada

Thanks for improving our professional homes!

Categories: Offsite Blogs

Hackage package "synopsis" sections

haskell-cafe - Mon, 09/15/2014 - 6:38pm
Hi there, If any of you have ever used CPAN you may agree with me that the synopsis sections customarily included in each package's POD are generally invaluable for getting a quick overview of how to use the facilities provided by that package. I wonder if we might be able to encourage the Hackage community to do something similar? Perhaps in the cabal description authors could include a synopsis with a few code examples? Obviously, I ought to start the ball rolling but I don't actually have any code published on Hackage. Any thoughts? Richard
Categories: Offsite Discussion