Safe Haskell | None |
---|---|

Language | Haskell2010 |

Author : Joel Burget, Levent Erkok License : BSD3 Maintainer: erkokl@gmail.com Stability : experimental

Accessing symbolic tuple fields and deconstruction.

## Synopsis

- (^.) :: a -> (a -> b) -> b
- _1 :: HasField "_1" b a => SBV a -> SBV b
- _2 :: HasField "_2" b a => SBV a -> SBV b
- _3 :: HasField "_3" b a => SBV a -> SBV b
- _4 :: HasField "_4" b a => SBV a -> SBV b
- _5 :: HasField "_5" b a => SBV a -> SBV b
- _6 :: HasField "_6" b a => SBV a -> SBV b
- _7 :: HasField "_7" b a => SBV a -> SBV b
- _8 :: HasField "_8" b a => SBV a -> SBV b
- tuple :: Tuple tup a => a -> SBV tup
- untuple :: Tuple tup a => SBV tup -> a

# Symbolic field access

(^.) :: a -> (a -> b) -> b infixl 8 Source #

Field access, inspired by the lens library. This is merely reverse
application, but allows us to write things like `(1, 2)^._1`

which is
likely to be familiar to most Haskell programmers out there. Note that
this is precisely equivalent to `_1 (1, 2)`

, but perhaps it reads a little
nicer.

_1 :: HasField "_1" b a => SBV a -> SBV b Source #

Access the 1st element of an `STupleN`

, `2 <= N <= 8`

. Also see `^.`

.

_2 :: HasField "_2" b a => SBV a -> SBV b Source #

Access the 2nd element of an `STupleN`

, `2 <= N <= 8`

. Also see `^.`

.

_3 :: HasField "_3" b a => SBV a -> SBV b Source #

Access the 3nd element of an `STupleN`

, `3 <= N <= 8`

. Also see `^.`

.

_4 :: HasField "_4" b a => SBV a -> SBV b Source #

Access the 4th element of an `STupleN`

, `4 <= N <= 8`

. Also see `^.`

.

_5 :: HasField "_5" b a => SBV a -> SBV b Source #

Access the 5th element of an `STupleN`

, `5 <= N <= 8`

. Also see `^.`

.

_6 :: HasField "_6" b a => SBV a -> SBV b Source #

Access the 6th element of an `STupleN`

, `6 <= N <= 8`

. Also see `^.`

.

_7 :: HasField "_7" b a => SBV a -> SBV b Source #

Access the 7th element of an `STupleN`

, `7 <= N <= 8`

. Also see `^.`

.

_8 :: HasField "_8" b a => SBV a -> SBV b Source #

Access the 8th element of an `STupleN`

, `8 <= N <= 8`

. Also see `^.`

.