-
Notifications
You must be signed in to change notification settings - Fork 1
/
type-safe-avl.cabal
92 lines (84 loc) · 4.45 KB
/
type-safe-avl.cabal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
cabal-version: 3.0
name: type-safe-avl
version: 1.0.0.1
synopsis: Type safe BST and AVL trees
description: Several implementations of type-safe binary search trees (BST) and balanced binary search trees (AVL).
These differ on how the structural invariants are implemented at the type level.
Each of them have their own advantages and disadvantages.
This library shows different ways of implementing invariants at the type level, each of them providing different features, all of them enforced at compile time:
- Data invariant verification: assert at compile time if any given tree is BST/AVL.
- Program certification: verify at compile time if the implementation of the operations over BST/AVL trees preserves the order of the keys and the balance in the heights.
- Type-safe data constructors: implementation of tree constructors that throw an error at compile time if the tree being constructed is not BST/AVL.
homepage: https://github.com/nico-rodriguez/type-safe-avl
bug-reports: https://github.com/nico-rodriguez/type-safe-avl/issues
license: GPL-3.0-only
license-file: LICENSE
author: Nicolás Rodríguez <marco.nicolas.rodriguez@protonmail.com>
maintainer: Nicolás Rodríguez <marco.nicolas.rodriguez@protonmail.com>
category: Data
build-type: Simple
extra-source-files: README.md
CHANGELOG.md
source-repository head
type: git
location: https://github.com/nico-rodriguez/type-safe-avl
library
hs-source-dirs: src
build-depends: base ^>=4.15.0.0
default-language: Haskell2010
ghc-options: -fmax-simplifier-iterations=0 -Weverything
exposed-modules: Data.Tree.ITree
Data.Tree.Node
Data.Tree.BST.Extern
Data.Tree.BST.FullExtern
Data.Tree.BST.Intern
Data.Tree.BST.Invariants
Data.Tree.BST.Unsafe
Data.Tree.BST.Unsafe.Examples
Data.Tree.BST.Utils
Data.Tree.BST.Intern.Delete
Data.Tree.BST.Intern.Constructors
Data.Tree.BST.Intern.Insert
Data.Tree.BST.Intern.Lookup
Data.Tree.BST.Intern.Examples
Data.Tree.BST.Extern.Delete
Data.Tree.BST.Extern.Constructors
Data.Tree.BST.Extern.Insert
Data.Tree.BST.Extern.InsertProofs
Data.Tree.BST.Extern.Lookup
Data.Tree.BST.Extern.Examples
Data.Tree.BST.Extern.DeleteProofs
Data.Tree.BST.FullExtern.Examples
Data.Tree.AVL.Extern
Data.Tree.AVL.FullExtern
Data.Tree.AVL.Intern
Data.Tree.AVL.Invariants
Data.Tree.AVL.Unsafe
Data.Tree.AVL.Unsafe.Examples
Data.Tree.AVL.Intern.Balance
Data.Tree.AVL.Intern.Delete
Data.Tree.AVL.Intern.Constructors
Data.Tree.AVL.Intern.Insert
Data.Tree.AVL.Intern.Lookup
Data.Tree.AVL.Intern.Examples
Data.Tree.AVL.Extern.BalanceProofs
Data.Tree.AVL.Extern.Balance
Data.Tree.AVL.Extern.Delete
Data.Tree.AVL.Extern.Constructors
Data.Tree.AVL.Extern.Insert
Data.Tree.AVL.Extern.InsertProofs
Data.Tree.AVL.Extern.Examples
Data.Tree.AVL.Extern.DeleteProofs
Data.Tree.AVL.FullExtern.Examples
other-extensions: DataKinds
GADTs
KindSignatures
Safe
DerivingStrategies
StandaloneDeriving
MultiParamTypeClasses
FlexibleInstances
ScopedTypeVariables
TypeFamilies
TypeOperators
UndecidableInstances