Safe Haskell | None |
---|
Documentation
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.