News aggregator

Thr Neat templating system

haskell-cafe - Thu, 02/06/2014 - 9:59am
Howdy, I wrote a template system that I've used in a few personal projects and I thought it might be worth it to clean the core of it up a bit and show it to the world. I named it `neat`, for no other reason than I found it so; you can find the sources, an explanation of how it works and basic instructions on how to try it and experiment with it here: From the synopsis: "Neat is a slightly unusual templating tool that does not interpret templates at runtime; rather, it compiles templates statically from the source (input) language into the target (output) language. In that sense neat can be thought of as a very flexible preprocessor masquerading as something fancier. Of course, the result can then be embedded or compiled directly in order to accept arbitrary data at runtime and transform it as desired, dynamically." I haven't released it as a proper package because I don't know whether it'll be useful; for now it's just a pet project; it is MIT-licensed. I'd like to get you
Categories: Offsite Discussion

empty stable and current bindist directories

glasgow-user - Thu, 02/06/2014 - 9:03am and are empty. Is this correct? -- View this message in context: Sent from the Haskell - Glasgow-haskell-users mailing list archive at
Categories: Offsite Discussion

Hackage: Introduction - Thu, 02/06/2014 - 3:43am
Categories: Offsite Blogs

Clafer Tools 0.3.5 Released

Haskell on Reddit - Wed, 02/05/2014 - 6:14pm

Clafer is a lightweight yet expressive structural modeling language backed by reasoners (Alloy, Choco3, and Z3). Clafer has category theoretical formal semantics described in a PhD thesis.

Clafer's compiler, interactive instance generator, and wiki are implemented in Haskell. They are available on Hackage for the first time in this release (compiler, IG, and wiki). The wiki is a plug-in for Gitit. Curently, some manual steps are needed after cabal install (see READMEs).

Clafer Tools is a simultaneous release of 11 projects based on Clafer. The tools include alternative instance generators, multi-objective optimizers, and three web tools: IDE, configurator, and visualizer & explorer. Links to live demo instances are here.

  • Experience with Haskell

Overall, Haskell has served us very well. As the compiler has grown, we were able to do the necessary (sometimes significant) changes without breaking the software. We never had to throw away code and rewrite. Everything on the Haskell side was good (there were some smaller problems, of course). Where the problems start is when we have to integrate with other languages used by the backend reasoners: Java and Python, and the web tools: JavaScript. Having a FFI for Java and Python would definitely be very useful. Regarding JavaScript, we're looking forward to GHC 7.8 and ghcjs.

  • Finding Haskell developers

Some people simply refuse using Haskell, as it is perceived too hard. However, those who begin using it, including myself, never look back. I have personally hired and trained a 1st-year co-op student, who had only done one university course in FP using Scheme. He became proficient in Haskell after a month and very productive after two. That, to me, is a proof that anybody can learn and use Haskell, given some effort and training.

  • Looking into the future

The number one useful library for compiler development seems to be Lens. We'll give it a try and see whether it is going to help us get rid of boilerplate and improve our code. Also, we might consider switching from Node.js to one of Haskell web frameworks. Does anybody have any experience with that?

Finally, is there a way for cabal install to do some post installation steps, such as, download alloy.jar, modify PATH, etc. The exact steps are listed in the README and README. In general, having different installation procedures for binaries, Hackage, and source code is problematic.

submitted by mallai
[link] [6 comments]
Categories: Incoming News - Wed, 02/05/2014 - 5:46pm
Categories: Offsite Blogs

Учебник по Haskell - Wed, 02/05/2014 - 3:35pm
Categories: Offsite Blogs

ANNOUNCE: Applied Functional Programming (AFP)Summerschool 7-18 July 2014, Utrecht, Netherlands

General haskell list - Wed, 02/05/2014 - 3:11pm
=========== AFP Summerschool 2014 =========== Applied Functional Programming (AFP) Summerschool July 7-18, 2014 Utrecht University, Department of Information and Computing Sciences Utrecht, The Netherlands Summerschool & registration website: AFP website with edition 2013 info : contact : Uscs-afp< at > *** The 2014 edition of the Applied Functional Programming (AFP) Summerschool in Utrecht, Netherlands will be held from 7-18 July 2014. The summerschool teaches Haskell on both beginners and advanced levels via lectures and lab exercises. More info can be found via the references above, included here is an excerpt from the summerschool website: ``Typed functional programming in Haskell allows for the development of compact programs in minimal time and with maximal guarantees about robustness and correctness. The course introduces Hask
Categories: Incoming News

Is it possible to declare assignment operators inHaskell?

haskell-cafe - Wed, 02/05/2014 - 2:37pm
Hello! I'm wondering, is there any way to declare assignment operators in Haskell? For example, strict assignment operators: x .= y -- equals: let x = y `deepseq` y x := y -- equals: x <- y `deepseq` y As far as I can tell, Template Haskell is not able to do anything like this, because I can't event quote expressions like `let x = y` or `x <- y`. Is there any other way (plugin for GHC, etc)? Or maybe I'm doing something wrong and TH is quite able to handle this task? I'm pretty sure that I could use a preprocessor, but I wonted to find a better solution.
Categories: Offsite Discussion

ANN: asynchronous-exceptions

haskell-cafe - Wed, 02/05/2014 - 1:23pm
It is often useful to distinguish between synchronous and asynchronous exceptions. The common idiom is to run a user-supplied computation catching any synchronous exceptions but allowing asynchronous exceptions (such as user interrupt) pass through. base 4.7 (shipped with GHC 7.8) will have SomeAsyncException type that solves this problem. asynchronous-exceptions is a new package that serves two purposes: * provide compatibility with older `base` versions that lack the `SomeAsyncException` type * define convenient functions for catching only synchronous exceptions Roman _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe< at >
Categories: Offsite Discussion

Google Summer of Code 2014 project suggestion

haskell-cafe - Wed, 02/05/2014 - 12:00pm
Hi I have a suggestion for a project for Google Summer of Code 2014 Currently Cabal-Install is not a fully featured package manager and can be improved considerably by adding package management features to it. Features that could be implemented include: Interaction with ghc-pkg to be able to modify (upgrade/downgrade) or remove packages Support for having multiple versions of the same package installed Automatic installation of build tools when needed (Alex, Happy) this is not an exhaustive list of what could be added to make Cabal-Install behave more like a package manager and it could be extended to interact with system package manager where available Do you agree this would be a good project for GSoC 2014 ? Do you think some important features have been overlooked ? Do you think it would be better to write a replacement for Cabal-Install from scratch rather than extending it? I would appreciate feedback. Regards Bjarki Geir Benediktsson _________________________________________
Categories: Offsite Discussion

Proposal: add Control.Exception.SomeAsyncException

libraries list - Wed, 02/05/2014 - 10:56am
It is often useful to distinguish between synchronous and asynchronous exceptions. The common idiom is to run a user-supplied computation catching any synchronous exceptions but allowing asynchronous exceptions (such as user interrupt) pass through. There's no way to know how — synchronously or asynchronously — an exception was thrown, so we have to work around it by relying on the exception type itself. Unfortunately, the AsyncException type was designed as a leaf in the exceptions hierarchy, so it's not possible to extend it with user-defined asynchronous exception types. Thus I propose to add SomeAsyncException as an extensible type ("class") of asynchronous exceptions. It will be a direct subclass of SomeException, and will become the superclass of the existing AsyncException type. Users can then define their own asynchronous exceptions by subclassing SomeAsyncException. My main motivation for this change is exceptions used for timeouts. So the second part of this proposal it to mark System.Time
Categories: Offsite Discussion

New Win32 release more or less ready

libraries list - Wed, 02/05/2014 - 7:33am
Hi, Austin - I've played some catchup with the Win32 library today, and HEAD currently builds with 7.4 through 7.8 (32- and 64-bit) and contains some additional bugfixes. Unless some last minute changes come in, this is more or less what we should ship with GHC 7.8.1 final. Let me know when you're ready to roll a new 7.8.1 RC, and I can tag and upload Win32 to Hackage. B. _______________________________________________ Libraries mailing list Libraries< at >
Categories: Offsite Discussion