Project

General

Profile

Haskell » History » Version 9

Grigoriy Volkov, 02/04/2019 02:57 PM

1 1 Grigoriy Volkov
h1. Haskell
2
3 4 Grigoriy Volkov
"Haskell Cheatsheet":http://bxt.github.io/Ludus/haskell-cheatsheet/
4 7 Grigoriy Volkov
"haskell-trainings":https://github.com/google/haskell-trainings/releases
5 4 Grigoriy Volkov
6 5 Grigoriy Volkov
h2. snippets
7
8
* [[HaskellMaybeChecks]]
9
* [[HaskellTypeLevelMachine]]
10
11 9 Grigoriy Volkov
h2. ghci debugging
12
13
<pre>
14
:set -fbreak-on-error -fbreak-on-exception
15
:trace machineMain
16
:force _exception
17
:hist
18
:back
19
</pre>
20
21 1 Grigoriy Volkov
h2. libs
22
23 6 Grigoriy Volkov
* "binary-parsers":https://www.stackage.org/lts-13.5/package/binary-parsers-0.2.3.0
24 1 Grigoriy Volkov
* "concat":https://github.com/conal/concat ("z3cat":https://github.com/jwiegley/z3cat/blob/master/test/Main.hs || "smt example":https://github.com/conal/concat/blob/master/examples/src/ConCat/SMT.hs) — *"Compiling to categories":http://conal.net/papers/compiling-to-categories/* — compiler plugin for translating normal Haskell functions (on standard types) to SMT, etc.
25
* "SBV: SMT Based Verification":https://leventerkok.github.io/sbv/ — translates Haskell functions on custom symbolic types
26
* "refined":http://nikita-volkov.github.io/refined/ — refinement types <pre>type ProperFraction = Refined (And (Not (LessThan 0)) (Not (GreaterThan 1))) Double</pre>
27
* "hedgehog":https://github.com/hedgehogqa/haskell-hedgehog — random test gen (QuickCheck)
28 2 Grigoriy Volkov
* "GHC.Stack":https://hackage.haskell.org/package/base-4.10.0.0/docs/GHC-Stack.html — can get code position for DSL
29
* "Data.Sequence":http://hackage.haskell.org/package/containers-0.6.0.1/docs/Data-Sequence.html — list with fast append on both sides
30 3 Grigoriy Volkov
31
h2. exts
32
33
* "RebindableSyntax":https://ocharles.org.uk/guest-posts/2014-12-06-rebindable-syntax.html — overloading built-in operators / do notation
34
* "NullaryTypeClasses":https://ocharles.org.uk/posts/2014-12-10-nullary-type-classes.html — global implementation of one thing
35 5 Grigoriy Volkov
* "DataKinds":http://ponies.io/posts/2014-07-30-typelits.html , TypeFamilies (+ GHC.TypeLits) — type-level annotations
36
** "Basic Type Level Programming in Haskell":https://www.parsonsmatt.org/2017/04/26/basic_type_level_programming_in_haskell.html
37
** "Parsing type-level strings in Haskell":https://kcsongor.github.io/symbol-parsing-haskell/
38
** "Servant, Type Families, and Type-level Everything":https://arow.info/blog/posts/2015-07-10-servant-intro.html
39
** "Haskell Type Names as Strings":http://www.mchaver.com/posts/2017-12-12-type-name-to-string.html
40 8 Grigoriy Volkov
41
h2. other
42
43
* "ST Monad":https://medium.com/permutive/having-your-cake-and-eating-it-9f462bf3f908 for imperative algorithms