\ Haskell Weekly
\/\/ Issue 58
Welcome to another issue of Haskell Weekly! Haskell is a purely
functional programming language that focuses on robustness, concision,
and correctness. This is a weekly summary of what's going on in its
- A Haskell cross compiler for iOS
So far we have built a Haskell cross compiler for Raspberry Pi, as
well as a Haskell cross compiler for Android. To round this off, we
will build a cross compiler for iOS as well. With the WWDC signaling
the end of 32-bit devices, we will only build the 64-bit cross
- Event sourced aggregates in Haskell
In this first post I'll be digging into event sourced aggregates in
Haskell. It basically means that instead of persisting some state like
"Johns account balance is $100", you keep track of the changes to
John's account: "First he deposited $125, then withdrew $25".
- The round-trip property
We know that parsers and printers are supposed to be dual. We can
simply treat this as a law, and write a property test to enforce it.
This is both the simplest useful property test I can think of for a
working engineer and the most likely to reliably identify bugs of
- How well do you know your programming tools? Take the survey and test
your skills! (ad)
"It is a good survey which, in addition to remembering what I already
knew, gave me new tools to learn about and work with." This is how
developers feel about the Developer Economics survey. The survey also
shows you how you compare to other developers in your country. Plus
you may win an iPhone 7 or a Pixel 32GB phone.
- Assume it worked and fix it later
If your email service is down, it can be beneficial to have the signup
succeed regardless. By decoupling the success of an email request from
the success of account signup, you can improve the reliability of your
- Flexible data with Aeson
At a certain point, our Haskell programs have to be compatible with
other programs running on the web. This is especially useful given the
growing usage of micro-services as an architecture. Regardless, it's
very common to be transferring data between applications on different
- Tagless final encoding of a test language
I have experimented with a test language encoded in tagless final
style, instead of algebraic data types, to support the typed
combinators `beforeEach` and `beforeAll`. I want to share the Haskell
prototype I ended up with, and explain how I got there.
- Can't see the four-est for the trees
It's a fun puzzle so you may want to take a crack at it yourself
before reading on. But this isn't really about that puzzle. This is
about how sometimes when the mathematical insights aren't flowing it's
good to be a programmer.
- The Typeclassopedia is now up to date
The title pretty much says it all: I have finally finished (I hope)
updating the Typeclassopedia to reflect various recent changes to the
language and standard libraries (such as the AMP and BBP/FTP). Along
the way I also added more links to related reading as well as more
- Continuations from the ground up
It's difficult to learn functional programming without hearing about
continuations. Often they're mentioned while talking about boosting
the performance of pure functional code, sometimes there's talk of
control flow, and occasionally with "time-travel" thrown in there to
make it all seem more obscure.
- How to send me a pull request
I find myself repeating a lot of the same comments in pull requests,
so I decided to put together a list of what I consider the most
important features of a good pull request. Other people will have
different feelings on some of these, but the points below are what
apply to my projects.
Package of the week
This week's package of the week is Yesod, a web framework for productive
development of type-safe, RESTful, high performance web applications.
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
Only members subscribed via the mailman list are allowed to post.
|Free forum by Nabble||Edit this page|