Skip to content

Instantly share code, notes, and snippets.

View qnikst's full-sized avatar
🐧
penguin?

Alexander Vershilov qnikst

🐧
penguin?
View GitHub Profile
@qnikst
qnikst / lol.hs
Last active February 24, 2017 07:13 — forked from s9gf4ult/lol.hs
TF (juick : http://juick.com/segfault/2863032#5)
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE UndecidableInstances #-}
import Data.Time
type family TimeDiff a where
TimeDiff UTCTime = NominalDiffTime
TimeDiff a = a
@qnikst
qnikst / Foo.hs
Last active January 10, 2016 19:13 — forked from max630/Foo.hs
attempt to use DataKinds
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE ExplicitNamespaces #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE UndecidableInstances #-}
module Foo where
@qnikst
qnikst / get.hs
Last active January 12, 2016 07:03 — forked from ndtimofeev/get.hs
-- stylistic
{-# LANGUAGE LambdaCase #-}
-- singletons
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE Rank2Types #-}
{-# LANGUAGE GADTs #-}
-- main
{-# LANGUAGE DataKinds #-} -- typelevel programming
{-# LANGUAGE TypeFamilies #-} -- typelevel programming
{-# LANGUAGE ScopedTypeVariables #-} -- typelevel programming
@qnikst
qnikst / woker.hs
Created October 27, 2015 10:43 — forked from ndtimofeev/woker.hs
{-# LANGUAGE ExistentialQuantification #-}
-- base
import Control.Exception
import Control.Concurrent.MVar
import Control.Monad
import Data.IORef
import System.IO.Unsafe
{-# LANGUAGE TemplateHaskell, StandaloneDeriving, MultiParamTypeClasses, TypeFamilies, GeneralizedNewtypeDeriving #-}
import Control.Monad
import Control.Concurrent
import Control.Distributed.Process
import Control.Distributed.Process.Backend.SimpleLocalnet
import Control.Distributed.Process.Closure
import Control.Distributed.Process.Internal.Types (Process(..), LocalProcess)
import Control.Distributed.Process.Node (initRemoteTable)
import Control.Monad.Base (MonadBase(..))
import Data.List
import Control.Monad.ST
import Control.Monad
import Data.Array.ST
import Data.Array.Unboxed
data Exp = IfGt Int Int Block Block -- if a[i] > a[j] then blk1 else blk2
| Swap Int Int -- a[i] <-> a[j] (i,j < 8)
| Copy Int Int -- a[i] <- a[j] (i > 7)
deriving Show
{-# LANGUAGE BangPatterns #-}
import Control.Applicative
import Prelude hiding (minimum, sum)
import Data.List (permutations)
import Control.Monad.ST
import Data.Bifunctor (second)
-- import Control.Monad
-- import Data.Array.ST
-- import Data.Array.Unboxed
import Data.Vector.Unboxed (Vector)
@qnikst
qnikst / gist:5285242
Last active December 15, 2015 15:58 — forked from voidlizard/gist:5285196
{-# LANGUAGE BangPatterns #-}
module Main where
import qualified Data.ByteString as BS
import System.IO
import Control.Monad
import Data.Bits
import Data.Word
import Data.Monoid
import Network.Openflow.StrictPut
@qnikst
qnikst / magick.hs
Created August 28, 2012 17:47 — forked from Shimuuar/gist:3501111
Do magik
import Data.Default
import Debug.Trace
class Magick a where
magickStorage :: [a] -> String
instance Magick Int where
magickStorage = const "Int"
instance Magick Char where
@qnikst
qnikst / DeriveADT.hs
Created June 8, 2012 15:19 — forked from pxqr/gist:2893200
Question: Deriving boilerplate matching function.
{-# LANGUAGE TemplateHaskell #-}
module DeriveADT
( deriveExtract
, deriveIs
) where
import Data.Maybe
import Data.Char
import Language.Haskell.TH