-- | applies the iota renaming to a symbol
iota_symbol :: Symbol -> Symbol
iota_symbol (Symbol name ty) = Symbol (mkFreeName name) $ case ty of
  SortAsItemType -> SortAsItemType
  SubsortAsItemType s -> SubsortAsItemType $ mkFreeName s
  OpAsItemType (OpType _ args res) -> OpAsItemType
    $ mkTotOpType (map mkFreeName args) (mkFreeName res)
  PredAsItemType (PredType args) -> PredAsItemType
    $ PredType $ map mkFreeName args

-- | applies the iota renaming to the annotations
iota_symbol :: Symbol -> Symbol
iota_symbol (Symbol name ty) = Symbol (mkFreeName name) $ case ty of
  SortAsItemType -> SortAsItemType
  SubsortAsItemType s -> SubsortAsItemType $ mkFreeName s
  OpAsItemType (OpType _ args res) -> OpAsItemType
    $ mkTotOpType (map mkFreeName args) (mkFreeName res)
  PredAsItemType (PredType args) -> PredAsItemType
    $ PredType $ map mkFreeName args

-- | applies the iota renaming to the annotations
iota_symbol (Symbol name ty) = Symbol (mkFreeName name) $ case ty of
  SortAsItemType -> SortAsItemType
  SubsortAsItemType s -> SubsortAsItemType $ mkFreeName s
  OpAsItemType (OpType _ args res) -> OpAsItemType
    $ mkTotOpType (map mkFreeName args) (mkFreeName res)
  PredAsItemType (PredType args) -> PredAsItemType
    $ PredType $ map mkFreeName args

-- | applies the iota renaming to the annotations