Skip to content

Instantly share code, notes, and snippets.

@bradparker
bradparker / default.nix
Created Mar 5, 2019
Minimal Miso default nix file
View default.nix
let
overlay = self: super:
{
haskell = super.haskell // {
packages = super.haskell.packages // {
ghcjs = super.haskell.packages.ghcjs.extend (hself: hsuper: {
# Doctest fails to build with a strange error.
doctest = null;
# These require doctest to run their tests.
View the-little-typer.pie
#lang pie
(claim one
Nat)
(define one
(add1 zero))
(claim vegetables
(Pair Atom Atom))
(define vegetables
View Comonad.hs
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE DeriveFunctor #-}
{-# OPTIONS_GHC -Wall #-}
-- $ nix-shell -p "haskellPackages.ghcWithPackages (pkgs: [ pkgs.random ])"
-- $ runhaskell Comonad.hs
module Main where
View CommonmarkJSON.hs
{-# LANGUAGE OverloadedStrings #-}
module Main
( main
) where
import CMarkGFM
( ListAttributes
, Node
, NodeType
View Mtl.hs
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE RankNTypes #-}
module Main where
import Control.Monad
import Control.Monad.Trans.State (runState, runStateT)
import Control.Monad.Trans.Except (runExceptT, runExcept)
import Control.Monad.Error.Class
import Control.Monad.State.Class
View Hasql.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
module Main where
import Control.Monad (replicateM)
import qualified Data.ByteString.Char8 as BS
import Data.ByteString.Char8 (ByteString)
import Data.Foldable (foldl')
import Data.Functor.Contravariant (contramap)
View Opaleye.hs
{-# LANGUAGE Arrows #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE FlexibleContexts #-}
{-# OPTIONS_GHC -Wall #-}
module Main where
import Data.Bool (bool)
import Data.Text (Text)
import Control.Arrow (returnA)
@bradparker
bradparker / Balance.hs
Created Dec 5, 2018
Wrong answer ... but fun
View Balance.hs
data Balance =
Balance !Int
!Int
deriving (Eq, Show)
instance Semigroup Balance where
Balance a b <> Balance c d
| b <= c = Balance (a + c - b) d
| otherwise = Balance a (d + b - c)
@bradparker
bradparker / ExpandMap.hs
Created Dec 4, 2018
Expanding int maps
View ExpandMap.hs
module ExpandMap
( expandIntMap
) where
import Control.Monad.State (evalState, get, put)
import Data.IntMap (IntMap)
import qualified Data.IntMap as IntMap
import Data.Traversable (for)
-- >>> expandIntMap '0' 50 (IntMap.fromList (zip [0,5..50] ['a' .. 'z']))
@bradparker
bradparker / Main.hs
Created Nov 26, 2018
Ok, let's have a crack at learning FRP
View Main.hs
-- To run:
-- $ nix-shell -p "haskellPackages.ghcWithPackages (ghc: [ghc.reactive-banana])" --run "runhaskell ./Main.hs"
module Main where
import Control.Concurrent (threadDelay)
import Control.Event.Handler (newAddHandler)
import Control.Monad (replicateM_)
import Reactive.Banana.Combinators
( Event
You can’t perform that action at this time.