When I started learning functional programming I asked myself what was considered a good API for a functional programming library. Recently, some newcomers asked me the same question.

So, I thought that it was a good idea to try to articulate an answer in a blog post.


I have added a lot of features to my signal processing library and I reworked the foundations. So, a lot of things to cover in this post. And a funny (but very simple) Voice Activity Detection example at the end.


As said in my previous post, I have now started working on an Haskell package for prototyping signal processing algorithms : mainly speech and acoustic. None of the packages I have seen so far were matching my needs. So, I decided to start working on something. And, this project is also a good opportunity for me to learn the latest ghc stuff like data type promotion and list fusion.

This work is available on github but warning : I am in an exploratory phase. Anything can change at any time. Also, don't trust the code unless I have written some unit tests. In this first version I only have the foundations and it is only partially tested.

So, let's see what's in the package so far.


I am planning to write a library to prototype signal processing algorithms with Haskell (speech, acoustic ...). The first missing block is plotting.

So, I wrote a very quick-and-dirty solution which is enough for me and may be useful to others even if it is very preliminary.


I had a few applications available in the AppStore. But, a few years ago I decided to remove them because of the risk increase due to patent trolls and also because I was no more working on those applications.

Some of those apps are still working on my iPhone 4S. I don't know for how many years they'll continue to work without any update. So to keep a trace for the day they'll fail to work, I decided to make a short video.