Newsletter
Issue 140 2019-01-03
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
-
A tale of servant clients by Clement Delafargue
At Fretlink, we use Servant a lot. All of our Haskell webservices are written using
servant-server
, which is a pure joy to use. In addition toservant-server
, we also useservant-client
, to query the services implemented withservant-server
as well as external services. While just usingservant-server
is quite pleasant, rawservant-client
use can get complicated. -
All About Strictness Analysis (part 2) by Sebastian Graf
At the end of part 1 from December 4, I made a promise to implement a strictness analysis à la GHC with you. Why would this be useful? In the last post, I argued that a rough understanding of how strictness analysis works helps to debug and identify the actual causes of missed unboxing opportunities and fix them with minimal effort. So here it is, enjoy!
-
Call for Ideas for 2019 by Jasper Van der Jeugt
Google Summer of Code will take place again in 2019, for the 15th year of the program! As far as we know, a really important part of our application to GSoC is the list of ideas we provide. For that, I would like to count on all of you.
-
Lens into wrapped newtypes by Jappie Klooster
Control.Lens.Wrapped
uses the isomorphism property to introduce a type class Wrapped. Let’s explore use cases, because after all, it doesn’t appear to do much at first glance. What’s the point of formalizing wrapping and unwrapping of types? -
Parsing infinite streams with attoparsec by Wander Hillen
In a previous article, we looked at how Redis replication works and obtained a replication stream in our terminal using
netcat
. However, the data sent over was not very readable due to being encoded with the Redis Serialization Protocol. Since RESP is not native to most programs, parsing it will be necessary before an application can make use of the data. -
Type annotations vs partial type signatures vs visible type applications by Alexey Radkov
In Haskell, function calls must sometimes be annotated. One of well known examples is reading arbitrary types:
read "5" :: Int
. Without the type annotation:: Int
, compiler cannot decide what the user wants to read.
Jobs
-
Galois is Hiring! (ad)
Galois is looking for Software Engineers/Researchers and Project Managers! We collaborate with organizations like NASA, DARPA, and Amazon Web Services to explore blue sky ideas and turn them into usable technology. Some of the things we’ve worked on in the past: Formal methods, static analysis, binary analysis, cryptographic algorithms, domain specific languages, programming languages theory, abstract interpretation, type theory, formal verification and software correctness, reinforcement learning, autonomous systems assurance, communication security, cyber-deception for network defense, DDoS defense, provable hardware security, statistical anomaly detection for detecting advanced persistent threats. We think working here is awesome (see https://lifeatgalois.com).
-
Infrastructure Engineer at Arcesium in NYC
Join the infrastructure team of a fintech company using AWS, Kubernetes, Python and Haskell to build a declarative infrastructure. We’re looking for someone experienced in design, development, and systems engineering. Compensation is competitive.
In brief
- Compiling to Categories 3: A Bit Cuter
- Cooper Storage and Type-Level Haskell
- Happy New Years from MMH!
- liftAN
- Monthly Hask Anything (January 2019)
- reviewN to review with multiple arguments!
- Tuple bifunctor
- usethetypes.com
- Why I’m No Longer Taking Donations
Package of the week
This week’s package of the week is hal, a runtime environment for Haskell applications running on AWS Lambda.