Skip to content

Instantly share code, notes, and snippets.

module Main where
import Prelude hiding (lines)
import Lens.Family
import Pipes
import Pipes.Group
import Pipes.HTTP
import Pipes.Text
import Pipes.Text.Encoding
import Pipes.Text.IO (toHandle,stdout)
@michaelt
michaelt / lines_url.hs
Created July 20, 2014 23:14
number lines XLVIII
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE LambdaCase #-}
-- https://gist.github.com/michaelt/88e1fac12876857deefe
-- following
-- https://gist.github.com/gelisam/c769d186493221d7ebbe and associated controversy.
module Main where
{-# LANGUAGE OverloadedStrings #-}
import Pipes
import Pipes.Group
import qualified Pipes.Prelude as P
import qualified Pipes.ByteString as PB
import qualified Pipes.Attoparsec as PA
import Data.Aeson
import Data.Aeson.Parser
import Data.Aeson.Types
import Data.Monoid
data Primitive = Num
|Chr
|Str
|Cnd Bool deriving (Show)
data T = K Int | R Int
-- >>> :set -XDataKinds
-- >>> :t Num
-- Num :: Primitive
-- >>> :k Num
@michaelt
michaelt / gist:7ef6ec1824fb638be203
Last active August 29, 2015 14:15
more tolerant 'do'
{-#LANGUAGE RebindableSyntax, RecordWildCards, CPP, OverloadedStrings #-}
import Data.Monoid
import Prelude
import Control.Monad
import Data.String
import Text.Blaze.Html5 as H
import Text.Blaze.Html5.Attributes as A
import qualified Text.Blaze as B
@michaelt
michaelt / Parse.hs
Last active August 29, 2015 14:20
serialize and deserialize FastaSequences as Text
-- Parse module.
-- By G.W. Schwartz
--
{- | Collection of functions for the parsing of a fasta file. Uses the Text
type.
-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE BangPatterns #-}
@michaelt
michaelt / weather.hs
Created May 17, 2015 16:46
weather.hs
{-# LANGUAGE OverloadedStrings #-}
module Main where
import System.Environment
import Data.Monoid
import Control.Monad
import Data.Aeson
import qualified Data.Text as T
import qualified Data.Text.IO as T
import Network.HTTP.Client
{-#LANGUAGE TypeOperators, LambdaCase, BangPatterns, RankNTypes #-}
-- Needed for the MonadBase instance
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE UndecidableInstances #-}
{-#LANGUAGE ScopedTypeVariables #-}
module Loop where
import Control.Monad.Trans
import Control.Monad
@michaelt
michaelt / tutorial.hs
Created August 4, 2015 16:42
pipes concurrency tutorial
{-| This module provides a tutorial for the @pipes-concurrency@ library.
This tutorial assumes that you have read the @pipes@ tutorial in
@Pipes.Tutorial@.
I've condensed all the code examples into self-contained code listings in
the Appendix section that you can use to follow along.
-}
-- module Pipes.Concurrent.Tutorial
@michaelt
michaelt / chunkX.hs (splitAt defined with next)
Last active August 29, 2015 14:26
Pipes.splitAt defined with and without `next`
{-#LANGUAGE RankNTypes #-}
import Lens.Simple
-- import Control.Lens (view)
import Control.Monad
import qualified Data.List as L
import Data.Vector (Vector)
import qualified Data.Vector.Generic as V
import qualified Data.Vector.Generic.Mutable as VM
import Pipes
import Pipes.Group hiding (chunksOf)