Extensible type-safe unions for Haskell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bench
src/Data
.gitignore
.travis.yml
LICENSE
README.md
Setup.hs
stack.yaml
union.cabal

README.md

Union

Build Status Hackage

Extensible type-safe unions.

ghci> let a = openUnion # (5 :: Int) :: OpenUnion '[Bool, Int]

ghci> a ^? openUnion :: Maybe Int
Just 5

ghci> a ^? openUnion :: Maybe Bool
Nothing

ghci> a ^? openUnion :: Maybe Char
<interactive>:8:6:
    No instance for (UElem Char '[] (RIndex Char '[]))
      arising from a use of ‘openUnion’
    In the second argument of ‘(^?)’, namely ‘openUnion’
    In the expression: a ^? openUnion :: Maybe Char
    In an equation for ‘it’: it = a ^? openUnion :: Maybe Char