Haskell

Since this is a very new community, let's take a moment to introduce ourselves in this thread. Please share your interests and what you are working on!

3
16

Use this thread to ask any Haskell related questions which you think doesn't deserve a thread of their own. Ask away!

2
3
haskellweekly.news

News about the Haskell programming language from 2024-05-30.

1
0
https://www.typetheoryforall.com/episodes/haskell-lean-idris-and-the-art-of-writing-1

In this episode we talk with David Christiansen, he wrote the books Functional Programming in Lean and the Little Typer. He has also worked as the Executive Director of the Haskell Foundation, at Galois and did his PhD developing a bunch of cool stuff for Idris. David is a super upbeat person and I feel that we could spend hundreds of hours talking about Functional Programming Writing and Dependent Types, and we still wouldn’t run out of topics!

3
0
haskellweekly.news

News about the Haskell programming language from 2024-05-16.

2
0
https://haskell.foundation/podcast/49/

Wouter and Joachim interview Arseny Seroka, CEO of Serokell. Arseny got into Haskell because of a bet over Pizza, fell for it because it means fewer steps between his soul and his work, and founded Serokell because he could not get a Haskell job. He speaks about the business side of a Haskell company, about the need for more sales and marketing for Haskell itself, and about the Haskell Developer Certification.

3
0
discourse.haskell.org

h/t [@bgamari@mastodon.social](https://mastodon.social/users/bgamari)

3
0
haskellweekly.news

News about the Haskell programming language from 2024-05-02.

1
0
https://www.well-typed.com/blog/2024/04/ghc-debug-improvements/

`ghc-debug` is a debugging tool for performing precise heap analysis of Haskell programs (check out [our previous post introducing it](https://www.well-typed.com/blog/2021/01/fragmentation-deeper-look/)). While working on [Eras Profiling](https://www.well-typed.com/blog/2024/01/ghc-eras-profiling/), we took the opportunity to make some much needed improvements and quality of life fixes to both the `ghc-debug` library and the [https://hackage.haskell.org/package/ghc-debug-brick](https://hackage.haskell.org/package/ghc-debug-brick) terminal user interface. To summarise, * `ghc-debug` now works seamlessly with profiled executables. * The `ghc-debug-brick` UI has been redesigned around a composable, filter based workflow. * Cost centers and other profiling metadata can now be inspected using both the library interface and the TUI. * More analysis modes have been integrated into the terminal interface such as the 2-level profile. This post explores the changes and the new possibilities for inspecting the heap of Haskell processes that they enable. These changes are available by using the `0.6.0.0` version of [https://hackage.haskell.org/package/ghc-debug-stub](https://hackage.haskell.org/package/ghc-debug-stub) and [https://hackage.haskell.org/package/ghc-debug-brick-0.6.0.0](https://hackage.haskell.org/package/ghc-debug-brick-0.6.0.0).

2
0
discourse.haskell.org

I've mentioned my new effect system, Bluefin, a few times on this forum. It's now ready for me to announce it more formally. Bluefin's API is differs from all prior effect systems in that it implements a "well typed [Handle](https://jaspervdj.be/posts/2018-03-08-handle-pattern.html)/[Services](https://brandonchinn178.github.io/posts/2023/05/03/services-design-pattern) pattern". That is, all effects are accessed through value-level handles, which makes it trivial to mix a wide variety of effects, including: * [Bluefin.EarlyReturn](https://hackage.haskell.org/package/bluefin-0.0.4.3/docs/Bluefin-EarlyReturn.html), for early return * [Bluefin.Exception](https://hackage.haskell.org/package/bluefin-0.0.4.3/docs/Bluefin-Exception.html), for exceptions * [Bluefin.IO](https://hackage.haskell.org/package/bluefin-0.0.4.3/docs/Bluefin-IO.html), for I/O * [Bluefin.State](https://hackage.haskell.org/package/bluefin-0.0.4.3/docs/Bluefin-State.html), for mutable state * [Bluefin.Stream](https://hackage.haskell.org/package/bluefin-0.0.4.3/docs/Bluefin-Stream.html), for streams If you're interested then read the [Introduction to Bluefin](https://hackage.haskell.org/package/bluefin-0.0.4.3/docs/Bluefin.html). I'd love to know what you all think.

3
0
haskellweekly.news

News about the Haskell programming language from 2024-04-18.

1
0
well-typed.com

This is the first of a two-part series of blog posts on GHC specialization, an optimization technique used by GHC to eliminate the performance overhead of ad-hoc polymorphism and enable other powerful optimizations. There will also be a Haskell Unfolder episode about this topic.

2
0

This fuses: ``` [(x, y) | x <- [0 .. 10], y <- [0 .. 10]] ``` But this does not: ``` liftA2 (,) [0 .. 10] [0 .. 10] ``` Because the latter inlines to: ``` let xs = [0..10]; ys = [0..10] in xs >>= \x -> ys >>= \y -> (x, y) ``` And GHC is afraid to push the `ys` binding into the `\x -> ...` lambda because that might duplicate the work of evaluating [0..10]. Even though in the end fusing everything would be beneficial. See: [https://gitlab.haskell.org/ghc/ghc/-/issues/24663](https://gitlab.haskell.org/ghc/ghc/-/issues/24663)

1
1

Declarative vs imperative: ``` let v = sum [ ((x ! i) - m) ^ 2 | i <- [0 .. cc - 1] ] / fromIntegral cc ``` ``` float v = 0.0f; for (int i = 0; i < C; i++) { float xshift = x[i] - m; v += xshift * xshift; } v = v/C; ``` [\#haskell](https://kbin.social/tag/haskell)

2
1
haskellweekly.news

News about the Haskell programming language from 2024-04-11.

1
0
haskellweekly.news

News about the Haskell programming language from 2024-04-04.

1
0
https://haskell.foundation/podcast/46/

Roman, known better online as effectfully, is interviewed by Wouter and Joachim. On his path to becoming a Plutus language developer at IOG, he learned English to read Software Foundations, has encountered many spaceleaks, and used Haskell to prevent robots from killing people.

2
0
haskellweekly.news

News about the Haskell programming language from 2024-03-28.

2
0
discourse.haskell.org

Logs are a critical thing in production systems and I would like to start a discussion about bringing low-level support for efficient logging into GHC

3
0
haskellweekly.news

News about the Haskell programming language from 2024-03-21.

2
0
well-typed.com

When composing several list-processing functions, GHC employs an optimisation called foldr-build fusion. Fusion combines functions in such a way that any intermediate lists can often be eliminated completely. In this episode, we will look at how this optimisation works, and at how it is implemented in GHC: not as built-in compiler magic, but rather via user-definable rewrite rules.

3
0
https://haskell.foundation/podcast/45/

In this episode, András Kovács is being interviewed by Andres Löh and Matthias Pall Gissurarson. We learn how to go from economics to functional programming, how GHC's runtime system is superior to Rust's, the importance of looking at GHC's Core for spotting stray closures, and why staging might be the answer to all your optimisation problems.

4
0
haskellweekly.news

News about the Haskell programming language from 2024-03-14.

2
0
well-typed.com

Read about the latest GHC development activity in this report from Well-Typed.

2
0
haskellweekly.news

News about the Haskell programming language from 2024-03-07.

1
0
discourse.haskell.org

In this two-day event, held on the lakeside campus of OST in lovely Rapperswil, Switzerland, you can learn what you need to know in order to get started working on these tools. We’ve asked the presenters to identify ‘good first issues’ for those wanting to get their feet wet on contributing. Because the workshop is immediately prior to Zurihac 2024, you will have the opportunity to tackles one of these issues while the core developers are easily available!

1
0
https://haskell.foundation/podcast/44/

Wouter and Niki interview Jose Calderon, the new Executive Director of the Haskell Foundation. Jose tells why he applied for the job, how he sees the foundation developing over the coming years, and how you can get involved in the Haskell community.

3
4
haskellweekly.news

News about the Haskell programming language from 2024-02-29.

1
0

TIL [strict-containers](https://hackage.haskell.org/package/strict-containers) exists and includes strict vectors. [\#haskell](https://kbin.social/tag/haskell)

1
0
https://www.haskell.org/ghc/blog/20240223-ghc-9.8.2-released.html

The GHC developers are happy to announce the availability of GHC 9.8.2. Binary distributions, source distributions, and documentation are available on the [release page](https://www.haskell.org/ghc/download_ghc_9_8_2.html). This release is primarily a bugfix release addressing many issues found in the 9.8 series.

4
0

I enjoyed the simplicity of this recent Computerphile video on web servers: [https://www.youtube.com/watch?v=7GBlCinu9yg](https://www.youtube.com/watch?v=7GBlCinu9yg) I attempted to recreate it in [#haskell](https://kbin.social/tag/haskell), but we don't really have a library on the same level of abstraction. [wai](https://hackage.haskell.org/package/wai) is too abstract and [network](https://hackage.haskell.org/package/network) is not abstract enough.

1
2
haskellweekly.news

News about the Haskell programming language from 2024-02-22.

1
0
well-typed.com

In this (beginner-friendly) episode, we will use Dijkstra's shortest paths algorithm as an example of how one can go about implementing an algorithm given in imperative pseudo-code in idiomatic Haskell. We will focus on readability, not on performance.

1
0
https://haskell.foundation/podcast/43/

In this episode, Wouter and Andres interview Ivan Perez, a senior research scientist at NASA. Ivan tells us about how NASA uses Haskell to develop the Copilot embedded domain specific language for runtime verification, together with some of the obstacles he encounters getting to end users to learn Haskell and adopt such an EDSL.

3
0