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.
Call for participation
- 2019-01-03 in Raleigh, NC, USA by Raleigh Haskell Meetup: (hack . yack)
- 2019-01-05 in Boston, MA, USA by Weekly Functional Programming Meetup: Hang out, chat FP, work on some code
- 2019-01-05 in Berkeley, CA by Code Self Study: Open Programming Session (Saturday Afternoon)
- 2019-01-07 in Irvine, CA by Orange Combinator - Functional Programming In OC: Combinating - The Weekly Function
- 2019-01-07 in Portland, OR, USA by Portland Functional Programming Study Group: PDX Func Practice Track - Parallel and Concurrent Programming in Haskell
- 2019-01-07 in Saint Louis, MO by STL Elm: Elm Code Night
- 2019-01-08 in Harwich, USA by Cape Cod Functional Programming Meetup: Lenses 👓 & hooks 🎣
- 2019-01-08 in Vancouver, BC, Canada by Functional Programming Vancouver: Functional Programming Vancouver - sharing, learning and using FP in daily life!
- 2019-01-08 in Santa Monica, CA, USA by Santa Monica Haskell Users Group: Haskell Study Group: Quick 2018 Check In
- 2019-01-08 in Toronto, ON, Canada by FunctionalTO: Introduction to The Lambda Calculus(for beginners)
- 2019-01-09 in Chattanooga, TN, USA by Chattanooga Haskell Users Group (CHUG): Curry in a Hurry
- 2019-01-09 in Berkeley, CA by Code Self Study: Open Programming Session (Wednesday, Berkeley)
- 2019-01-09 in Asheville, NC, USA by Asheville Coders League: Weekly Low-Pressure Social Get Together
- 2019-01-09 in Portland, OR, USA by Portland Functional Programming Study Group: PDX Func Theory Track - Logic and Proof
- 2019-01-10 in Raleigh, NC, USA by Raleigh Haskell Meetup: (hack . yack)
- 2019-01-10 in Calgary, AB, Canada by Functional Programmers YYC: Unconf (YYC.FP)
- 2019-01-10 in Las Vegas, NV, USA by Las Vegas Functional Programming User Group: Functional Programming Meetup
- 2019-01-12 in Chattanooga, TN, USA by Chattanooga Haskell Users Group (CHUG): Haskathon
- 2019-01-07 in Karlsruhe, Germany by Karlsruhe Haskell Meetup: Haskell Monday
- 2019-01-07 in Exeter, United Kingdom by Exeter Functional Programmers: Talk functional
- 2019-01-08 in EC2A 3JL, United Kingdom by London Type-Driven Development: The Little Typer Study Group - Session 3
- 2019-01-08 in Bristol, United Kingdom by CodeHub Bristol: Hack Night + Haskell Study Group
- 2019-01-09 in Sophia-Antipolis, France by Lambda Riviera: Lambda Riviera: Doing Deep Learning in Functional Programming
- 2019-01-09 in Berlin, Germany by Berlin Haskell Users Group: Haskell Wednesday
- 2019-01-09 in Stuttgart, Germany by Lambda Stuttgart: Lambda Stuttgart Meetup #12
- 2019-01-09 in Amsterdam, Netherlands by FP AMS: The Yoneda Lemma (Category Theory Study Group)
- 2019-01-09 in Berlin, Germany by Friendly Functional Programming Meetup Berlin: Friendly Functional Programming
- 2019-01-10 in Graz, Austria by Functional Programming Graz: Functional Programming Meetup
- 2019-01-10 in London, United Kingdom by Hoodlums: Hoodlums Meetup
- 2019-01-10 in London EC2, United Kingdom by Skills Matter - X Matters Series - Developer Events: Data Matters with Louis Dorard
- 2019-01-10 in Kortrijk, Belgium by Functional Kortrijk: FizzBuzz in Haskell by Embedding a Domain-Specific Language
- 2019-01-07 in Sydney, Australia by Sydney Type Theory: Homotopy Type Theory
- 2019-01-10 in Santiago, Chile by Santiago Scala Meetup: Santiago Scala Meetup