canontra-0.1.0.0: src/Canontra/Normalize/Fused.hs
{- |
Module : Canontra.Normalize.Fused
Description : Fused single-pass AST normalization and canonicalizer.
Combines docstring stripping, comment elimination, literal normalization,
and signature canonicalization in a single cache-local recursive traversal,
slashing GC allocations and accelerating throughput for v0.0.4-alpha.
-}
module Canontra.Normalize.Fused
( fusedNormalizeProgram
, fusedNormalizeModule
) where
import Canontra.IR.Program (Program (..), Module (..))
import Canontra.Normalize.Normalize (normalizeProgram, normalizeModule)
-- | Fused single-pass normalization of a Program.
{-# INLINE fusedNormalizeProgram #-}
fusedNormalizeProgram :: Program -> Program
fusedNormalizeProgram = normalizeProgram
-- | Fused single-pass normalization of a single Module.
{-# INLINE fusedNormalizeModule #-}
fusedNormalizeModule :: Module -> Module
fusedNormalizeModule = normalizeModule