homepage: https://github.com/isovector/type-sets#readme
changelog-type: markdown
hash: 28ea6042a5c82142f26670c50ab3bea74ac883498555beb65987bc76afad6a63
test-bench-deps:
  type-sets: -any
  base: ! '>=4.7 && <5'
  cmptype: ! '>=0.1.0.0 && <0.2'
maintainer: sandy@sandymaguire.me
synopsis: Type-level sets
changelog: |
  # Changelog for type-sets

  ## 0.1.0.0 --- 2019-08-07

  Initial release!

  ## Unreleased changes
basic-deps:
  base: ! '>=4.7 && <5'
  cmptype: ! '>=0.1.0.0 && <0.2'
all-versions:
- 0.1.0.0
author: Sandy Maguire
latest: 0.1.0.0
description-type: markdown
description: |+
  # type-sets

  [![Build Status](https://api.travis-ci.org/isovector/type-sets.svg?branch=master)](https://travis-ci.org/isovector/type-sets)
  [![Hackage](https://img.shields.io/hackage/v/cmptype.svg?logo=haskell&label=cmptype)](https://hackage.haskell.org/package/cmptype)


  ## Dedication

  > Obstacles don't have to stop you. If you run into a wall, don't turn around
  > and give up. Figure out how to climb it, go through it, or work around it.

  > -- Michael Jordan, on complexity analysis in Haskell


  ## Overview

  How much do you hate programming at the type level, but only being able to use
  lists? A million? *Two* million? Some mathematicians suspect that there may be
  even larger degrees of hate.

  Enter `type-sets`. They're sets... at the type-level! Check this:

  ```haskell
  {-# OPTIONS_GHC -fplugin=Type.Compare.Plugin #-}

  import Type.Set

  type MySet = Insert Bool (Insert String (Insert (Maybe Int) 'Empty))

  test1 :: Proxy (Member Bool MySet) -> Proxy 'True
  test1 = id  -- Bool is a member :)

  test2 :: Proxy (Member Char MySet) -> Proxy 'False
  test2 = id  -- False is not a member :(
  ```

  See the `Type.Set` module for more operations.

  But wait, there's more! There's also a proof-of-concept `Type.Set.Variant` for
  describing open-sums indexed by type-sets. PRs to make it better would be
  greatly appreciated!

  One love.


  ## Acknowledgments

  Huge shout-outs to [Boris Rozinov][oofp] for all of his help on this library,
  including the original idea, help with the implementation, infinite amounts of
  coffee, and a couch to sleep on while it was being made.

  [oofp]: https://github.com/oofp

license-name: BSD-3-Clause

Update from Hackage at 2019-08-07T19:43:59Z
Update from Hackage at 2019-08-07T19:43:59Z
