ddc-core-llvm- Disciplined Disciple Compiler LLVM code generator.

Safe HaskellNone




convertModule :: Platform -> Module () Name -> ModuleSource

Convert a Salt module to LLVM.

If anything goes wrong in the convertion then this function will just call error.

convertType :: Platform -> KindEnv Name -> Type Name -> TypeSource

Convert a Salt type to an LlvmType.

convertSuperType :: Platform -> KindEnv Name -> Type Name -> ([Type], Type)Source

Split the parameter and result types from a supercombinator type and and convert them to LLVM form.

We can't split the type first and just call convertType above as we need to decend into any quantifiers that wrap the body type.