Copyright | (c) Andrew Seniuk, 2014 |
---|---|
License | BSD-style (see the LICENSE file) |
Maintainer | rasfar@gmail.com |
Stability | experimental |
Portability | non-portable (uses Data.Generics.Basics) |
Safe Haskell | None |
Language | Haskell2010 |
This package provides SYB shape support: generic fmap to homogeneous types, and related features. Complements existing Uniplate and TH shape libraries. See http://www.fremissant.net/shape-syb for more information.
The present module provides support for staged GHC AST types.
One you have a
, Homo
rHetero
, or
, the rest of
the API in Shape.SYB and Shape.SYB.Filter is applicable.Bi
r
- ghomStaged :: forall r d. Data d => Stage -> r -> GenericQ r -> d -> Homo r
- ghomStagedK :: forall r d. Data d => Stage -> r -> (r -> r -> r) -> GenericQ r -> d -> Homo r
- ghomDynStaged :: forall d. Data d => Stage -> d -> Hetero
- ghomBiStaged :: forall r d. Data d => Stage -> r -> GenericQ r -> d -> Bi r
- data GHC_AST_HOLE
- shapeOfStaged :: forall d. Data d => Stage -> d -> Shape
- shapeOfStaged_ :: forall d. Data d => Stage -> d -> Shape
- sizeOfStaged :: forall d. Data d => Stage -> d -> Int
- symmorphicStaged :: forall d1 d2. (Data d1, Data d2) => Stage -> d1 -> d2 -> Bool
- weightedShapeOfStaged :: forall d. Data d => Stage -> d -> Homo Int
- data Stage :: *
- = Parser
- | Renamer
- | TypeChecker
Staged shape functions
ghomStagedK :: forall r d. Data d => Stage -> r -> (r -> r -> r) -> GenericQ r -> d -> Homo r Source
ghomDynStaged :: forall d. Data d => Stage -> d -> Hetero Source
Uses Data.Dynamic to support mutiple types homogeneously.
ghomBiStaged :: forall r d. Data d => Stage -> r -> GenericQ r -> d -> Bi r Source
ghomBiStaged
s f x =zipRose
(ghomDynStaged
s x) (ghomStaged
s f x)
shapeOfStaged :: forall d. Data d => Stage -> d -> Shape Source
shapeOfStaged_ :: forall d. Data d => Stage -> d -> Shape Source
sizeOfStaged :: forall d. Data d => Stage -> d -> Int Source
symmorphicStaged :: forall d1 d2. (Data d1, Data d2) => Stage -> d1 -> d2 -> Bool Source
Compare two rose trees for shape equality.