Skip to content

Commit d5b26cf

Browse files
authored
Merge pull request #1124 from gacallea/main
update/complete haskell tags
2 parents 4b2779f + 896a026 commit d5b26cf

File tree

2 files changed

+69
-1
lines changed

2 files changed

+69
-1
lines changed

TAGS.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Tags
2+
3+
This document aims to provide reasoning why `config.json` contains the `"tags"` it contains.
4+
5+
## Paradigms
6+
7+
- [x] `paradigm/declarative`: implied by `paradigm/functional`.
8+
- [x] `paradigm/functional`: "purely functional" is Haskell's middle name.
9+
- [ ] `paradigm/imperative`: even though Haskell is «the world's finest imperative programming language», the style is not prevalent. Unless you count `do`-notation.
10+
- [ ] `paradigm/logic`: possible through DSL's, but not inherently supported. (Ignoring type class resolution.)
11+
- [ ] `paradigm/object_oriented`: N/A
12+
- [ ] `paradigm/procedural`: this would imply `paradigm/imperative`.
13+
14+
## Typing
15+
16+
- [x] `typing/static`: types are checked at compile time.
17+
- [ ] `typing/dynamic`: types are erased at compile time and hence not available at run time.
18+
- [x] `typing/strong`: as opposed to this term, types in Haskell are unambiguous.
19+
- [ ] `typing/weak`: see `typing/strong`.
20+
21+
## Execution mode
22+
23+
- [x] `execution_mode/compiled`: this is the norm.
24+
- [ ] `execution_mode/interpreted`: while possible (`runghc`), this is not the norm.
25+
26+
## Platform
27+
28+
- [x] `platform/windows`: entirely normal.
29+
- [x] `platform/mac`: entirely normal.
30+
- [x] `platform/linux`: entirely normal.
31+
- [ ] `platform/ios`: unsure whether it has been done, so: no.
32+
- [ ] `platform/android`: has been done, but is not the norm.
33+
- [ ] `platform/web`: has been done, but is not the norm.
34+
35+
## Runtime
36+
37+
- [x] `runtime/standalone_executable`: the default.
38+
- [ ] `runtime/language_specific`: 🤷 (of course it has – but is that notable?)
39+
- [ ] `runtime/clr`: no support.
40+
- [ ] `runtime/jvm`: no support.
41+
- [ ] `runtime/beam`: no support.
42+
- [ ] `runtime/wasmtime`: no support, but work is being done towards compiling Haskell to Wasm.
43+
44+
## Used for
45+
46+
- [ ] `used_for/artificial_intelligence`:
47+
- [x] `used_for/backends`:
48+
- [ ] `used_for/cross_platform_development`:
49+
- [ ] `used_for/embedded_systems`: the large runtime and the garbage collection make this an ill fit.
50+
- [x] `used_for/financial_systems`: Haskell is popular with banks and crypto (Cardano) folk.
51+
- [ ] `used_for/frontends`:
52+
- [ ] `used_for/games`:
53+
- [ ] `used_for/guis`:
54+
- [ ] `used_for/mobile`: too rarely.
55+
- [ ] `used_for/robotics`:
56+
- [ ] `used_for/scientific_calculations`: work is being done to make this nice, but it's not there yet.
57+
- [ ] `used_for/scripts`: very possible, but uncommon.
58+
- [ ] `used_for/web_development`:

config.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1320,6 +1320,16 @@
13201320
}
13211321
],
13221322
"tags": [
1323-
"paradigm/functional"
1323+
"paradigm/declarative",
1324+
"paradigm/functional",
1325+
"typing/static",
1326+
"typing/strong",
1327+
"execution_mode/compiled",
1328+
"platform/windows",
1329+
"platform/mac",
1330+
"platform/linux",
1331+
"runtime/standalone_executable",
1332+
"used_for/backends",
1333+
"used_for/financial_systems"
13241334
]
13251335
}

0 commit comments

Comments
 (0)