Safe Haskell | None |
---|---|
Language | Haskell2010 |
- module Data.Patch
- class Syntactic a where
- type Internal a :: *
- type family Internal a :: *
- data FeldDomain a
- data Data a
- class (SyntacticFeld a, Type (Internal a)) => Syntax a
- data FeldOpts
- defaultFeldOpts :: FeldOpts
- reifyFeld :: SyntacticFeld a => FeldOpts -> BitWidth n -> a -> ASTF (Decor Info FeldDom) (Internal a)
- reifyFeldUnOpt :: SyntacticFeld a => FeldOpts -> BitWidth n -> a -> ASTF FeldDom (Internal a)
- showExpr :: SyntacticFeld a => a -> String
- printExpr :: SyntacticFeld a => a -> IO ()
- printExprWith :: SyntacticFeld a => FeldOpts -> a -> IO ()
- printExprUnOpt :: SyntacticFeld a => a -> IO ()
- showAST :: SyntacticFeld a => a -> String
- drawAST :: SyntacticFeld a => a -> IO ()
- writeHtmlAST :: SyntacticFeld a => FilePath -> a -> IO ()
- showDecor :: SyntacticFeld a => a -> String
- drawDecor :: SyntacticFeld a => a -> IO ()
- eval :: SyntacticFeld a => a -> Internal a
- evalTarget :: (SyntacticFeld a, BoundedInt (GenericInt U n), BoundedInt (GenericInt S n)) => BitWidth n -> a -> Internal a
- desugar :: Syntax a => a -> Data (Internal a)
- sugar :: Syntax a => Data (Internal a) -> a
- resugar :: (Syntax a, Syntax b, Internal a ~ Internal b) => a -> b
- (===>) :: Testable prop => Data Bool -> prop -> Property
- (====) :: Equal a => a -> a -> Property
- tData :: Patch a a -> Patch (Data a) (Data a)
- tArr1 :: Patch a a -> Patch (Data [a]) (Data [a])
- tArr2 :: Patch a a -> Patch (Data [[a]]) (Data [[a]])
- tM :: Patch a a -> Patch (M a) (M a)
- ilog2 :: Bits a => Data a -> Data Index
- nlz :: Bits a => Data a -> Data Index
Documentation
module Data.Patch
class Syntactic a
type Internal a :: *
type family Internal a :: *
data FeldDomain a Source
Constrained FeldDomain | |
TupleSat FeldDomain Type | |
Project sym FeldSymbols => Project sym FeldDomain | |
(InjectC sym FeldSymbols a, Typeable * a) => InjectC sym FeldDomain a | |
IsHODomain FeldDomain (Typeable *) Type | |
type Sat FeldDomain = Typeable * |
class (SyntacticFeld a, Type (Internal a)) => Syntax a Source
Specialization of the Syntactic
class for the Feldspar domain
(SyntacticFeld a, Type (Internal a)) => Syntax a |
defaultFeldOpts :: FeldOpts Source
Default options.
reifyFeld :: SyntacticFeld a => FeldOpts -> BitWidth n -> a -> ASTF (Decor Info FeldDom) (Internal a) Source
Reification and optimization of a Feldspar program
reifyFeldUnOpt :: SyntacticFeld a => FeldOpts -> BitWidth n -> a -> ASTF FeldDom (Internal a) Source
Reification of a Feldspar program
showExpr :: SyntacticFeld a => a -> String Source
printExpr :: SyntacticFeld a => a -> IO () Source
Print an optimized expression
printExprWith :: SyntacticFeld a => FeldOpts -> a -> IO () Source
Print an optimized expression with options
printExprUnOpt :: SyntacticFeld a => a -> IO () Source
Print an unoptimized expression
showAST :: SyntacticFeld a => a -> String Source
Show the syntax tree using Unicode art
drawAST :: SyntacticFeld a => a -> IO () Source
Draw the syntax tree on the terminal using Unicode art
writeHtmlAST :: SyntacticFeld a => FilePath -> a -> IO () Source
Convert the syntax tree to an HTML file with foldable nodes
showDecor :: SyntacticFeld a => a -> String Source
Draw a syntax tree decorated with type and size information
drawDecor :: SyntacticFeld a => a -> IO () Source
Draw a syntax tree decorated with type and size information
eval :: SyntacticFeld a => a -> Internal a Source
evalTarget :: (SyntacticFeld a, BoundedInt (GenericInt U n), BoundedInt (GenericInt S n)) => BitWidth n -> a -> Internal a Source