Thomas Ekström Hansen
Thomas Ekström Hansen
Home
Recent posts
Experience
Blog
Coursework
PhD progress
Light
Dark
Automatic
Idris2
Hunting an Idris2 Codegen Bug
I accidentally discovered a bug in the Idris2 codegen. Let’s explore how to narrow it down, and hopefully fix it.
Thomas Ekström Hansen
Last updated on Tue, 25 Apr 2023
Writing a PRNG using ChatGPT
What do you do if you need a pseudorandom number generator but don’t know anything about how to implement that and, crucially, don’t care how good it is? You
could
read some papers, but ChatGPT had been making waves for a while, so why not try that?
Thomas Ekström Hansen
Last updated on Thu, 16 Mar 2023
Dai Station: an Idris Constraint Solver
As part of my Ph.D. exploration on how we know the types we’re using model what we think they do, I decided to try to implement a constraint solver in Idris (technically Idris2, but Idris1 is deprecated at this point, so I use ‘Idris’ and ‘Idris2’ interchangeably).
Thomas Ekström Hansen
Last updated on Mon, 11 Mar 2024
Type You an Idris – Part 1: Warmup
The best way to learn & understand a thing is to implement it. So let’s implement (a subset) of Idris2! This part is an introduction and covers some function exercises that will help later.
Thomas Ekström Hansen
Last updated on Mon, 11 Mar 2024
A Crash Course in Sequencing IO Functions
Intro This is yoinked from an answer I gave on the Idris2 discord where someone was confused about using IO when there was multiple functions involved. I’ve slightly restructured it, but it’s still basically the Discord answer verbatim.
Thomas Ekström Hansen
Last updated on Tue, 7 Feb 2023
An attempt at explaining Decidable Equality
One of the more difficult concepts in Idris, I’ve found, is proving things through dependent types. The ‘simplest’ introduction to this is probably the
DecEq
interface, which this post aims to introduce, explain, and implement.
Thomas Ekström Hansen
Last updated on Tue, 14 May 2024
Implementing Condition Variables in Racket
Explaining and implementing Birell’s 2003 paper on Condition Variables for Modula-2+, in Racket.
Thomas Ekström Hansen
Last updated on Tue, 27 Jul 2021
Debugging Idris2 Racket Threads
A dive into functional concurrency, FFIs, and thread weirdness.
Thomas Ekström Hansen
Last updated on Mon, 19 Jul 2021
Cite
×