fplSortItem :: [String] -> AParser st FplSortItem
fplSortItem ks = do
    s <- sortId ks
    freeType ks s <|>
      fmap CaslSortItem (subSortDecl ks ([s], nullRange) <|> commaSortDecl ks s
          <|> isoDecl ks s <|> return (Sort_decl [s] nullRange))
fplSortItem :: [String] -> AParser st FplSortItem
fplSortItem ks = do
    s <- sortId ks
    freeType ks s <|>
      fmap CaslSortItem (subSortDecl ks ([s], nullRange) <|> commaSortDecl ks s
          <|> isoDecl ks s <|> return (Sort_decl [s] nullRange))
fplSortItem ks = do
    s <- sortId ks
    freeType ks s <|>
      fmap CaslSortItem (subSortDecl ks ([s], nullRange) <|> commaSortDecl ks s
          <|> isoDecl ks s <|> return (Sort_decl [s] nullRange))