1 2 3 4 5 | -- find base-4.9.1.0/ -name "*.hs" | xargs grep "^class.*" | sed "s/^\([^:]*\):\(.*\)/\2?\1/" | column -s '?' -t class Storable a where base-4.9.1.0/Foreign/Storable.hs class IsString a where base-4.9.1.0/Data/String.hs class Eq1 f where base-4.9.1.0/Data/Functor/Classes.hs class (Eq1 f) => Ord1 f where base-4.9.1.0/Data/Functor/Classes.hs |

1 2 3 4 5 | ```
{- Hi, I'm trying to write a simple parser using parsec library.
I have a set of prefixes, which are followed by an argument, and
then I have a data type that has constructors that match the said
prefixes. So instead of writing in code a parser for each prefix,
which would result in a lot repetition I wanted to just write pairs
``` |

1 2 3 4 5 | ```
{-# LANGUAGE FlexibleContexts, FlexibleInstances, UndecidableInstances, TypeFamilies, PolyKinds, GADTs, MultiParamTypeClasses, FunctionalDependencies, RankNType
import Data.Kind
import Prelude hiding (id, (.), Functor(..), Monad(..), Monoid(..))
-- 'Category k' is a category whose objects are 'Ob k a => a' and whose
``` |