The Haskell Symposium is a two-day workshop co-located with the International Conference on Functional Programming (ICFP). In a previous blog post we discussed the Haskell Implementors’ Workshop (HIW), which is another Haskell-workshop co-located with ICFP, but unlike HIW, the Haskell Symposium is a scientific workshop with...
In this episode, we are joined by Rebecca Skinner. She talks about her new book, Effective Haskell, which takes you from list manipulation to thunks to type-level programming. She also tells us about large scale industrial applications in Haskell, and how the architecture is shaped by the organization of the engineering teams.
In this episode, we'll see how deriving-via can be used to capture rules that relate type classes to each other. As a specific example, we will discuss the definition of the Monad type class: ever since this definition was changed back in 2015 in the Applicative Monad Proposal, instantiating Monad to a new datatype requires...
Andres and Wouter interview Edwin Brady, most famous for his work on the Idris programming language. We talk about how he got interested in programming with dependent types, his thoughts on dependently typed programming in Haskell, and his vision for Idris.
I think Idris' bang notation for performing effects in a do-block is pretty, it could look like this:
main = do putStrLn ("You said: " ++ !getLine)
Today, you'd have to come up with a new variable name or figure out the right combinator names:
main = do line <- getLine; putStrLn ("You said: " ++ line)
main = putStrLn . ("You said: " ++) =<< getLine
But unfortunately there are more complicated cases:
main = do print (True || !getLine == "foo")
In a strict language with built-in short-circuiting logical operations the getLine would never be performed, but in Haskell || is just a normal function that happens to be lazy in its second argument. The only reasonable way to implement it seems to be to treat every function as if it was strict and always perform the getLine:
main = do line <- getLine; print (True || line == "foo")
Do you think this is confusing? Or is the bang notation useful enough that you can live with these odd cases? I'm not very happy with this naive desugaring.
Anyone want to guess how many errors this code generates:
{-# LANGUAGE DerivingVia #-}
module T where
newtype OrdList1 a = OrdList1 [a]
deriving (Functor, Foldable, Traversable) via []
newtype OrdList2 a = OrdList2 [a]
deriving (Functor, Foldable, Traversable) via Maybe
I have started the process where the GHC Steering Committee decides if we should have a GHC2024 language edition, and what it should contain. @MangoIV rightfully reminded me that when we laid out the process three years ago, we said we’d hold a community poll as well....
Adds a linear fat arrow %1 => this is meant to greatly improve the ergonomics of some of the APIs using linear types (it tends to apply to APIs based on typestate or related to mutation)....
The changes seem pretty modest as the costs and drawbacks section also says. But I wouldn't know how complicated it is to combine normal constraints with dependent types, let alone linear constraints.
Hate watching videos? Check out the complementary article, which covers the same content: https://dev.to/zelenya/how-to-introduce-haskell-into-your-company-9ff
Does anyone else do #Agda with #Vim without #DeprecatedPython2 ? The main agda-vim plugin doesn't work at all. The tc-0 fork does some things, but mostly emits bytes v str errors. Last time I tried the agda-language-server, I couldn't get it to compile.
I think some tooling will let me put together this evaluate function a lot faster.
Well-Typed Blog: Haskell Symposium 2023 (well-typed.com)
The Haskell Symposium is a two-day workshop co-located with the International Conference on Functional Programming (ICFP). In a previous blog post we discussed the Haskell Implementors’ Workshop (HIW), which is another Haskell-workshop co-located with ICFP, but unlike HIW, the Haskell Symposium is a scientific workshop with...
SBTB 2023: Avi Press, Why Haskell is a Terrible Choice for Startups (And Why We Picked It Anyway) (www.youtube.com)
Welcome to the comedy of errors that is our tale of four tumultuous, yet rewarding, years deploying Haskell in a production environment at Scarf...
Haskell Interlude 39: Rebecca Skinner (haskell.foundation)
In this episode, we are joined by Rebecca Skinner. She talks about her new book, Effective Haskell, which takes you from list manipulation to thunks to type-level programming. She also tells us about large scale industrial applications in Haskell, and how the architecture is shaped by the organization of the engineering teams.
Issue 398 :: Haskell Weekly newsletter (haskellweekly.news)
News about the Haskell programming language from 2023-12-14.
Issue 397 :: Haskell Weekly newsletter (haskellweekly.news)
News about the Haskell programming language from 2023-12-07.
The Haskell Unfolder Episode 16: monads and deriving via (well-typed.com)
In this episode, we'll see how deriving-via can be used to capture rules that relate type classes to each other. As a specific example, we will discuss the definition of the Monad type class: ever since this definition was changed back in 2015 in the Applicative Monad Proposal, instantiating Monad to a new datatype requires...
Haskell Interlude 38: Edwin Brady (haskell.foundation)
Andres and Wouter interview Edwin Brady, most famous for his work on the Idris programming language. We talk about how he got interested in programming with dependent types, his thoughts on dependently typed programming in Haskell, and his vision for Idris.
ICFP 2023 Videos (www.youtube.com)
Issue 396 :: Haskell Weekly newsletter (haskellweekly.news)
News about the Haskell programming language from 2023-11-30.
Haskell Symposium 2023 Videos (www.youtube.com)
Haskell Implementors' Workshop 2023 Videos (www.youtube.com)
Lennart Augustsson - MicroHaskell (www.youtube.com)
Lennart Augustsson gave a talk in the FP seminars at Chalmers, Gothenburg, about his new MicroHaskell....
GHC2024 – community input (discourse.haskell.org)
I have started the process where the GHC Steering Committee decides if we should have a GHC2024 language edition, and what it should contain. @MangoIV rightfully reminded me that when we laid out the process three years ago, we said we’d hold a community poll as well....
GHC proposal: Linear constraints (github.com)
Adds a linear fat arrow %1 => this is meant to greatly improve the ergonomics of some of the APIs using linear types (it tends to apply to APIs based on typestate or related to mutation)....
How to introduce Haskell into your company (www.youtube.com)
Hate watching videos? Check out the complementary article, which covers the same content: https://dev.to/zelenya/how-to-introduce-haskell-into-your-company-9ff
Issue 394 :: Haskell Weekly newsletter (haskellweekly.news)
News about the Haskell programming language from 2023-11-16.