<commit_before>use std::fmt;

use eval::BinOp;

pub struct Module {
	pub imports: ~[UseDef],
	pub lets: ~[LetDef],
	pub defs: ~[Def],
}

pub struct Block {
	pub lets: ~[LetDef],
	pub actions: ~[Action],
}

pub struct Def {
	pub name: ~str,
	pub params: ~[ParamDef],
	pub block: Block,
}

pub enum ActionTarget {
	ActionDef(Expr),
	ActionEntity(Expr, ~str)
}

pub struct Action {
	pub action: ActionTarget,
	pub positional: ~[Expr],
	pub body: Option<ActionBody>,
}

pub struct ActionBody {
	pub param_names: ~[~str],
	pub block: Block,
}

pub struct UseDef(~str);
pub struct ParamDef {
	pub name: ~str,
	pub tp: TypeExpr,
	pub default: Option<Expr>
}

pub struct LetDef(~str, Expr);
<commit_msg>rust: tuple structs also private by default<commit_after>use std::fmt;

use eval::BinOp;

pub struct Module {
	pub imports: ~[UseDef],
	pub lets: ~[LetDef],
	pub defs: ~[Def],
}

pub struct Block {
	pub lets: ~[LetDef],
	pub actions: ~[Action],
}

pub struct Def {
	pub name: ~str,
	pub params: ~[ParamDef],
	pub block: Block,
}

pub enum ActionTarget {
	ActionDef(Expr),
	ActionEntity(Expr, ~str)
}

pub struct Action {
	pub action: ActionTarget,
	pub positional: ~[Expr],
	pub body: Option<ActionBody>,
}

pub struct ActionBody {
	pub param_names: ~[~str],
	pub block: Block,
}

pub struct UseDef(pub ~str);
pub struct ParamDef {
	pub name: ~str,
	pub tp: TypeExpr,
	pub default: Option<Expr>
}

pub struct LetDef(pub ~str, pub Expr);

{'fraction_non_alphanumeric': 0.14175977653631286, 'fraction_numerical': 0.0, 'mean_word_length': 4.554263565891473, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2939806', 'n_tokens_mistral': 544, 'n_tokens_neox': 545, 'n_words': 175}