Safe Haskell | None |
---|---|
Language | Haskell2010 |
Haskell terms which are interesting to pattern-match when optimizing.
Synopsis
- data ValueCode a = ValueCode {}
- getValue :: ValueCode a -> a
- getCode :: ValueCode a -> CodeQ a
- newtype Value a = Value {
- unValue :: a
- class Haskellable (repr :: Type -> Type) where
- (.) :: repr ((b -> c) -> (a -> b) -> a -> c)
- ($) :: repr ((a -> b) -> a -> b)
- (.@) :: repr (a -> b) -> repr a -> repr b
- bool :: Bool -> repr Bool
- char :: Lift tok => tok -> repr tok
- cons :: repr (a -> [a] -> [a])
- const :: repr (a -> b -> a)
- eq :: Eq a => repr a -> repr (a -> Bool)
- flip :: repr ((a -> b -> c) -> b -> a -> c)
- id :: repr (a -> a)
- nil :: repr [a]
- unit :: repr ()
- left :: repr (l -> Either l r)
- right :: repr (r -> Either l r)
- nothing :: repr (Maybe a)
- just :: repr (a -> Maybe a)
- data Haskell a where
- Haskell :: ValueCode a -> Haskell a
- (:.) :: Haskell ((b -> c) -> (a -> b) -> a -> c)
- (:$) :: Haskell ((a -> b) -> a -> b)
- (:@) :: Haskell (a -> b) -> Haskell a -> Haskell b
- Cons :: Haskell (a -> [a] -> [a])
- Const :: Haskell (a -> b -> a)
- Eq :: Eq a => Haskell a -> Haskell (a -> Bool)
- Flip :: Haskell ((a -> b -> c) -> b -> a -> c)
- Id :: Haskell (a -> a)
- Unit :: Haskell ()
Type ValueCode
Instances
Haskellable ValueCode Source # | |
Defined in Symantic.Parser.Haskell (.) :: ValueCode ((b -> c) -> (a -> b) -> a -> c) Source # ($) :: ValueCode ((a -> b) -> a -> b) Source # (.@) :: ValueCode (a -> b) -> ValueCode a -> ValueCode b Source # bool :: Bool -> ValueCode Bool Source # char :: Lift tok => tok -> ValueCode tok Source # cons :: ValueCode (a -> [a] -> [a]) Source # const :: ValueCode (a -> b -> a) Source # eq :: Eq a => ValueCode a -> ValueCode (a -> Bool) Source # flip :: ValueCode ((a -> b -> c) -> b -> a -> c) Source # id :: ValueCode (a -> a) Source # left :: ValueCode (l -> Either l r) Source # right :: ValueCode (r -> Either l r) Source # | |
Trans Haskell ValueCode Source # | |
Trans ValueCode Haskell Source # | |
Type Value
Instances
Haskellable Value Source # | |
Defined in Symantic.Parser.Haskell (.) :: Value ((b -> c) -> (a -> b) -> a -> c) Source # ($) :: Value ((a -> b) -> a -> b) Source # (.@) :: Value (a -> b) -> Value a -> Value b Source # bool :: Bool -> Value Bool Source # char :: Lift tok => tok -> Value tok Source # cons :: Value (a -> [a] -> [a]) Source # const :: Value (a -> b -> a) Source # eq :: Eq a => Value a -> Value (a -> Bool) Source # flip :: Value ((a -> b -> c) -> b -> a -> c) Source # left :: Value (l -> Either l r) Source # right :: Value (r -> Either l r) Source # | |
Trans Haskell Value Source # | |
Class Haskellable
class Haskellable (repr :: Type -> Type) where Source #
Final encoding of some Haskell functions
useful for some optimizations in optimizeComb
.
(.) :: repr ((b -> c) -> (a -> b) -> a -> c) infixr 9 Source #
($) :: repr ((a -> b) -> a -> b) infixr 0 Source #
(.@) :: repr (a -> b) -> repr a -> repr b infixl 9 Source #
bool :: Bool -> repr Bool Source #
char :: Lift tok => tok -> repr tok Source #
cons :: repr (a -> [a] -> [a]) Source #
const :: repr (a -> b -> a) Source #
eq :: Eq a => repr a -> repr (a -> Bool) Source #
flip :: repr ((a -> b -> c) -> b -> a -> c) Source #
left :: repr (l -> Either l r) Source #
right :: repr (r -> Either l r) Source #
Instances
Haskellable Haskell Source # | |
Defined in Symantic.Parser.Haskell (.) :: Haskell ((b -> c) -> (a -> b) -> a -> c) Source # ($) :: Haskell ((a -> b) -> a -> b) Source # (.@) :: Haskell (a -> b) -> Haskell a -> Haskell b Source # bool :: Bool -> Haskell Bool Source # char :: Lift tok => tok -> Haskell tok Source # cons :: Haskell (a -> [a] -> [a]) Source # const :: Haskell (a -> b -> a) Source # eq :: Eq a => Haskell a -> Haskell (a -> Bool) Source # flip :: Haskell ((a -> b -> c) -> b -> a -> c) Source # id :: Haskell (a -> a) Source # left :: Haskell (l -> Either l r) Source # right :: Haskell (r -> Either l r) Source # | |
Haskellable Value Source # | |
Defined in Symantic.Parser.Haskell (.) :: Value ((b -> c) -> (a -> b) -> a -> c) Source # ($) :: Value ((a -> b) -> a -> b) Source # (.@) :: Value (a -> b) -> Value a -> Value b Source # bool :: Bool -> Value Bool Source # char :: Lift tok => tok -> Value tok Source # cons :: Value (a -> [a] -> [a]) Source # const :: Value (a -> b -> a) Source # eq :: Eq a => Value a -> Value (a -> Bool) Source # flip :: Value ((a -> b -> c) -> b -> a -> c) Source # left :: Value (l -> Either l r) Source # right :: Value (r -> Either l r) Source # | |
Haskellable ValueCode Source # | |
Defined in Symantic.Parser.Haskell (.) :: ValueCode ((b -> c) -> (a -> b) -> a -> c) Source # ($) :: ValueCode ((a -> b) -> a -> b) Source # (.@) :: ValueCode (a -> b) -> ValueCode a -> ValueCode b Source # bool :: Bool -> ValueCode Bool Source # char :: Lift tok => tok -> ValueCode tok Source # cons :: ValueCode (a -> [a] -> [a]) Source # const :: ValueCode (a -> b -> a) Source # eq :: Eq a => ValueCode a -> ValueCode (a -> Bool) Source # flip :: ValueCode ((a -> b -> c) -> b -> a -> c) Source # id :: ValueCode (a -> a) Source # left :: ValueCode (l -> Either l r) Source # right :: ValueCode (r -> Either l r) Source # | |
Haskellable (CodeQ :: Type -> Type) Source # | |
Defined in Symantic.Parser.Haskell (.) :: CodeQ ((b -> c) -> (a -> b) -> a -> c) Source # ($) :: CodeQ ((a -> b) -> a -> b) Source # (.@) :: CodeQ (a -> b) -> CodeQ a -> CodeQ b Source # bool :: Bool -> CodeQ Bool Source # char :: Lift tok => tok -> CodeQ tok Source # cons :: CodeQ (a -> [a] -> [a]) Source # const :: CodeQ (a -> b -> a) Source # eq :: Eq a => CodeQ a -> CodeQ (a -> Bool) Source # flip :: CodeQ ((a -> b -> c) -> b -> a -> c) Source # left :: CodeQ (l -> Either l r) Source # right :: CodeQ (r -> Either l r) Source # |
Type Haskellable
Initial encoding of Haskellable
.
Haskell :: ValueCode a -> Haskell a | |
(:.) :: Haskell ((b -> c) -> (a -> b) -> a -> c) infixr 9 | |
(:$) :: Haskell ((a -> b) -> a -> b) infixr 0 | |
(:@) :: Haskell (a -> b) -> Haskell a -> Haskell b infixl 9 | |
Cons :: Haskell (a -> [a] -> [a]) | |
Const :: Haskell (a -> b -> a) | |
Eq :: Eq a => Haskell a -> Haskell (a -> Bool) | |
Flip :: Haskell ((a -> b -> c) -> b -> a -> c) | |
Id :: Haskell (a -> a) | |
Unit :: Haskell () |
Instances
Haskellable Haskell Source # | |
Defined in Symantic.Parser.Haskell (.) :: Haskell ((b -> c) -> (a -> b) -> a -> c) Source # ($) :: Haskell ((a -> b) -> a -> b) Source # (.@) :: Haskell (a -> b) -> Haskell a -> Haskell b Source # bool :: Bool -> Haskell Bool Source # char :: Lift tok => tok -> Haskell tok Source # cons :: Haskell (a -> [a] -> [a]) Source # const :: Haskell (a -> b -> a) Source # eq :: Eq a => Haskell a -> Haskell (a -> Bool) Source # flip :: Haskell ((a -> b -> c) -> b -> a -> c) Source # id :: Haskell (a -> a) Source # left :: Haskell (l -> Either l r) Source # right :: Haskell (r -> Either l r) Source # | |
Trans Haskell Value Source # | |
Trans Haskell ValueCode Source # | |
Trans ValueCode Haskell Source # | |
Trans Haskell (CodeQ :: Type -> Type) Source # | |
Show (Haskell a) Source # | |
type Output Haskell Source # | |
Defined in Symantic.Parser.Haskell |