Given
data Const c a = Const c
we have
data Free (Const c) a
= Pure a
{-# LANGUAGE FlexibleInstances #-} | |
-- See http://stackoverflow.com/questions/9967790/instance-in-haskell | |
instance (Enum a) => Enum (a, a) where | |
fromEnum (x,y) = | |
k^2 + 2*j + if permuted then 1 else 0 | |
where | |
k = max (fromEnum x) (fromEnum y) | |
j = min (fromEnum x) (fromEnum y) |
#!/usr/bin/env stack | |
{- stack --resolver lts-12.0 runghc -} | |
{-# LANGUAGE TypeFamilies, FlexibleInstances #-} | |
{-# LANGUAGE DataKinds, PolyKinds, KindSignatures, TypeInType #-} | |
{-# LANGUAGE AllowAmbiguousTypes, TypeApplications, GADTs #-} | |
import Prelude hiding ((.), id) | |
import qualified Prelude | |
import Data.Kind |
{-# LANGUAGE TypeFamilies, FlexibleContexts #-} | |
import Math.LinearMap.Category | |
import Data.VectorSpace | |
import Linear.V3 | |
import Data.AffineSpace | |
import Control.Arrow | |
import Data.Semigroup | |
import qualified Diagrams.Prelude as Dia | |
import Graphics.Dynamic.Plot.R2 |
module Main where | |
import Graphics.Text.PCF | |
import Data.Foldable (fold) | |
import System.Environment (getArgs) | |
main :: IO () | |
main = do | |
args <- getArgs | |
let style = case ( any (`elem`["-b","--bold"]) args |