Distribution.Backpack.ModuleShape

Cabal-2.0.1.0: A framework for packaging Haskell software

Safe Haskell | None
Language | Haskell2010

Distribution.Backpack.ModuleShape

Contents

- Module shapes

Description

See https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst

Synopsis

- data ModuleShape = ModuleShape {
  - modShapeProvides :: OpenModuleSubst
  - modShapeRequires :: Set ModuleName
  }
- emptyModuleShape :: ModuleShape
- shapeInstalledPackage :: InstalledPackageInfo -> ModuleShape

# Module shapes

data ModuleShape Source #

A `ModuleShape` describes the provisions and requirements of a library. We can extract a `ModuleShape` from an `InstalledPackageInfo`.

Constructors

ModuleShape |
Fields modShapeProvides :: OpenModuleSubst modShapeRequires :: Set ModuleName

Instances

Eq ModuleShape # |
Methods (==) :: ModuleShape -> ModuleShape -> Bool # (/=) :: ModuleShape -> ModuleShape -> Bool #
Show ModuleShape # |
Methods showsPrec :: Int -> ModuleShape -> ShowS Source # show :: ModuleShape -> String Source # showList :: [ModuleShape] -> ShowS Source #
Generic ModuleShape # |
Associated Types type Rep ModuleShape :: * -> * Source # Methods from :: ModuleShape -> Rep ModuleShape x Source # to :: Rep ModuleShape x -> ModuleShape Source #
Binary ModuleShape # |
Methods put :: ModuleShape -> Put Source # get :: Get ModuleShape Source # putList :: [ModuleShape] -> Put Source #
ModSubst ModuleShape # |
Methods modSubst :: OpenModuleSubst -> ModuleShape -> ModuleShape Source #
type Rep ModuleShape # |
type Rep ModuleShape = D1 * (MetaData "ModuleShape" "Distribution.Backpack.ModuleShape" "Cabal-2.0.1.0" False) (C1 * (MetaCons "ModuleShape" PrefixI True) ((:*:) * (S1 * (MetaSel (Just Symbol "modShapeProvides") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * OpenModuleSubst)) (S1 * (MetaSel (Just Symbol "modShapeRequires") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Set ModuleName)))))

emptyModuleShape :: ModuleShape Source #

The default module shape, with no provisions and no requirements.

shapeInstalledPackage :: InstalledPackageInfo -> ModuleShape Source #