Issue 140 2019-01-03
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.
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-serveras well as external services. While just using
servant-serveris quite pleasant, raw
servant-clientuse 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.Wrappeduses 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.
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.
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).
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.
- Compiling to Categories 3: A Bit Cuter
- Cooper Storage and Type-Level Haskell
- Happy New Years from MMH!
- Monthly Hask Anything (January 2019)
- reviewN to review with multiple arguments!
- Tuple bifunctor
- 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.