Skip to content

Instantly share code, notes, and snippets.

diff --git a/dom-parser/dom-parser.cabal b/dom-parser/dom-parser.cabal
index 43fb75e..599925d 100644
--- a/dom-parser/dom-parser.cabal
+++ b/dom-parser/dom-parser.cabal
@@ -32,6 +32,7 @@ library
, lens
, mtl
, open-union
+ , semigroups
, shakespeare
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE DataKinds #-}
module Main where
import Data.Vector.Sized
import Data.Type.Natural
x :: Vector Int [nat| 2 |]
x = 1 :- 2 :- Nil
data Table = Table Bool Symbol Symbol
-- | Term level table information carrier.
data TTable = TTable Bool String String
data instance Sing ('Table opt pre tbl) =
STable (Sing opt) (Sing pre) (Sing tbl)
instance ( SingI opt, SingI pre, SingI tbl )
=> SingI ('Table opt pre tbl) where
  • Монолитный пакет, делающий всё
    • Плюсы
      • Не надо создавать отдельный пакет на несвязанную функциональность, просто кидаешь всё в один пакет
      • Не надо думать про разделение кода на независимые части
    • Минусы
      • Нет четких границ и интерфейсов между частями пакета, которые можно разделить. Всё импортирует всё.
  • Что приводит к невозможности параллельной компиляции модулей
warning: dumping very large path (> 256 MiB); this may run out of memory
these derivations will be built:
/nix/store/dcgiw2yzw7qg81zc5hw6pyg9x6y4vy27-uniplate-1.6.12.drv
/nix/store/00772aws2144kxvgqp5q7ifz6hvaxgic-derive-2.5.26.drv
/nix/store/qqkdn9k4xrg919dr7zyzqiyfjy2b3axw-th-lift-instances-0.1.8.drv
/nix/store/66syp63m6xwsdz5s70mvndndmnsd9zxc-th-orphans-0.13.2.drv
/nix/store/0b13w0x7cxyflg25klnm51d3g23fv6s7-haskell-src-meta-0.6.0.14.drv
/nix/store/d0k0x4namryr23ysjj1jqhfwqfa2y78l-aeson-0.9.0.1.drv
/nix/store/01vqszgq67lms790f5nmbg3fqj3g49n6-aeson-qq-0.8.1.drv
/nix/store/34lwrj5d0bfw3l6mim4drkkk1x5c4i7p-pretty-hex-1.0.drv
import Control.Concurrent
import Control.Concurrent.STM
import Control.Monad
makeSequencer
:: (a -> IO ())
-> IO (a -> IO ())
makeSequencer handler = do
msgVar <- newEmptyTMVarIO
let
data Commit = Commit
{ tree :: Tree
, parent :: Commit
, author :: String
}
data Tree = Tree [TreeElem]
data BlobData

Что надо сделать перед релизом

Проверить собираемость с новым hackage

cabal update

убить песочницу и пересобрать

Запустить тесты

Проверить хакадж

Если предыдущая версия не скомпилировалась, на хакадже, то посмотреть почему это произошло и исправить.

Исходный код

renderCreditCard :: DispatchCreditCard -> CreditCardForm -> ReactRender ()
renderCreditCard dispatch ccf = div_ $ do
let
tf :: Text -> (Text -> CreditCardAction) -> Fold CreditCardForm Text -> ReactRender ()
tf hint action l = textField_ $ TextField
{ _tfValue = fromMaybe "" $ ccf ^? l
, _tfHint = Just hint
, _tfType = TFTText
, _tfOnChange = Just $ dispatch . action
}
@s9gf4ult
s9gf4ult / lol.hs
Last active February 24, 2017 07:11
import Data.Time
class Diffable a where
type Diff a :: *
diff :: a -> a -> Diff a
addDiff :: Diff a -> a -> a
instance {-# OVERLAPPABLE #-} (Num a) => Diffable a where
type Diff a = a
diff = (-)