Profile

Cover photo
Gabriel Gonzalez
546 followers|121,569 views
AboutPostsPhotosVideos

Stream

 
This post explains how I optimize `pipes` using rewrite rules and short cut fusion.  Some of these innovations have already been adopted by `conduit`, too, so make sure to upgrade to get improved performance.
Rewrite rules are a powerful tool that you can use to optimize Haskell code without breaking backwards compatibility. This post will illustrate how I use rewrite rules to implement a form of shortcut fusion for my pipes strea...
15
Add a comment...

Gabriel Gonzalez

Shared publicly  - 
 
An all-atom protein search engine powered by Haskell
This post discusses a Haskell-based project that is the central component of my thesis: a fast, atomic-level structural search engine named "Suns". I will discuss what problem this search engine solves, why I chose Haskell for this project, and what were th...
14
2
Gabriel Gonzalez's profile photoRyan Hill's profile photoBartosz Milewski's profile photoJim Stuttard's profile photo
2 comments
 
Thanks!
Add a comment...

Gabriel Gonzalez

Shared publicly  - 
 
Manual proofs for the `pipes` laws
Out of all of Haskell's streaming libraries, pipes is the only that does not have a test suite. This is because I prefer to use equational reasoning to prove the correctness of pipes . For those new to Haskell, equational reasoning is the use of equations...
Out of all of Haskell's streaming libraries, pipes is the only that does not have a test suite. This is because I prefer to use equational reasoning to prove the correctness of pipes. For those new to Haskell, equational reas...
14
Gabriel Gonzalez's profile photoAndy Gill's profile photo
5 comments
 
Neat, I will definitely try it.  However, Agda is still my ultimate goal.
Add a comment...
 
I'm a really big fan of Edward's `lens` library but it lacks tutorial material, so this is my first attempt to explain some common lens idioms.
47
6
Benjamin Russell's profile photoYves Parrays's profile photochangsheng liu's profile photoMarshall Conover's profile photo
13 comments
 
Yeah, unfortunately `lens` abuses the type system a lot, which is a shame since the underlying concept actually has a reasonably simple type.
Add a comment...
 
There was a big discussion on /r/haskell several days ago about the importance of comonads, so I wrote up my interpretation of how to approach comonads and comonad syntactic sugar.
25
2
Gabriel Gonzalez's profile photoStrager Neds's profile photoBen Ford's profile photoNeuman Vong's profile photo
4 comments
 
+Strager Neds Thanks for catching that.  I fixed it. One way you can contact me is to e-mail me at Gabriel439 at <google's mail service>.  I also hang out on reddit, so if there is a discussion thread there about the post like this one:

http://www.reddit.com/r/haskell/comments/1c2g1r/haskell_for_all_defaults/

Then I will answer questions and comments there.
Add a comment...
In his circles
504 people
Have him in circles
546 people
Kumar Sourabh's profile photo
Samuel Isaacson's profile photo
Samantha Moorman's profile photo
Kathleen Molnar's profile photo
Alex Ignil's profile photo
Gershom B's profile photo
Paul Chiusano's profile photo
Philipp Schuster's profile photo
Jonathan Merritt's profile photo
 
This is a tutorial I wrote up to teach basic tricks for equational reasoning in Haskell.
You may have heard that Haskell is "great for equational reasoning", but perhaps you didn't know precisely what that meant. This post will walk through an intermediate example of equational reasoning to show how you can inter...
19
2
Jim Stuttard's profile photoPatrik Jansson's profile photo
Add a comment...

Gabriel Gonzalez

Shared publicly  - 
 
How to reimplement the conduit parsing API in 50 lines of pipes code
Michael's recent blog posts highlighted several deficiences of pipes -based parsing. Particularly, he emphasized that it was incompatible with idioms from the core pipes library, and I agree with that assessment. Programming with pipes-parse is a different ...
Michael's recent blog posts highlighted several deficiences of pipes-based parsing. Particularly, he emphasized that it was incompatible with idioms from the core pipes library, and I agree with that assessment. Programming w...
12
Add a comment...
 
The `pipes-4.0.0` release candidate is out.  Please check it out and please offer feedback.

All four core `pipes` libraries are getting upgraded simultaneously, so for links to all four of their Github repositories and their pre-generated haddocks, please visit the link to the corresponding reddit post which has more detailed information:

http://www.reddit.com/r/haskell/comments/1lh5u7/pipes400_release_candidate/
15
1
brad clawsie's profile photoPhilip Thrift's profile photo
 
awesome work and great docs!
Add a comment...
 
This is a post I wrote up to demystify the process of building a simple threading system and scheduler.
Haskell differentiates itself from most functional languages by having deep cultural roots in mathematics and computer science, which gives the misleading impression that Haskell is poorly suited to solving practical problems...
25
Paul Brauner's profile photo
2 comments
 
Oh I just saw you mention it at the end of the article. And funnily enough, it's mentioned as the main inspiration in the paper you've been inspired by :)
Add a comment...
 
I found a remarkable parallel between pipes and io-streams.  I'm sharing this because I believe users of both libraries will find this connection fascinating.
I was originally planning to release an extension library for pipes that would add an io-streams-like interface to pipes. However, this week I discovered a surprisingly elegant way to implement io-str...
12
Gregory Collins's profile photoGabriel Gonzalez's profile photoSlava Kravchenko's profile photo
10 comments
 
Those who are reading this and are curious: it indeed seems possible to radically simplify the io-streams internals in the way that Gabriel suggests: https://gist.github.com/gregorycollins/5461584
Add a comment...
People
In his circles
504 people
Have him in circles
546 people
Kumar Sourabh's profile photo
Samuel Isaacson's profile photo
Samantha Moorman's profile photo
Kathleen Molnar's profile photo
Alex Ignil's profile photo
Gershom B's profile photo
Paul Chiusano's profile photo
Philipp Schuster's profile photo
Jonathan Merritt's profile photo
Basic Information
Gender
Male