use crate::exposing::Exposing;
use crate::ident::ModuleName;
use crate::node::Spanned;
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Clone, Debug, PartialEq, Eq)]
pub enum ModuleHeader {
Normal {
name: Spanned<ModuleName>,
exposing: Spanned<Exposing>,
},
Port {
name: Spanned<ModuleName>,
exposing: Spanned<Exposing>,
},
Effect {
name: Spanned<ModuleName>,
exposing: Spanned<Exposing>,
command: Option<Spanned<String>>,
subscription: Option<Spanned<String>>,
},
}