Interface.hs 552 B

1234567891011121314151617
  1. module Gidl.Interface
  2. ( module Gidl.Interface.AST
  3. , lookupInterface
  4. , insertInterface
  5. ) where
  6. import Gidl.Interface.AST
  7. lookupInterface :: InterfaceName -> InterfaceEnv -> Maybe Interface
  8. lookupInterface iname (InterfaceEnv ie) = lookup iname ie
  9. insertInterface :: InterfaceName -> Interface -> InterfaceEnv -> InterfaceEnv
  10. insertInterface iname i e@(InterfaceEnv ie) = case lookupInterface iname e of
  11. Nothing -> InterfaceEnv ((iname,i):ie)
  12. Just _ -> error ("insertInterface invariant broken: interface " ++ iname ++ "already exists")