Skip to content

Commit 0f32c1d

Browse files
authored
Merge pull request #415 from haskellweekly/issue-471
2 parents f11dac3 + 54f3def commit 0f32c1d

File tree

3 files changed

+69
-2
lines changed

3 files changed

+69
-2
lines changed
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
Welcome to another issue of Haskell Weekly!
2+
[Haskell](https://www.haskell.org) is a safe, purely functional programming language with a fast, concurrent runtime.
3+
This is a weekly summary of what's going on in its community.
4+
5+
## Featured
6+
7+
- [Analyzing API Design via Algebraic Laws](https://reasonablypolymorphic.com/blog/api-analysis/index.html) by Sandy Maguire
8+
> The other day, someone asked: "Why doesn’t [the Data.Map function] `unionWith :: (a -> a -> a) -> Map k a -> Map k a -> Map k a` allow for different value types the way `intersectionWith :: (a -> b -> c) -> Map k a -> Map k b -> Map k c` does?" This is a very reasonable question, and it lead down an interesting rabbit hole at the intersection of API design and efficient implementation.
9+
10+
- [Beginnings of a Haskell Game Engine](https://vitez.me/haskell-game-engine-beginnings) by Mitchell Vitez
11+
> Recently I’ve been interested in how game engines work under the hood. Obviously, game engines can be incredibly complex pieces of software, with millions of lines of code necessitating rendering, physics, audio, and other systems all working together, but I was mostly interested in the foundations. How do we start from the basic pieces and create a platform on which we can build games?
12+
13+
- [Elm test distributions](https://martin.janiczek.cz/2025/05/01/elm-test-distributions.html) by Martin Janiczek
14+
> …in which I’ll tell you how you can make sure your property based tests _are_ testing the interesting cases.
15+
16+
- [Emphasize “Why Haskell?” on haskell.org landing page](https://discourse.haskell.org/t/emphasize-why-haskell-on-haskell-org-landing-page/12036) by malteneuss
17+
> To grow the overall Haskell user base a common suggestion was to clearly answer the question “Why should I choose Haskell (over all the other programming languages I could use)?” What do you think? How would you formulate it and what else would you improve?
18+
19+
- [From Haskell to a New Structured Combinator Processor](https://researchportal.hw.ac.uk/en/publications/from-haskell-to-a-new-structured-combinator-processor) by Yukang Xie, Craig Ramsay, Robert James Stewart, Hans-Wolfgang Loidl
20+
> This paper presents KappaMutor, a new graph reduction processor, along with its Haskell compiler. KappaMutor is based on structured combinators, a recently proposed combinator encoding, which is more flexible and efficient than fine-grained SKI combinators. The processor exploits parallel memories to enable single-cycle reduction of structured combinators while maintaining good compactness, utilising less than 1% of the logical resources on a modern FPGA. Its Haskell compiler implements novel code generation strategies designed to minimise combinator usage and achieve full laziness --- the first such implementation for structured combinators, to the best of our knowledge. Based on our measurements, structured combinators can reduce runtimes by 9% to 58%, compared to running equivalent SKI combinator programs on KappaMutor.
21+
22+
- [GHC 9.10.2 is now available](https://discourse.haskell.org/t/ghc-9-10-2-is-now-available/11992) by Zubin Duggal
23+
> The GHC developers are very pleased to announce the availability of the final release for GHC 9.10.2.
24+
25+
- [Horizon Haskell with Daniel Firth](https://fulltimenix.com/episodes/horizon-haskell-with-daniel-firth) by Full Time Nix
26+
> Horizon Haskell is a publishing system for creating and maintaining Stable Package Sets for Haskell on Nix. Stable Package Sets save development time by providing collections of packages known to build and work together. Horizon allows you to compute custom stable package sets for Nix and store them as reusable inputs for your Haskell projects.
27+
28+
- [Prompt chaining reimagined with type inference](https://www.haskellforall.com/2025/05/prompt-chaining-reimagined-with-type_2.html) by Gabriella Gonzalez
29+
> At work I’ve been researching how to improve the ergonomics of prompt engineering and I wanted to share and open source some of what I’ve done. This initial post is about how I’ve been experimenting with using bidirectional type inference to streamline prompt chaining.
30+
31+
- [Scrap your iteration combinators](https://h2.jaguarpaw.co.uk/posts/scrap-your-iteration-combinators/) by Tom Ellis
32+
> Typical programming languages have “for” and “while” loop constructs that allow iteration over a range of numbers, over the elements of a container, until a condition is satisfied, or simply indefinitely. Haskell has standard library functions called `for_` (with an underbar), `for` (without an underbar) and `forever` that work very generally to achieve similar purposes. Besides these general constructs, there are a variety of specific constructs used for looping and iteration. Taken together we might call them “iteration combinators”. This article explains how specific iteration combinators can be replaced by the general ones, and suggests conditions under which you might choose to do so.
33+
34+
- [The Haskell Unfolder Episode 43: monomorphism restriction and defaulting](https://well-typed.com/blog/2025/05/haskell-unfolder-episode-43-monomorphism-restriction-and-defaulting/) by Andres Löh, Edsko de Vries
35+
> In this episode, we are going to look at two interacting “features” of the Haskell language (the monomorphism restriction and defaulting) that can be somewhat surprising, in particular to newcomers: there are situations where Haskell’s type inference algorithm deliberately refuses to infer the most general type. We are going to look at a number of examples, explain what exactly is going on, and why.
36+
37+
## Jobs
38+
39+
- [Site Reliability Engineer at Artificial](https://discourse.haskell.org/t/job-site-reliability-engineer-at-artificial/11977)
40+
> We at Artificial are hiring a SRE to help us scale and operate the core infrastructure powering our platform.
41+
42+
## In brief
43+
44+
- [Haskell Infrastructure Migration Update](https://discourse.haskell.org/t/haskell-infrastructure-migration-update/11989) by José Manuel Calderón Trilla
45+
> Historically, Haskell infrastructure has had one primary host: Equinix Metal. As the name implies, this was a bare-metal product which provided the infrastructure team with a lot of flexibility in managing Haskell’s services. Equinix provided upwards of $100k per year in infrastructure hosting support to Haskell and also provided resources to several other OSS communities. This is a big deal, we thank Equinix for provided the OSS community with such a valuable service. Near the end of 2024 Equinix announced that they would be sun-setting the Metal product and that all users would need to migrate to a new platform (i.e. even if we stayed with Equinix, we would have to migrate to a different product).
46+
47+
- [langchain-hs v0.0.2.0 released](https://discourse.haskell.org/t/ann-langchain-hs-v0-0-2-0-released/12009) by tushar
48+
> I’m excited to announce the release of langchain-hs v0.0.2.0, which brings a lot of progress and new features to the Haskell ecosystem for LLM-powered applications!
49+
50+
- [Servant-routes: finally published v0.1.0.0](https://discourse.haskell.org/t/servant-routes-finally-published-v0-1-0-0/11998) by Frederick Pringle
51+
> A little over a year ago, I announced that I’d published a candidate for my first package `servant-routes`. I then completely forgot about it until yesterday, when @shinzui reminded me that it existed. I’ve cleaned it up a bit and now properly published version 0.1.0.0 on Hackage.
52+
53+
## Show & tell
54+
55+
- [Ihaskell + dataframe integration](https://discourse.haskell.org/t/ihaskell-dataframe-integration/12014) by Michael Chavinda
56+
> After struggling a fair amount with ihaskell I managed to get a very brittle setup going and an accompanying example.
57+
58+
- [The Nile programming language](https://discourse.haskell.org/t/the-nile-programming-language/11984) by stevan
59+
> The other day I stumbled across the Nile programming language, which was developed by Alan Kay et al, as part of the “STEPS Toward the Reinvention of Programming” project (a successor to the Smalltalk system). Apparently one of the feats of this language is that they could implement a 2D graphics library in 495 lines of Nile code.
60+
61+
## Call for participation
62+
63+
- [Journal of Functional Programming - Call for PhD Dissertation Abstracts](https://discourse.haskell.org/t/journal-of-functional-programming-call-for-phd-dissertation-abstracts/12023) by Graham Hutton
64+
> If you or one of your students recently completed a PhD (or Habilitation) in the area of functional programming, please submit the dissertation abstract for publication in JFP: simple process, no refereeing, open access, 200+ published to date, deadline 30th May 2025.
65+
66+
- [grease: Migrate more modules to `-XImportQualifiedPost`](https://github.com/GaloisInc/grease/issues/145)

haskellweekly.cabal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cabal-version: 2.4
22
name: haskellweekly
3-
version: 0.2025.5.1
3+
version: 0.2025.5.8
44
synopsis: Publishes curated news about Haskell.
55
description:
66
Haskell Weekly publishes curated news about the Haskell programming language.

source/library/HW/Data/Issues.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -475,5 +475,6 @@ all =
475475
Issue.Issue <$> Date.fromGregorian 2025 4 10 <*> Number.fromNatural 467,
476476
Issue.Issue <$> Date.fromGregorian 2025 4 17 <*> Number.fromNatural 468,
477477
Issue.Issue <$> Date.fromGregorian 2025 4 24 <*> Number.fromNatural 469,
478-
Issue.Issue <$> Date.fromGregorian 2025 5 1 <*> Number.fromNatural 470
478+
Issue.Issue <$> Date.fromGregorian 2025 5 1 <*> Number.fromNatural 470,
479+
Issue.Issue <$> Date.fromGregorian 2025 5 8 <*> Number.fromNatural 471
479480
]

0 commit comments

Comments
 (0)