gibbon-0.3: A compiler for operating on serialized data
Safe HaskellSafe-Inferred
LanguageHaskell2010

Gibbon.Passes.AddRAN

Synopsis

Documentation

addRAN :: Set TyCon -> Prog1 -> PassM Prog1 Source #

Operates on an L1 program, and updates it to have random access nodes.

Previous analysis determines which data types require it (needsLRAN).

numRANsDataCon :: Out a => DDefs (UrTy a) -> DataCon -> Int Source #

The number of nodes needed by a DataCon for full random access (which is equal the number of arguments occurring after the first packed type).

needsRAN :: Prog2 -> Set TyCon Source #

Collect all types that need random access nodes to be compiled.