News aggregator

APLAS 2015: deadline extension

General haskell list - Fri, 06/05/2015 - 4:32am
** DEADLINE EXTENSION FOR SUBMISSIONS TO APLAS 2015: ** - Paper submission deadline: June 15, 2015. ********************************************************************* APLAS 2015, Call for Papers 13th Asian Symposium on Programming Languages and Systems Pohang, Korea, November 30 - December 2, 2015 <> ********************************************************************* *IMPORTANT DATES* Submission deadline: June 15, 2015 Author notification: August 17, 2015 Final version: September 7, 2015 Conference: November 30 - December 2, 2015 *INVITED SPEAKERS* Peter O'Hearn, Facebook Sukyoung Ryu, KAIST Eran Yahav, Technion Hongseok Yang, University of Oxford *ABOUT* APLAS aims to stimulate programming language research by providing a forum for the presentation of latest results and the exchange of ideas in programming languages and systems. APLAS is based in Asia, but is an international forum that serves the worldwide programming language community. APLAS is spon
Categories: Incoming News

The evil GADTs extension in ghci 7.8.4 (maybe inother versions too?)

haskell-cafe - Fri, 06/05/2015 - 4:29am
\y -> let x = (\z -> y) in x x is a perfectly fine there whose type is a -> a. (1) With no options, ghci infers its type correctly. (2) However, with -XGADTs, type check fails and raises occurs check. (3) We can remedy this by supplying some additional options (4) Howver, if you put -XGADTs option at the end, it fails again :( kyagrd< at >kyahp:~$ ghci GHCi, version 7.8.4: :? for help Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... linking ... done. Loading package base ... linking ... done. Prelude> :t \y -> let x = (\z -> y) in x x \y -> let x = (\z -> y) in x x :: t -> t Prelude> :q Leaving GHCi. kyagrd< at >kyahp:~$ ghci -XGADTs GHCi, version 7.8.4: :? for help Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... linking ... done. Loading package base ... linking ... done. Prelude> :t \y -> let x = (\z -> y) in x x <interactive>:1:30: Occurs check: cannot construct the infinite type: t0 ~
Categories: Offsite Discussion

Show /r/haskell: a software defined radio library written (mostly) in Haskell

Haskell on Reddit - Fri, 06/05/2015 - 12:40am

Available on github and hackage.

It's still a work in progress. Constructive criticism is very welcome.

submitted by acwalker
[link] [7 comments]
Categories: Incoming News

Would anyone be interested in information about the (u)LC?

Haskell on Reddit - Thu, 06/04/2015 - 11:54pm

I'm not sure if posts about the untyped lambda calculus are welcome here (and, given the adoration for types, I always feel like I'm offending someone when I talk about it). Some have told me it is still relevant to Haskell since it shows up reasonably often (DSLs, type-level programming, etc) and I agree, but I don't want to be disruptive. I've been programming a lot in the ULC lately and have been discovering some pretty interesting things that I couldn't find elsewhere and wouldn't mind sharing, but given the almost non-existent interest, I wonder if it is even worth the effort to create a blog and so on. Thoughts?

submitted by SrPeixinho
[link] [5 comments]
Categories: Incoming News

Created a Yesod sight, suggestions welcome, please.

Haskell on Reddit - Thu, 06/04/2015 - 9:19pm

This is a website I created using Haskell and Yesod. I am a relative newbie to this language, and I am looking for some constructive criticism for my site. The source code is available here:

Also, please note that I have a DNS entry through, and as such, I cannot get a well-signed certificate. So I signed my own certificate. If you do not trust that, I totally understand. I am also kind of new to hosting web servers and all that.

submitted by Coojerman
[link] [1 comment]
Categories: Incoming News

Somehow encapsulating identical first argument to several functions?

Haskell on Reddit - Thu, 06/04/2015 - 7:16pm

I have this situation that I wonder if there is a way to make smarter / neater.

I have these functions:

data Something a = ... etc.

funcA:: Something a -> b -> c

funcA = ...etc.

funcB:: Something a -> b -> c ->d

funcB firstArg x y = funcA firstArg ... etc.

funcC:: Something a ->b ->c->d

funcC firstArg x y = funcB firstArg ... etc. . . .

funcZ:: Something a -> b->c->d->e

funcZ firstArg x y z = funcY firstArg ... etc.

Is there a neat way to do this so I don't need to include the "Something a" in the type signature ? In the end I'm just passing it down from funcZ to funcA...

submitted by asswaxer
[link] [5 comments]
Categories: Incoming News

Using lenses to write a compiler front-end?

Haskell on Reddit - Thu, 06/04/2015 - 6:50pm

Hey all,

I've been slowly learning about lenses and the various associated constructs. In parallel, I'm studying compiler front-ends - lexing, parsing, type-checking.

One interesting aspect of the design of a compiler front-end is that it needs to "bubble up" information back to the programmer. If there is a type error, I can't just throw an internal error; I need to go "backwards" through the parser and lexer to get the line number, column number and length of the expression that caused the error, all so I can contextualize the type error to it.

I'm wondering which abstraction best captures this. I feel like a well-engineered front-end in this manner could make static analysis, source highlighting, etc. vastly easier.

submitted by PM_ME_UR_OBSIDIAN
[link] [10 comments]
Categories: Incoming News

Sound of Text - A web application written by a Haskell novice

Haskell on Reddit - Thu, 06/04/2015 - 3:36pm

Starting with the most important bits:

Link to site:

Link to Github:

I read up on different Haskell web frameworks and I chose Snap. I didn't try the others, but I don't regret my decision. If you are a beginner, I would highly recommend the Snap Framework. It wasn't too magical.

The site already has a few hundred active visitors. I initially built this site over a year ago in PHP. However, I rewrote it in Haskell and I wanted to let somebody know who might find that interesting.

If you have any questions, please let me know. If you want to review my code, that would be great.

It's currently running on the smallest DigitalOcean node available. I had a few hiccups with installing Cabal, but I can explain that, as well.

I hope you enjoy my site!

submitted by RedditWithBorders
[link] [17 comments]
Categories: Incoming News

Thoughts on -XLambdaDo syntax

Haskell on Reddit - Thu, 06/04/2015 - 2:45pm

At ZuriHac I've been starting with a toy parser and the following recurring pattern made me think of \do as a syntactic sugar for pattern matching under the do:

\str -> do ('*' : rest) <- return str ...

Analogously to \case one could abbreviate this as

\do ('*' : rest)

Clearly this uses the pattern-match fail mechanism transparently, which is arguably a plus... I wonder if others have seen similar use-cases too?

submitted by heisenbug
[link] [41 comments]
Categories: Incoming News

Thoughts on a proposed package management strategy?

Haskell on Reddit - Thu, 06/04/2015 - 1:22pm

The server would come up with "sync-states". A sync-state is a set of packages that are known to work together.

Sync-states would be determined like this; when a new version of a package is uploaded all packages that require that package are recompiled and their test-suites run. Then if the compile/testing is successful a new sync-state is produced.

When uploading a package the developer would first sync to the latest sync-state and ensure it works with that before publishing. Similarly when someone goes to install a package a sync is performed first and then the package is installed.

I think this would vastly simplify things as every package would be using the same versions of dependencies and they would be known to compile and test successfully. Also every developer and user would be using similar versions of the software.

Syncing to the latest state would not be that bad. I just deleted and reinstalled all the packages I require. There were about 150 of them and it took less than a half-hour to reinstall them and my machine is not great.

submitted by zandekar
[link] [35 comments]
Categories: Incoming News

Closed Type Families: separate instance groups?

glasgow-user - Thu, 06/04/2015 - 12:09am
Currently (GHC 7.8.3) the only form for Closed Type Families is: type family F a where ... -- list your instances here (This was considered a common use case -- for example in HList to put the type-matching instance with the non-matching, and that would be total coverage; rather than needing a type family decl and an instance decl with the instance head same as family. That was an optimisation over ...) Way back the design was more like this: type family F a type instance F (Foo b c) where F (Foo Int c) = ... F (Foo b Char) = ... type instance F (Bar e f g) where F (Bar Int f g) = ... The idea was that the separate instance groups must have non-overlapping heads. This is handy if Foo, Bar, etc are declared in separate places/modules. You can put the instances with the data decl. And quite possibly the family decl is in an imported/library module you don't want to touch. Is this separate instance group idea still a gleam in someone's eye? If not, is th
Categories: Offsite Discussion

Why can QuasiQuoters only be used to generate top-level declarations?

Haskell on Reddit - Wed, 06/03/2015 - 9:22pm

There's probably a good reason, but it bugs me that this is valid:

[qq| thing :: Custom -> DSL |] thing = ...

...while this is not:

other = thing where [qq| thing :: Custom -> DSL |] thing = ...

...but this is:

other = thing where thing :: [qq| Custom -> DSL |] thing = ...

(Originally posted to /r/haskellquestions, but this didn't get any responses there so I thought I'd try the bigger subreddit.)

submitted by spindakin
[link] [10 comments]
Categories: Incoming News

What is the difference between an Algebraic Data Type and an Abstract Data Type?

Haskell on Reddit - Wed, 06/03/2015 - 8:41pm

I am struggling to understand the difference between those two concepts. To me they look pretty much the same, AlgDT allow type composition but so do AbsDT right?

For example I can compose ints and chars in an abstract data type:

struct coordinates { int x; int y; char data_point_name[5]; };

One powerful feature of AlgDT that really impressed was that I was able to define the set of natural numbers recursively:

data Nat = Z | S Nat

where Z is 0 and S the successor function. That is something that I could not do using 'struct' but does it make the different between AlgDTs and AbsDTs a fundamental one?

I know that I am confusing something and that there is a flaw in my understanding but I don't know what! Thank you for reading.

submitted by fictiveaaron
[link] [42 comments]
Categories: Incoming News

Proposal: Shorter Import Syntax

haskell-cafe - Wed, 06/03/2015 - 6:15pm
Hi Everyone, I didn't think this would see any resistance as it doesn't break anything, but this is the internet, so, if you haven't already, take a look at this GHC feature request <> The idea is that rather than writing, import Data.Map (Map) import qualified Data.Map as M you could instead write, import Data.Map (Map) as M The Map identifier would imported unqualified, while M would be introduced as an alias for the qualified import of Data.Map. Note that, currently, following a parenthesized group with the "as" keyword is a parse error. So allowing this syntax would not affect any currently working programs. I've mentioned this proposal before and gotten good response, so I finally wrote it up last night after people on IRC responded positively to it. As well as IRC and trac, I put the link up on Twitter to get it in front of a large audience, and here's what we have after a bit over 12 hours (not counting the handful of supporters in IRC): +20 -2 Yo
Categories: Offsite Discussion

haskellers' view of closures? How is this stuff an improvement on OOP?

Haskell on Reddit - Wed, 06/03/2015 - 6:12pm

Touring around other languages like javascript, some of these functional-ish languages seem to make a big deal of closures as part of the functional paradigm.

To me it looks like OOP by another name - passing state and associated method around as a bundle. In fact, I think in the C++ world, STL took pains to characterize lambdas+captures as "stamping out classes" and not "anonymous functions".

The only thing that's slightly better than vanilla OOP is that it seems to default to a many-1 data to function coupling, whereas with OOP you have many-to-many data to function coupling. All in all closures feel a bit like OOP-in-sheep's clothing.

How do haskellers view closures? Maybe there's a win that I'm selling short here?

submitted by klaxion
[link] [36 comments]
Categories: Incoming News

Magnus Therning: Oh no! Success

Planet Haskell - Wed, 06/03/2015 - 6:00pm

This can’t possibly be good for Haskell…

We chose Haskell and the FP Complete stack because we knew the complexity of the problem required a new approach. The result was that we built better software faster than ever, and delivered it defect-free into a production environment where it has proven robust and high-performance

Categories: Offsite Blogs