Newsletter
Issue 145 2019-02-07
Subscribe now! We'll never send you spam. You can also follow our feed. Read more issues in the archives.
Welcome to another issue of Haskell Weekly! Haskell is a safe, purely functional programming language with a fast, concurrent runtime. This is a weekly summary of what’s going on in its community.
Featured
-
Curry-Howard Correspondence Example by Vladimir Ciobanu
This post will show how a simple proof works in Logic, Type Theory, and Category Theory: given
A ∧ (B ∧ C)
, prove(A ∧ B) ∧ C
. -
Announcing
ghc-lib
by Neil MitchellOn behalf of Digital Asset I’m delighted to announce
ghc-lib
, a repackaging of the GHC API to allow it to be used on different GHC versions. The GHC API allows you use the GHC compiler as a library, so you can parse, analyze and compile Haskell code. -
Categories with Monadic Effects and State Machines by Marcin Szamotulski
In this posts we will present categories which can run monadic actions, which we call categories with monadic effects (abr.
EffCategories
). It turns out that one can build them in an abstract way, much the same way as free monads, and use them to specify state machines in a succinct and type-safe manner. -
CodeWorld Update — February, 2019 by Chris Smith
I’ve been quiet on social media lately, but it’s been an active time for the CodeWorld project. Here’s a brief summary of some of the things happening in the last few months.
-
Comparing nub implementations by Andreas Klebinger
This post was inspired by this medium blog post and the following discussion on reddit. There was a lot of discussion about big O performance. But zero numbers, which was sad so here we go.
-
Haskell Weekly in 2018 by Taylor Fausak
At the end of each year I reflect on how things went. Here’s a look at Haskell Weekly in 2018, including popular links, the state of Haskell survey, and subscriber statistics.
-
Having your cake and eating it by Tim Spence
At Permutive, we’re committed to functional programming. That typically means also committing to immutable data structures (a very good thing!), but there are times when an algorithm would run much faster or be more space efficient if it could update state in-place.
-
Implementing Nested Quotations by Matthew Pickering
The purpose of this post is to explain how to implemented nested quotations. From our previous example, quoting a term
e
, gives us a term which representse
. It follows that we should be allowed to nest quotations so that quoting a quotation gives us a representation of that quotation. -
Implementing Union in Esqueleto I by Matt Parsons
We use the SQL
UNION
operator at IOHK in one of ourbeam
queries, andesqueleto
does not support it. To make porting the IOHK SQL code more straightforward, I decided to implement UNION. This blog post series will delve into implementing this feature, in a somewhat stream-of-thought manner. -
Proxy arguments in class methods: a comparative analysis by Ryan Scott
I’ve often wondered if there is one design to rule them all, so I wrote up this blog post in an attempt to better understand the pros and cons of each approach. Will we discover which design is unambiguously the best one by the end?
Jobs
In brief
- Alternative
newtype
wrappers foroset
- Asterius: A Haskell to WebAssembly compiler
- Coupons for Finding Success
- Expanded-Scope Calculus of Constructions
- Haskell bindings for the StarCraft II API
- Monthly Hask Anything (February 2019)
- Open Sourcing Haskell Bazaar
- Paramorphisms fusion for algebraic graphs
- Struggling With My Drinker’s Problem
- Why Haskell V: Type Families
Package of the week
This week’s package of the week is libtelnet, a wrapper around libtelnet, a C library for handling Telnet streams.