Safe Haskell | None |
---|---|
Language | Haskell2010 |
This module is kind of half-assed. I don't have any references and it depends on the inliner.
Synopsis
- closedModule :: Declarations () (StackType ()) (StackType ()) -> MonoM (Declarations () (StackType ()) (StackType ()))
- type MonoM = StateT RenameEnv (Either (Error ()))
- runMonoM :: Int -> MonoM a -> Either (Error ()) (a, (Int, SizeEnv))
- flattenModule :: Declarations () (StackType ()) (StackType ()) -> MonoM (Declarations () (ConsAnn MonoStackType) (StackType ()))
- tryMono :: MonadError (Error ()) m => StackType () -> m MonoStackType
- data ConsAnn a = ConsAnn {}
- closure :: Ord b => (Declarations a b b, ModuleMap a b b) -> Set (Name b, b)
- mkModuleMap :: Declarations a c b -> ModuleMap a c b
Documentation
closedModule :: Declarations () (StackType ()) (StackType ()) -> MonoM (Declarations () (StackType ()) (StackType ())) Source #
flattenModule :: Declarations () (StackType ()) (StackType ()) -> MonoM (Declarations () (ConsAnn MonoStackType) (StackType ())) Source #
Call closedModule
and perform any necessary renamings
tryMono :: MonadError (Error ()) m => StackType () -> m MonoStackType Source #
Annotation carried on constructors to keep size information through the IR generation phase.
Instances
Functor ConsAnn Source # | |
Foldable ConsAnn Source # | |
Defined in Kempe.AST fold :: Monoid m => ConsAnn m -> m # foldMap :: Monoid m => (a -> m) -> ConsAnn a -> m # foldMap' :: Monoid m => (a -> m) -> ConsAnn a -> m # foldr :: (a -> b -> b) -> b -> ConsAnn a -> b # foldr' :: (a -> b -> b) -> b -> ConsAnn a -> b # foldl :: (b -> a -> b) -> b -> ConsAnn a -> b # foldl' :: (b -> a -> b) -> b -> ConsAnn a -> b # foldr1 :: (a -> a -> a) -> ConsAnn a -> a # foldl1 :: (a -> a -> a) -> ConsAnn a -> a # elem :: Eq a => a -> ConsAnn a -> Bool # maximum :: Ord a => ConsAnn a -> a # minimum :: Ord a => ConsAnn a -> a # | |
Traversable ConsAnn Source # | |
Generic (ConsAnn a) Source # | |
NFData a => NFData (ConsAnn a) Source # | |
Pretty a => Pretty (ConsAnn a) Source # | |
Defined in Kempe.AST pretty :: ConsAnn a -> Doc ann prettyList :: [ConsAnn a] -> Doc ann | |
type Rep (ConsAnn a) Source # | |
Defined in Kempe.AST type Rep (ConsAnn a) = D1 ('MetaData "ConsAnn" "Kempe.AST" "kempe-0.1.1.0-inplace-kempe-modules" 'False) (C1 ('MetaCons "ConsAnn" 'PrefixI 'True) (S1 ('MetaSel ('Just "tySz") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int64) :*: (S1 ('MetaSel ('Just "tag") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word8) :*: S1 ('MetaSel ('Just "consTy") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))) |
Benchmark
mkModuleMap :: Declarations a c b -> ModuleMap a c b Source #