Functional Programming

Functional Programming

Functional Programming

Mar 7, 2019

RIO - a Standard Library for Haskell

RIO - a Standard Library for Haskell

RIO - a Standard Library for Haskell

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. About the Webinar

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

transformers.


Topics covered:

During the webinar we tried to answer these questions:

  • What is RIO? Is it yet

    another Prelude, or a different workflow? What makes it

    different?

  • Which scenarios are RIO good for and which ones aren't so much?

  • What benefits do you get from using RIO?

  • What's the difference between using RIO for library vs application development?

  • Do you need to buy into the RIO type to use the library fully?

Watch the Webinar


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 Program?

Haskell Success Program

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 out

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 socialmedia@fpcomplete.com.

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

everyone

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

everyone!

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

future...

20:39:49 From Steven Leiva : +1

20:43:28 From Steven Leiva : Will the slides be available for

download?

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

interesting stuff.

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

prelude?

20:51:55 From Harold Carr : please paste the the github ink

here

20:52:12 From Michael Snoyman :

https://github.com/lehins/haskell-webshell

20:52:13 From Jascha Smacka :

https://github.com/lehins/haskell-webshell

20:52:17 From Marek Dudek : What kind of adoption by

community/industry do you have? How big do you count on it to

be?

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 :

https://github.com/lehins/haskell-webshell

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

presentation !

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!