├── .gitignore ├── README.md ├── abstracting-functions ├── README.md ├── abstracting-functions.cabal ├── src │ └── Lib.hs ├── stack.yaml └── stack.yaml.lock ├── deriving-via ├── README.md ├── deriving-via.cabal ├── src │ ├── ExternalAPI.hs │ ├── Json.hs │ ├── Lib.hs │ └── ReadShow.hs ├── stack.yaml └── stack.yaml.lock ├── gadt-ddd ├── CHANGELOG.md ├── LICENSE ├── README.md ├── Setup.hs ├── gadt-ddd.cabal ├── src │ └── Lib.hs ├── stack.yaml └── stack.yaml.lock ├── replace-prelude ├── README.md ├── replace-prelude.cabal ├── src │ ├── Lib.hs │ └── Prelude.hs ├── stack.yaml └── stack.yaml.lock └── type-level-user-roles ├── .gitignore ├── LICENSE ├── README.md ├── Setup.hs ├── app └── Main.hs ├── package.yaml ├── src └── API │ ├── Definition.hs │ ├── Run.hs │ └── WithAuth.hs ├── stack.yaml ├── stack.yaml.lock ├── test └── Spec.hs └── typelevel-roles.cabal /.gitignore: -------------------------------------------------------------------------------- 1 | */.stack-work/ 2 | */*~ 3 | */dist* 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/README.md -------------------------------------------------------------------------------- /abstracting-functions/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/abstracting-functions/README.md -------------------------------------------------------------------------------- /abstracting-functions/abstracting-functions.cabal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/abstracting-functions/abstracting-functions.cabal -------------------------------------------------------------------------------- /abstracting-functions/src/Lib.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/abstracting-functions/src/Lib.hs -------------------------------------------------------------------------------- /abstracting-functions/stack.yaml: -------------------------------------------------------------------------------- 1 | resolver: lts-18.28 2 | packages: 3 | - . 4 | -------------------------------------------------------------------------------- /abstracting-functions/stack.yaml.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/abstracting-functions/stack.yaml.lock -------------------------------------------------------------------------------- /deriving-via/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/deriving-via/README.md -------------------------------------------------------------------------------- /deriving-via/deriving-via.cabal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/deriving-via/deriving-via.cabal -------------------------------------------------------------------------------- /deriving-via/src/ExternalAPI.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/deriving-via/src/ExternalAPI.hs -------------------------------------------------------------------------------- /deriving-via/src/Json.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/deriving-via/src/Json.hs -------------------------------------------------------------------------------- /deriving-via/src/Lib.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/deriving-via/src/Lib.hs -------------------------------------------------------------------------------- /deriving-via/src/ReadShow.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/deriving-via/src/ReadShow.hs -------------------------------------------------------------------------------- /deriving-via/stack.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/deriving-via/stack.yaml -------------------------------------------------------------------------------- /deriving-via/stack.yaml.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/deriving-via/stack.yaml.lock -------------------------------------------------------------------------------- /gadt-ddd/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/gadt-ddd/CHANGELOG.md -------------------------------------------------------------------------------- /gadt-ddd/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/gadt-ddd/LICENSE -------------------------------------------------------------------------------- /gadt-ddd/README.md: -------------------------------------------------------------------------------- 1 | # gadt-ddd 2 | -------------------------------------------------------------------------------- /gadt-ddd/Setup.hs: -------------------------------------------------------------------------------- 1 | import Distribution.Simple 2 | main = defaultMain 3 | -------------------------------------------------------------------------------- /gadt-ddd/gadt-ddd.cabal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/gadt-ddd/gadt-ddd.cabal -------------------------------------------------------------------------------- /gadt-ddd/src/Lib.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/gadt-ddd/src/Lib.hs -------------------------------------------------------------------------------- /gadt-ddd/stack.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/gadt-ddd/stack.yaml -------------------------------------------------------------------------------- /gadt-ddd/stack.yaml.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/gadt-ddd/stack.yaml.lock -------------------------------------------------------------------------------- /replace-prelude/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/replace-prelude/README.md -------------------------------------------------------------------------------- /replace-prelude/replace-prelude.cabal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/replace-prelude/replace-prelude.cabal -------------------------------------------------------------------------------- /replace-prelude/src/Lib.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/replace-prelude/src/Lib.hs -------------------------------------------------------------------------------- /replace-prelude/src/Prelude.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/replace-prelude/src/Prelude.hs -------------------------------------------------------------------------------- /replace-prelude/stack.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/replace-prelude/stack.yaml -------------------------------------------------------------------------------- /replace-prelude/stack.yaml.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/replace-prelude/stack.yaml.lock -------------------------------------------------------------------------------- /type-level-user-roles/.gitignore: -------------------------------------------------------------------------------- 1 | .stack-work/ 2 | *~ -------------------------------------------------------------------------------- /type-level-user-roles/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/type-level-user-roles/LICENSE -------------------------------------------------------------------------------- /type-level-user-roles/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/type-level-user-roles/README.md -------------------------------------------------------------------------------- /type-level-user-roles/Setup.hs: -------------------------------------------------------------------------------- 1 | import Distribution.Simple 2 | main = defaultMain 3 | -------------------------------------------------------------------------------- /type-level-user-roles/app/Main.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/type-level-user-roles/app/Main.hs -------------------------------------------------------------------------------- /type-level-user-roles/package.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/type-level-user-roles/package.yaml -------------------------------------------------------------------------------- /type-level-user-roles/src/API/Definition.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/type-level-user-roles/src/API/Definition.hs -------------------------------------------------------------------------------- /type-level-user-roles/src/API/Run.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/type-level-user-roles/src/API/Run.hs -------------------------------------------------------------------------------- /type-level-user-roles/src/API/WithAuth.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/type-level-user-roles/src/API/WithAuth.hs -------------------------------------------------------------------------------- /type-level-user-roles/stack.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/type-level-user-roles/stack.yaml -------------------------------------------------------------------------------- /type-level-user-roles/stack.yaml.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/type-level-user-roles/stack.yaml.lock -------------------------------------------------------------------------------- /type-level-user-roles/test/Spec.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/type-level-user-roles/test/Spec.hs -------------------------------------------------------------------------------- /type-level-user-roles/typelevel-roles.cabal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dnikolovv/practical-haskell/HEAD/type-level-user-roles/typelevel-roles.cabal --------------------------------------------------------------------------------