cabal-version: 3.0 name: type-safe-avl version: 1.0.0.1 x-revision: 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 maintainer: Nicolás Rodríguez 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