Skip to content

Instantly share code, notes, and snippets.

View NorfairKing's full-sized avatar
🎯
Focusing

Tom Sydney Kerckhove NorfairKing

🎯
Focusing
View GitHub Profile
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
module Test.Syd.Scratchpad where
import Control.Concurrent.STM
import Control.Exception
-# LANGUAGE LambdaCase #-}
module Main where
import Data.List
import System.Environment (getArgs, getProgName)
import System.Exit (exitFailure)
import Prelude
main :: IO ()
@NorfairKing
NorfairKing / helpers.hs
Created November 16, 2023 10:58
Salsa helper invites
import Control.Monad
import Data.List
import Data.Ord
import Text.Printf
@NorfairKing
NorfairKing / salsa.ch
Created November 20, 2023 18:17
Salsa helpers (version 2)
import Control.Monad
import Data.List
import Data.Ord
import Text.Printf
men =
[ (3, 3),
(1, 3),
(3, 3),
(3, 3),
-- V a b == a ± b
--
-- For example:
-- V 100 2 = 100 mm ± 2mm
data V = V
{ -- Middle value
value :: Double,
-- Must be positive
tollerance :: Double
}
selectUnValued :: (MonadIO m, UnValueAll a a', SqlSelect (SqlExpr a) a) => SqlQuery (SqlExpr a) -> SqlPersistT m [a']
selectUnValued = fmap (map unValueAll) . select
unValueAll :: (UnValueAll a a') => a -> a'
unValueAll = unV
class UnValueAll a b where
unV :: a -> b
instance UnValueAll (Value a) a where