Safe Haskell | None |
---|
Check for conflicting store capabilities in the initial program.
- checkCapsModule :: Module a Name -> Maybe (Error a)
- checkCapsX :: Exp a Name -> Maybe (Error a)
- data Error a
- = ErrorConflict { }
- | ErrorPartial { }
- | ErrorNonHandle { }
Documentation
checkCapsModule :: Module a Name -> Maybe (Error a)Source
Check for conflicting store capabilities in a module.
checkCapsX :: Exp a Name -> Maybe (Error a)Source
Check for conflicting store capabilities in an expression.
Things that can go wrong with the capabilities in a program.
ErrorConflict | Conflicting capabilities in program. |
ErrorPartial | A partially applied capability constructor. In the formal semantics, capabilities are atomic, so this isn't a problem. However, as we're representing them with general witness appliction we need to ensure the constructors aren't partially applied. |
ErrorNonHandle | A capability constructor applied to a non-region handle.
As with |