- data Sym a where
- sym0 :: (Typeable a, Sym :<: dom) => String -> a -> ASTF dom a
- sym1 :: (Typeable a, Sym :<: dom) => String -> (a -> b) -> ASTF dom a -> ASTF dom b
- sym2 :: (Typeable a, Typeable b, Sym :<: dom) => String -> (a -> b -> c) -> ASTF dom a -> ASTF dom b -> ASTF dom c
- sym3 :: (Typeable a, Typeable b, Typeable c, Sym :<: dom) => String -> (a -> b -> c -> d) -> ASTF dom a -> ASTF dom b -> ASTF dom c -> ASTF dom d
- sym4 :: (Typeable a, Typeable b, Typeable c, Typeable d, Sym :<: dom) => String -> (a -> b -> c -> d -> e) -> ASTF dom a -> ASTF dom b -> ASTF dom c -> ASTF dom d -> ASTF dom e
- class IsSymbol expr where
- exprEqFunc :: IsSymbol expr => expr a -> expr b -> Bool
- exprHashFunc :: IsSymbol expr => expr a -> Hash
- renderPartFunc :: IsSymbol expr => [String] -> expr a -> String
- evaluateFunc :: IsSymbol expr => expr a -> a
Documentation
sym1 :: (Typeable a, Sym :<: dom) => String -> (a -> b) -> ASTF dom a -> ASTF dom bSource
A one-argument symbol
sym2 :: (Typeable a, Typeable b, Sym :<: dom) => String -> (a -> b -> c) -> ASTF dom a -> ASTF dom b -> ASTF dom cSource
A two-argument symbol
sym3 :: (Typeable a, Typeable b, Typeable c, Sym :<: dom) => String -> (a -> b -> c -> d) -> ASTF dom a -> ASTF dom b -> ASTF dom c -> ASTF dom dSource
A three-argument symbol
sym4 :: (Typeable a, Typeable b, Typeable c, Typeable d, Sym :<: dom) => String -> (a -> b -> c -> d -> e) -> ASTF dom a -> ASTF dom b -> ASTF dom c -> ASTF dom d -> ASTF dom eSource
A four-argument symbol
exprEqFunc :: IsSymbol expr => expr a -> expr b -> BoolSource
Default implementation of exprEq
exprHashFunc :: IsSymbol expr => expr a -> HashSource
Default implementation of exprHash
renderPartFunc :: IsSymbol expr => [String] -> expr a -> StringSource
Default implementation of renderPart
evaluateFunc :: IsSymbol expr => expr a -> aSource
Default implementation of evaluate