Haskell Weekly

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 to servant-server, we also use servant-client, to query the services implemented with servant-server as well as external services. While just using servant-server is quite pleasant, raw servant-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

Package of the week

This week’s package of the week is hal, a runtime environment for Haskell applications running on AWS Lambda.

Call for participation