#!/bin/sh
export PATH='/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl'
echo 'name: ghc-typelits-knownnat
version: 0.6
id: ghc-typelits-knownnat-0.6-KBdFjYK3LdR8kByZ2AnuKQ
key: ghc-typelits-knownnat-0.6-KBdFjYK3LdR8kByZ2AnuKQ
license: BSD-2-Clause
copyright: Copyright © 2016     , University of Twente,
           2017-2018, QBayLogic B.V.,
           2017     , Google Inc.
maintainer: christiaan.baaij@gmail.com
author: Christiaan Baaij
homepage: http://clash-lang.org/
synopsis: Derive KnownNat constraints from other KnownNat constraints
description:
    A type checker plugin for GHC that can derive \"complex\" @KnownNat@
    constraints from other simple/variable @KnownNat@ constraints. i.e. without
    this plugin, you must have both a @KnownNat n@ and a @KnownNat (n+2)@
    constraint in the type signature of the following function:
    .
    @
    f :: forall n . (KnownNat n, KnownNat (n+2)) => Proxy n -> Integer
    f _ = natVal (Proxy :: Proxy n) + natVal (Proxy :: Proxy (n+2))
    @
    .
    Using the plugin you can omit the @KnownNat (n+2)@ constraint:
    .
    @
    f :: forall n . KnownNat n => Proxy n -> Integer
    f _ = natVal (Proxy :: Proxy n) + natVal (Proxy :: Proxy (n+2))
    @
    .
    The plugin can derive @KnownNat@ constraints for types consisting of:
    .
    * Type variables, when there is a corresponding @KnownNat@ constraint
    .
    * Type-level naturals
    .
    * Applications of the arithmetic expression: +,-,*,^
    .
    * Type functions, when there is either:
    .
    1. a matching given @KnownNat@ constraint; or
    .
    2. a corresponding @KnownNat\<N\>@ instance for the type function
    .
    To use the plugin, add the
    .
    @
    OPTIONS_GHC -fplugin GHC.TypeLits.KnownNat.Solver
    @
    .
    Pragma to the header of your file.
category: Type System
abi: 2b5a18f993f28352de22ec2004c77b09
exposed: True
exposed-modules:
    GHC.TypeLits.KnownNat GHC.TypeLits.KnownNat.Solver
hidden-modules: GHC.TypeLits.KnownNat.TH
import-dirs: /usr/lib/ghc-8.6.3/site-local/ghc-typelits-knownnat-0.6
library-dirs: /usr/lib/ghc-8.6.3/site-local/ghc-typelits-knownnat-0.6
dynamic-library-dirs: /usr/lib
data-dir: /usr/share/x86_64-linux-ghc-8.6.3/ghc-typelits-knownnat-0.6
hs-libraries: HSghc-typelits-knownnat-0.6-KBdFjYK3LdR8kByZ2AnuKQ
depends:
    base-4.12.0.0 ghc-8.6.3
    ghc-tcplugins-extra-0.3-ILrmwD6AoOJA69cuvx3Bhr
    ghc-typelits-natnormalise-0.6.2-2un2lGQQ4HB2J3u7WKDRUB
    template-haskell-2.14.0.0 transformers-0.5.5.0
haddock-interfaces: /usr/share/doc/haskell-ghc-typelits-knownnat/html/ghc-typelits-knownnat.haddock
haddock-html: /usr/share/doc/haskell-ghc-typelits-knownnat/html
' | '/usr/bin/ghc-pkg' 'update' '--force' '-' '--global' '--no-user-package-db' "$@"

