Skip to content

Latest commit

 

History

History
244 lines (232 loc) · 12.7 KB

haskell.org

File metadata and controls

244 lines (232 loc) · 12.7 KB

Haskell

Syntax

report
Haskell Language Report

Coding Style

wiki: style
wiki: idiomls
tibble
hindent
retrie

Compiler

ghc
ghcid
Very low feature GHCi based IDE
ghc proposals
This repository contains specifications for proposed changes to the Glasgow Haskell Compiler. The purpose of the GHC proposal process and of the GHC Steering Committee is to broaden the discussion of the evolution of GHC.
ghc papers
some pdfs for ghc implements. The whole lists can be found in the wiki in ghc repo.
ghcjs
write web script by haskell
clash-compiler
Haskell to VHDL/Verilog/SystemVerilog compiler

Parser

alex
tutor, archive
example to python
happy
tree-sister

Package & project

hackage
cabal
stack
Work with cabal to manage whole project.
stackage
“Stable Hackage”: vetted consistent packages from Hackage
stack-run
A plugin, quickly run the project.
snack
Nix-based incremental Haskell build tool
shake

Tool Chains

haddock
comment to document
cheatsheet
cheatsheet
hoogle
quickly searching
dhall
a config language
graphmod
A utility for displaying the module dependencies of Haskell programs.
haskell language server
Official haskell ide support via language server (LSP). Successor of ghcide & haskell-ide-engine.

CI

haskell-ci
Scripts and instructions for using CI services (e.g. Travis CI or Appveyor) with multiple GHC configurations

Cheatsheet

symbol search cheatsheet

Checklist

checklist
A checklist to optimize code

IDE

haskell-language-server
A framework which can work with vim, emacs and others
leksah

Tutor

awesome-learing-haskell
A collection of resources which were useful to Tweagers for learning Haskell and its various aspects
real world haskell
cn
learn4haskell
magicalhaskell
learn haskell by building a blog generator
A tutorial on the universality and expressiveness of fold

Compiler

write you a haskell
Building a modern functional compiler from first principles. web archive

Misc

luna-lang
a visual lang.
Idris
A Dependently Typed Functional Programming Language

Awesome

haskell
haskell planetarium
for beginner
wiwinwlh
toolbox
Useful tools when developing haskell

Article

A LIST OF HASKELL ARTICLES ON GOOD DESIGN, GOOD TESTING
The Evolution of a Haskell Programmer
How to debug Haskell code?
What is the difference between Pattern Matching and Guards?
范畴论完全装逼手册 / Grokking Monad
part1
part2
part3
haskell-bad-parts
Functor, Applicative, and Why

Library

Codc

Compression

zstd

Serialize

serialise
control format
cereal

CLI

shh
Simple shell like scripting from Haskell

Arguments

cmdargs
[IMO, the best one] command line argument processing
optparse-applicative
Applicative option parser
optparse-generic
This library auto-generates an optparse-applicative-compatible Parser from any data type that derives the Generic interface.

Input

haskeline

Interpreter

ihaskell

Data

these
An either-or-both data type, with corresponding hybrid error/writer monad transformer.

String

Text
utf
ByteString
binary, ascii
fmt
A new formatting library that tries to be simple to understand while still being powerful and providing more convenience features than other libraries (like functions for pretty-printing maps and lists, or a function for printing arbitrary datatypes using generics).
text-icu
unicode aware
lucid
html
xml-conduit
xml
aeson
json
json-to-haskell
generate haskell code by json data

Cryptography

password
Hashing and checking of passwords
cryptonite
many algorithms

Parsing

megaparsec
Monadic parser combinators

Struct

ilist
Optimised list functions for doing index-related things. They’re faster than common idioms in all cases, they avoid space leaks, and sometimes they fuse better as well.
containers
sets
for set-like things
dictionaries
dictionaries, hashmaps, maps, etc.
sequences
lists, vectors/arrays, sequences, etc.
unordered-containers
stm-containers
This library is based on an STM-specialized implementation of Hash Array Mapped Trie. It provides efficient implementations of Map, Set and other data structures, which starting from version 1 perform even better than their counterparts from “unordered-containers”, but also scale well on concurrent access patterns.
z-data
array, slices and text

Control

pipes
stream processing
recursion schemes
Generalized bananas, lenses and barbed wire

Game

LambdaHack
Haskell game engine library for roguelike dungeon crawlers; please offer feedback

Graphisc

gloss
Gloss hides the pain of drawing simple vector graphics behind a nice data type and a few display functions. Gloss uses OpenGL under the hood, but you won’t need to worry about any of that. Get something cool on the screen in under 10 minutes.

Link

plugins
Dynamic linking for Haskell and C objects

Math

hmatrix
Linear algebra and numerical computation
dimensional
Dimensional library variant built on Data Kinds, Closed Type Families, TypeNats (GHC 7.8+).
what4
Symbolic formula representation and solver interaction library
group-theory
the theory of group
linear
Low-dimensional linear algebra primitives for Haskell. This lib contains comparsion with epsilon.

Monadic

transformers
mtl

Net

UI

shpadoinkle
web ui

Request

req
wreq
scripting
http-client-tls
everything else(client)
servant-client
both the client and the server.
haxl
A Haskell library that simplifies access to remote data, such as databases or web-based services.

Server

ihp
The fastest way to build type safe web apps. IHP is a new batteries-included web framework optimized for longterm productivity and programmer happiness
servant
servant is a set of Haskell libraries for writing type-safe web applications but also deriving clients (in Haskell and other languages) or generating documentation for them, and more.
purview
Build server rendered, interactive websites with Haskell
yesod
A RESTful Haskell web framework built on WAI.

Benchmarking

criterion
This library provides a powerful but simple way to measure software performance. It provides both a framework for executing and analysing benchmarks and a set of driver functions that makes it easy to build and run benchmarks, and to analyse their results.
gauge
‘gauge’ is a lean, maintained fork of Criterion

Foundation

foundation
a replace for prelude
polysemy
gemini higher-order, no-boilerplate, zero-cost monads

Symbolic

crucible
Crucible is a library for symbolic simulation of imperative programs

Test

quickcheck
hspce
tasty
haskell-hedgehog
Release with confidence, state-of-the-art property testing for Haskell.
diagnose
Beautiful error reporting done easily

System

random
retry
retry io action

C preprocessor

cpphs

Misc

reflex
Interactive programs without callbacks or side-effects. Functional Reactive Programming (FRP) uses composable events and time-varying values to describe interactive systems as pure functions. Just like other pure functional code, functional reactive code is easier to get right on the first try, maintain, and reuse.

Database

datalog
This is a pure Haskell implementation of Datalog, as a library

Development

data-default

Web

obelisk
Functional reactive web and mobile applications, with batteries included.
hyperbole
Haskell interactive serverside web framework inspired by HTMX

Utils

Blog

hakyll
static blog

Generic

generics
archive

GHC

ghc with nix support
Nix (shell) expression for working on GHC

Configure

hnix
Haskell implementation of the Nix language
dhall

Performance

ghc -profile

AI

hasktorch
Tensors and neural networks in Haskell

Visualizer

rgleichman/glance
a visual syntax for the programming language haskell

Amazing

dpiponi/quine-central
This is a Haskell program that prints out a Perl program that prints out a Python program that prints out a Ruby program that prints out a C program that prints out a Java program that prints out the original program.