We are happy to announce that we have been sponsoring free
webinars for over a year now. The feedback we have been receiving
from the IT community has been overwhelmingly positive. We have
been working towards producing a new webinar topic every month, and
we plan to keep moving at that pace. In this
webinar, Alexey Kuleshevich (Software
Engineer at FP Complete) discusses "RIO,
the standard library for Haskell." We had
377 people registered for the event which aired on Wednesday, March
6th at 10:00 am PST. The source code for this webinar can be
found on Github.
In this month's webinar, Alexey
Kuleshevich demonstrated just how easy it is to get
started with RIO, the standard library for
Haskell. As a recap, RIO is not only a library but is a
collection of solutions to some of the most common problems in the
Haskell ecosystem as well as a description of the best practices
and design patterns. It also introduces
the RIO monad, which promotes a drastic
simplification over the common approach of an endless stack of
During the webinar we tried to answer these questions:
- What is RIO? Is it yet
another Prelude, or a different workflow? What makes it
- Which scenarios are RIO good for and
which ones aren't so much?
- What benefits do you get from
- What's the difference between
using RIO for library vs application
- Do you need to buy into the RIO type to use the
We decided to include the chat log for this webinar, and it can
be seen at the end of this blog post.
Have you heard about our new Haskell Success
We decided that to grow the Haskell community we need to
make further investments towards that goal. Webinars, blogs, and
open source contributions can only take us so far. That's why we
created the Haskell Success Program. Whether you are a large scale
enterprise using Haskell daily or a small company looking to
leverage the power of Haskell, this program is for you.
Of particular note is the cost of this program. If you do the
math, our rates for this program are insanely low. So low, that we
are not even profiting from the program. So why are we doing it?
Two reasons, first, we want to promote the use of Haskell across
the globe in large and small enterprises. Second, we want to expose
you to our awesome engineering talent and help you maximize the use
of Haskell in your organization. It's a win-win for all!. Check it
Who is FP Complete in simple terms?
At FP Complete, we do so many things to help companies it's hard to
encapsulate our impact in a few words. They say a picture is
worth a thousand words, so a video has to be worth 10,000 words (at
least). Therefore, to tell all we can in as little time as
possible, check out our explainer video. It's only 108 seconds
to get the full story of FP Complete.
We want your feedback for webinar topics
We would like to hear your suggestions for future webinar
topics. The simplest way to accomplish this is to add a
comment to this blog post with your suggestion. Alternatively, send
your suggestion via email to firstname.lastname@example.org.
Webinar Chat Log
We find it useful to share what was chatted about during the
webinar. You can see the chat flow below.
20:00:42 From Michael Snoyman : Welcome to the webinar
20:00:57 From Agustin Camino : Hi!
20:01:05 From Dan Banta : Hello. :)
20:01:24 From paulrz to All Panelists : hello
20:01:24 From Jason Shipman : Hi!
20:01:28 From Maris Orbidans to All Panelists : hello
20:01:31 From Javier Jaramago Fernández to All Panelists : Hi
20:01:33 From Steve Bigham to All Panelists : Greets!
20:01:37 From Agustin Camino : Sounds good!
20:01:44 From Steven Leiva : Hi folks. FP Complete - thanks for
hosting this. I won’t be able to participate in the chat since I
don’t want to disturb others around me, but looking forward to
soaking everything in.
20:02:06 From Han Joosten to All Panelists : Hi
20:06:46 From Andrew Starodubtsev to All Panelists : Hi all!
20:08:58 From Michael Snoyman : Unsafe ==> nasal demons
20:20:40 From Agustin Camino : Ha!
20:20:43 From Javier Jaramago Fernández to All Panelists : haha
20:33:29 From Michael Snoyman : The "sticky logger" stuff is what
Stack uses when it shows you the "Progress: X/Y" while building a
bunch of things
20:39:31 From Michael Snoyman : Stay tuned for more info in the
20:39:49 From Steven Leiva : +1
20:43:28 From Steven Leiva : Will the slides be available for
20:45:29 From Michael Snoyman : I believe the slides and code will
be available afterward, but I'll ask Alexey both questions at the
end of the presentation
20:46:19 From Michael Snoyman : PLOT TWIST :)
20:46:28 From Steven Leiva : Whoa! Mind blown.
20:46:28 From Javier Jaramago Fernández to All Panelists : haha
what a twist
20:46:59 From Vassil Keremidchiev to All Panelists : Cool!
20:50:03 From Mark Watson to All Panelists : thanks Alexey, really
20:51:31 From Han Joosten : How much effort would you guess would
it be for a 100 module haskell codebase to use rio instead of
20:51:55 From Harold Carr : please paste the the github ink
20:52:12 From Michael Snoyman :
20:52:13 From Jascha Smacka :
20:52:17 From Marek Dudek : What kind of adoption by
community/industry do you have? How big do you count on it to
20:52:24 From Vladislav Sabanov : Have you working application
online or at github that using RIO?
20:52:27 From Aniket Deshpande to All Panelists : For newbies does
it makes sense to go the RIO route from the beginning? Or would you
suggest to come to this library after experiencing some of the
problems it intends to circumvent?
20:52:39 From Han Joosten : thanks. great answer
20:53:27 From Harold Carr :
20:53:46 From Greg Manning : magicbane?
20:53:49 From jon schoning to All Panelists : to motivate RIO as a
newtype, the reason is "typeclasses like MonadLogger define their
instances on ReaderT to defer to the underlying monad". Could you
explain why this forces a newtype? I it seems like MonadLogger
should just default to IO
20:53:51 From Marek Dudek : Thanks
20:54:03 From Greg Manning : (I think is the name of the project
that ties together RIO and other things)
20:54:20 From Javier Jaramago Fernández to All Panelists : So far
everything we have seen in the default logging pattern, looks like
will be very compatible by default to serve as a base for something
like opentracing implementations (Haskell I think still lacks of
one). What are your thoughts about using it as a default lib for
something like this?
20:55:21 From Aniket Deshpande to All Panelists : Thanks
20:55:21 From Jason Shipman : No questions at the moment, but thank
you for the excellent presentation!
20:55:22 From Marek Dudek : Follow up on currently being answered:
which topics you need to understand to use RIO?
20:58:53 From Marek Dudek : Thanks
20:58:54 From Steven Leiva : There are good tutorials for
exceptions and for the ReaderT pattern.
21:00:13 From Steven Leiva : :-)
21:00:20 From Michael Snoyman : Get started with runSimpleApp
21:00:20 From Vassil Keremidchiev to All Panelists : Thanks a lot
for the great lecture!
21:00:30 From Harold Carr : thanks!
21:01:43 From Marek Dudek : Great presentation, thanks
21:02:12 From Andrew Starodubtsev to All Panelists : Thanks
21:02:18 From Han Joosten : Thanks again for another great webinar.
Keep up the good work!
21:02:21 From Javier Jaramago Fernández to All Panelists : Great
presentation + example project, thanks!
21:02:24 From Frank Stüss to All Panelists : super! thank you!
please go on!
21:02:30 From Lauri Lättilä : Thanks for the presentation
21:02:33 From Martin ALLARD to All Panelists : Thanks for the
21:02:35 From Jascha Smacka : Thanks a lot!
21:02:38 From Greg Manning : thanks.
21:02:40 From Steven Leiva : thanks
21:02:41 From Agustin Camino : Thanks! Great presentation.
21:02:43 From Dan Banta : Fantastic presentation. Thank you! :D
21:02:43 From R Primus : Thank you both!
21:02:52 From Michael Usenko : Thank you.
21:02:52 From Jonathan Avinor : Thank you very much!
21:02:52 From Filip Federowicz to All Panelists : Thank you!
21:02:52 From Vladislav Sabanov : Thank you!
21:02:58 From Bruce Alspaugh to All Panelists : Thinks!
Do you like this blog post and need help with DevOps, Rust or functional programming? Contact us.