Copyright | (c) Edward Kmett 2012 |
---|---|
License | BSD3 |
Maintainer | Edward Kmett <ekmett@gmail.com> |
Stability | experimental |
Portability | non-portable |
Safe Haskell | None |
Language | Haskell2010 |
Ermine.Syntax
Description
- class Variable t where
- _Var :: Prism' (t a) a
- class App t where
- _App :: Prism' (t a) (t a, t a)
- apps :: App t => t a -> [t a] -> t a
- (##) :: App t => t a -> t a -> t a
- class AppHash t where
- _AppHash :: Prism' (t a) (t a, t a)
- appHashes :: AppHash t => t a -> [t a] -> t a
- class AppDict c where
- _AppDict :: Prism' (c a) (c a, c a)
- appDicts :: AppDict t => t a -> [t a] -> t a
- class Fun t where
- _Fun :: Prism' (t a) (t a, t a)
- (~>) :: Fun t => t a -> t a -> t a
- class (Reviewable p, Functor f) => Tup p f t where
- _Tup :: Optic' p f t [t]
- tup :: Tup Tagged Identity t => [t] -> t
- tup' :: Tup Tagged Identity t => [t] -> t
Variables
Discriminable pure
.
Minimal complete definition
Nothing
Methods
Application
Discriminable App
This prism provides ad hoc overloading of construction and pattern
matching on App
.
Minimal complete definition
Nothing
Strict Unboxed Application
Minimal complete definition
Nothing
Dictionary Application
AppDict
provides strict application for dictionary manipulation
Minimal complete definition
Nothing
Fun
Discriminable syntactic arrows.
Minimal complete definition
Nothing
Tup
class (Reviewable p, Functor f) => Tup p f t where Source
(Possibly) Discriminable tupling.
Minimal complete definition
Nothing
Instances
(Bifunctor p, Choice p, Applicative f) => Tup p f (Pattern t) | |
((~) (* -> * -> *) p (Tagged *), (~) (* -> *) f Identity) => Tup p f (Type k t) | |
((~) (* -> * -> *) p (Tagged *), (~) (* -> *) f Identity, Tup (Tagged *) Identity t) => Tup p f (Binder v t) | |
((~) (* -> * -> *) p (Tagged *), (~) (* -> *) f Identity) => Tup p f (Term t a) |