packages feed

typelet-0.1.5: typelet.cabal

cabal-version:      2.4
build-type:         Simple
name:               typelet
version:            0.1.5
synopsis:           Plugin to faciliate type-level let
description:        For a certain class of programs, type-level let is essential
                    in order to be able to write these programs in such a way
                    that they do not result in ghc core that is quadratic in
                    size. Type-level let is not explicitly supported in ghc,
                    but we can encode it. The @typelet@ library provides a
                    type-checker plugin that makes the encoding more convenient
                    to use as well as more effective.
bug-reports:        https://github.com/well-typed/typelet/issues
license:            BSD-3-Clause
author:             Edsko de Vries
maintainer:         edsko@well-typed.com
copyright:          Well-Typed LLP, Juspay Technologies Pvt Ltd
category:           Plugin
extra-doc-files:    CHANGELOG.md
tested-with:        GHC ==8.10.7
                    GHC ==9.2.8
                    GHC ==9.4.8
                    GHC ==9.6.6
                    GHC ==9.8.2

source-repository head
  type:     git
  location: https://github.com/well-typed/typelet

library
    exposed-modules:
        TypeLet
        TypeLet.UserAPI
        TypeLet.Plugin
    other-modules:
        TypeLet.Plugin.Constraints
        TypeLet.Plugin.GhcTcPluginAPI
        TypeLet.Plugin.NameResolution
        TypeLet.Plugin.Substitution
    build-depends:
      , base             >= 4.14 && < 4.20
      , containers       >= 0.6  && < 0.7
      , ghc              >= 8.10 && < 9.9
      , ghc-tcplugin-api >= 0.14 && < 0.15
    hs-source-dirs:
        src
    default-language:
        Haskell2010
    default-extensions:
        DataKinds
        DeriveFunctor
        FlexibleInstances
        GADTs
        KindSignatures
        LambdaCase
        MultiParamTypeClasses
        PolyKinds
        RankNTypes
        RecordWildCards
        ScopedTypeVariables
        TupleSections
    other-extensions:
        CPP
    ghc-options:
        -Wall

test-suite test-typelet
    default-language:
        Haskell2010
    default-extensions:
        DataKinds
        FlexibleContexts
        FlexibleInstances
        GADTs
        KindSignatures
        MultiParamTypeClasses
        PolyKinds
        RankNTypes
        ScopedTypeVariables
        StandaloneDeriving
        TypeApplications
        TypeFamilies
        TypeOperators
        UndecidableInstances
    type:
        exitcode-stdio-1.0
    hs-source-dirs:
        test
    main-is:
        TestTypeLet.hs
    other-modules:
        Test.Infra
        Test.Sanity
        Test.WithoutPlugin
    build-depends:
        base
      , typelet
      , tasty
      , tasty-hunit
      , tasty-quickcheck
    ghc-options:
        -Wall