Skip to content
Back to skills

Export

ASecurity

Explicitly enumerate Haskell module exports instead of exporting everything implicitly, and use re-export sparingly. Use when writing or reviewing Haskell module export lists.

  • 3 stars
  • 0 votes
  • 0 copies
  • 5 views
  • Added May 27, 2026
data-aiapi

Works with

  • api

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add ncaq/konoka --skill export --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Export?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Export
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ncaq-export/badge)](https://www.skillsdirectory.com/skills/ncaq-export)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: export
description: Explicitly enumerate Haskell module exports instead of exporting everything implicitly, and use re-export sparingly. Use when writing or reviewing Haskell module export lists.
user-invocable: false
---

# exportの原則

## exportは明示的に列挙する

exportでモジュールの全てのシンボルを暗黙的に公開するのは原則禁止です。

外部に公開しないといけないシンボルだけをexportしてください。

結果的に全てのシンボルをexportすることになっても、
明示的に列挙してください。

明示的に列挙することで公開しているAPIが明確になり、
デッドコードの検出なども簡単になります。

ただしTemplate Haskellでシンボルを大量に生成して、
それを全てexportしないといけない場合で、
大量生成されたシンボルを把握するのが困難な場合は、
短縮された全てをexportする構文を許可します。

## re-exportは控える

importしたモジュールを再度exportするre-exportは慎重に使ってください。

re-exportをすることでimportの依存関係が複雑になり、
循環参照のcycle importが起きた時に原因を特定するのが難しくなります。

また本来必要のない依存関係が発生していることに気が付かなくて、
インクリメンタルビルドの効率に悪影響を与えることもあります。

ライブラリやレイヤーのimportされるトップレベルモジュールの場合は、
慣習的にも問題ないことが多いです。

その他の場合は、
このモジュールを使うなら、
ほぼ絶対にセットでimportするだろうというモジュールのみをre-exportしてください。

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.