catala/french_law/ocaml/law_source/allocations_familiales.ml
2023-04-18 14:46:25 +02:00

6152 lines
374 KiB
OCaml
Generated
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(** This file has been generated by the Catala compiler, do not edit! *)
open Runtime_ocaml.Runtime
[@@@ocaml.warning "-4-26-27-32-41-42"]
module PriseEnCharge = struct
type t =
| GardeAlterneePartageAllocations of unit
| GardeAlterneeAllocataireUnique of unit
| EffectiveEtPermanente of unit
| ServicesSociauxAllocationVerseeALaFamille of unit
| ServicesSociauxAllocationVerseeAuxServicesSociaux of unit
end
let embed_prise_en_charge (x: PriseEnCharge.t) : runtime_value =
Enum(["PriseEnCharge"],
match x with
| GardeAlterneePartageAllocations x ->
("GardeAlternéePartageAllocations", embed_unit x)
| GardeAlterneeAllocataireUnique x ->
("GardeAlternéeAllocataireUnique", embed_unit x)
| EffectiveEtPermanente x -> ("EffectiveEtPermanente", embed_unit x)
| ServicesSociauxAllocationVerseeALaFamille x ->
("ServicesSociauxAllocationVerséeÀLaFamille", embed_unit x)
| ServicesSociauxAllocationVerseeAuxServicesSociaux x ->
("ServicesSociauxAllocationVerséeAuxServicesSociaux", embed_unit x))
module SituationObligationScolaire = struct
type t =
| Avant of unit
| Pendant of unit
| Apres of unit
end
let embed_situation_obligation_scolaire (x: SituationObligationScolaire.t)
: runtime_value =
Enum(["SituationObligationScolaire"],
match x with
| Avant x -> ("Avant", embed_unit x)
| Pendant x -> ("Pendant", embed_unit x)
| Apres x -> ("Après", embed_unit x))
module PriseEnCompte = struct
type t =
| Complete of unit
| Partagee of unit
| Zero of unit
end
let embed_prise_en_compte (x: PriseEnCompte.t) : runtime_value =
Enum(["PriseEnCompte"],
match x with
| Complete x -> ("Complète", embed_unit x)
| Partagee x -> ("Partagée", embed_unit x)
| Zero x -> ("Zéro", embed_unit x))
module VersementAllocations = struct
type t =
| Normal of unit
| AllocationVerseeAuxServicesSociaux of unit
end
let embed_versement_allocations (x: VersementAllocations.t) : runtime_value =
Enum(["VersementAllocations"],
match x with
| Normal x -> ("Normal", embed_unit x)
| AllocationVerseeAuxServicesSociaux x ->
("AllocationVerséeAuxServicesSociaux", embed_unit x))
module Collectivite = struct
type t =
| Guadeloupe of unit
| Guyane of unit
| Martinique of unit
| LaReunion of unit
| SaintBarthelemy of unit
| SaintMartin of unit
| Metropole of unit
| SaintPierreEtMiquelon of unit
| Mayotte of unit
end
let embed_collectivite (x: Collectivite.t) : runtime_value =
Enum(["Collectivité"],
match x with
| Guadeloupe x -> ("Guadeloupe", embed_unit x)
| Guyane x -> ("Guyane", embed_unit x)
| Martinique x -> ("Martinique", embed_unit x)
| LaReunion x -> ("LaRéunion", embed_unit x)
| SaintBarthelemy x -> ("SaintBarthélemy", embed_unit x)
| SaintMartin x -> ("SaintMartin", embed_unit x)
| Metropole x -> ("Métropole", embed_unit x)
| SaintPierreEtMiquelon x -> ("SaintPierreEtMiquelon", embed_unit x)
| Mayotte x -> ("Mayotte", embed_unit x))
module AllocationFamilialesAvril2008 = struct
type t = {age_minimum_alinea_1_l521_3: duration}
end
let embed_allocation_familiales_avril2008 (x: AllocationFamilialesAvril2008.t) : runtime_value =
Struct(["AllocationFamilialesAvril2008"],
[("âge_minimum_alinéa_1_l521_3", embed_duration
x.AllocationFamilialesAvril2008.age_minimum_alinea_1_l521_3)])
module VerificationAgeInferieurOuEgalA = struct
type t = {est_inferieur_ou_egal: bool}
end
let embed_verification_age_inferieur_ou_egal_a (x: VerificationAgeInferieurOuEgalA.t) : runtime_value =
Struct(["VérificationÂgeInférieurOuÉgalÀ"],
[("est_inférieur_ou_égal", embed_bool
x.VerificationAgeInferieurOuEgalA.est_inferieur_ou_egal)])
module VerificationAgeSuperieurA = struct
type t = {est_superieur: bool}
end
let embed_verification_age_superieur_a (x: VerificationAgeSuperieurA.t) : runtime_value =
Struct(["VérificationÂgeSupérieurÀ"],
[("est_supérieur", embed_bool x.VerificationAgeSuperieurA.est_superieur)])
module Smic = struct
type t = {brut_horaire: money}
end
let embed_smic (x: Smic.t) : runtime_value = Struct(["Smic"],
[("brut_horaire", embed_money x.Smic.brut_horaire)])
module BaseMensuelleAllocationsFamiliales = struct
type t = {montant: money}
end
let embed_base_mensuelle_allocations_familiales (x: BaseMensuelleAllocationsFamiliales.t) : runtime_value =
Struct(["BaseMensuelleAllocationsFamiliales"],
[("montant", embed_money x.BaseMensuelleAllocationsFamiliales.montant)])
module InterfaceAllocationsFamiliales = struct
type t = {i_montant_verse: money}
end
let embed_interface_allocations_familiales (x: InterfaceAllocationsFamiliales.t) : runtime_value =
Struct(["InterfaceAllocationsFamiliales"],
[("i_montant_versé", embed_money
x.InterfaceAllocationsFamiliales.i_montant_verse)])
module EnfantEntree = struct
type t = {
d_identifiant: integer;
d_remuneration_mensuelle: money;
d_date_de_naissance: date;
d_prise_en_charge: PriseEnCharge.t;
d_a_deja_ouvert_droit_aux_allocations_familiales: bool;
d_beneficie_titre_personnel_aide_personnelle_logement: bool
}
end
let embed_enfant_entree (x: EnfantEntree.t) : runtime_value =
Struct(["EnfantEntrée"],
[("d_identifiant", embed_integer
x.EnfantEntree.d_identifiant);
("d_rémuneration_mensuelle", embed_money
x.EnfantEntree.d_remuneration_mensuelle);
("d_date_de_naissance", embed_date
x.EnfantEntree.d_date_de_naissance);
("d_prise_en_charge", embed_prise_en_charge
x.EnfantEntree.d_prise_en_charge);
("d_a_déjà_ouvert_droit_aux_allocations_familiales", embed_bool
x.EnfantEntree.d_a_deja_ouvert_droit_aux_allocations_familiales);
("d_bénéficie_titre_personnel_aide_personnelle_logement", embed_bool
x.EnfantEntree.d_beneficie_titre_personnel_aide_personnelle_logement)])
module Enfant = struct
type t = {
identifiant: integer;
obligation_scolaire: SituationObligationScolaire.t;
remuneration_mensuelle: money;
date_de_naissance: date;
prise_en_charge: PriseEnCharge.t;
a_deja_ouvert_droit_aux_allocations_familiales: bool;
beneficie_titre_personnel_aide_personnelle_logement: bool
}
end
let embed_enfant (x: Enfant.t) : runtime_value = Struct(["Enfant"],
[("identifiant", embed_integer
x.Enfant.identifiant);
("obligation_scolaire", embed_situation_obligation_scolaire
x.Enfant.obligation_scolaire);
("rémuneration_mensuelle", embed_money
x.Enfant.remuneration_mensuelle);
("date_de_naissance", embed_date
x.Enfant.date_de_naissance);
("prise_en_charge", embed_prise_en_charge
x.Enfant.prise_en_charge);
("a_déjà_ouvert_droit_aux_allocations_familiales", embed_bool
x.Enfant.a_deja_ouvert_droit_aux_allocations_familiales);
("bénéficie_titre_personnel_aide_personnelle_logement", embed_bool
x.Enfant.beneficie_titre_personnel_aide_personnelle_logement)])
module AllocationsFamiliales = struct
type t = {
versement: Enfant.t -> VersementAllocations.t;
montant_verse: money
}
end
let embed_allocations_familiales (x: AllocationsFamiliales.t) : runtime_value =
Struct(["AllocationsFamiliales"],
[("versement", unembeddable
x.AllocationsFamiliales.versement);
("montant_versé", embed_money x.AllocationsFamiliales.montant_verse)])
module EnfantLePlusAge = struct
type t = {le_plus_age: Enfant.t}
end
let embed_enfant_le_plus_age (x: EnfantLePlusAge.t) : runtime_value =
Struct(["EnfantLePlusÂgé"],
[("le_plus_âgé", embed_enfant x.EnfantLePlusAge.le_plus_age)])
module PrestationsFamiliales = struct
type t = {
droit_ouvert: Enfant.t -> bool;
conditions_hors_age: Enfant.t -> bool;
age_l512_3_2: duration;
regime_outre_mer_l751_1: bool
}
end
let embed_prestations_familiales (x: PrestationsFamiliales.t) : runtime_value =
Struct(["PrestationsFamiliales"],
[("droit_ouvert", unembeddable
x.PrestationsFamiliales.droit_ouvert);
("conditions_hors_âge", unembeddable
x.PrestationsFamiliales.conditions_hors_age);
("âge_l512_3_2", embed_duration
x.PrestationsFamiliales.age_l512_3_2);
("régime_outre_mer_l751_1", embed_bool
x.PrestationsFamiliales.regime_outre_mer_l751_1)])
module PrestationsFamilialesIn = struct
type t = {date_courante_in: date; residence_in: Collectivite.t}
end
let embed_prestations_familiales_in (x: PrestationsFamilialesIn.t) : runtime_value =
Struct(["PrestationsFamiliales_in"],
[("date_courante_in", embed_date
x.PrestationsFamilialesIn.date_courante_in);
("résidence_in", embed_collectivite
x.PrestationsFamilialesIn.residence_in)])
module AllocationFamilialesAvril2008In = struct
type t = unit
end
let embed_allocation_familiales_avril2008_in (_: AllocationFamilialesAvril2008In.t) : runtime_value = Unit
module EnfantLePlusAgeIn = struct
type t = {enfants_in: Enfant.t array}
end
let embed_enfant_le_plus_age_in (x: EnfantLePlusAgeIn.t) : runtime_value =
Struct(["EnfantLePlusÂgé_in"],
[("enfants_in", embed_array (embed_enfant) x.EnfantLePlusAgeIn.enfants_in)])
module AllocationsFamilialesIn = struct
type t = {
personne_charge_effective_permanente_est_parent_in: bool;
personne_charge_effective_permanente_remplit_titre_I_in: bool;
ressources_menage_in: money;
residence_in: Collectivite.t;
date_courante_in: date;
enfants_a_charge_in: Enfant.t array;
avait_enfant_a_charge_avant_1er_janvier_2012_in: bool
}
end
let embed_allocations_familiales_in (x: AllocationsFamilialesIn.t) : runtime_value =
Struct(["AllocationsFamiliales_in"],
[("personne_charge_effective_permanente_est_parent_in", embed_bool
x.AllocationsFamilialesIn.personne_charge_effective_permanente_est_parent_in);
("personne_charge_effective_permanente_remplit_titre_I_in", embed_bool
x.AllocationsFamilialesIn.personne_charge_effective_permanente_remplit_titre_I_in);
("ressources_ménage_in", embed_money
x.AllocationsFamilialesIn.ressources_menage_in);
("résidence_in", embed_collectivite
x.AllocationsFamilialesIn.residence_in);
("date_courante_in", embed_date
x.AllocationsFamilialesIn.date_courante_in);
("enfants_à_charge_in", embed_array (embed_enfant)
x.AllocationsFamilialesIn.enfants_a_charge_in);
("avait_enfant_à_charge_avant_1er_janvier_2012_in", embed_bool
x.AllocationsFamilialesIn.avait_enfant_a_charge_avant_1er_janvier_2012_in)])
module VerificationAgeInferieurOuEgalAIn = struct
type t = {
date_naissance_in: date;
date_courante_in: date;
annees_in: duration
}
end
let embed_verification_age_inferieur_ou_egal_a_in (x: VerificationAgeInferieurOuEgalAIn.t) : runtime_value =
Struct(["VérificationÂgeInférieurOuÉgalÀ_in"],
[("date_naissance_in", embed_date
x.VerificationAgeInferieurOuEgalAIn.date_naissance_in);
("date_courante_in", embed_date
x.VerificationAgeInferieurOuEgalAIn.date_courante_in);
("années_in", embed_duration
x.VerificationAgeInferieurOuEgalAIn.annees_in)])
module VerificationAgeSuperieurAIn = struct
type t = {
date_naissance_in: date;
date_courante_in: date;
annees_in: duration
}
end
let embed_verification_age_superieur_a_in (x: VerificationAgeSuperieurAIn.t) : runtime_value =
Struct(["VérificationÂgeSupérieurÀ_in"],
[("date_naissance_in", embed_date
x.VerificationAgeSuperieurAIn.date_naissance_in);
("date_courante_in", embed_date
x.VerificationAgeSuperieurAIn.date_courante_in);
("années_in", embed_duration x.VerificationAgeSuperieurAIn.annees_in)])
module SmicIn = struct
type t = {date_courante_in: date; residence_in: Collectivite.t}
end
let embed_smic_in (x: SmicIn.t) : runtime_value = Struct(["Smic_in"],
[("date_courante_in", embed_date
x.SmicIn.date_courante_in);
("résidence_in", embed_collectivite x.SmicIn.residence_in)])
module BaseMensuelleAllocationsFamilialesIn = struct
type t = {date_courante_in: date}
end
let embed_base_mensuelle_allocations_familiales_in (x: BaseMensuelleAllocationsFamilialesIn.t) : runtime_value =
Struct(["BaseMensuelleAllocationsFamiliales_in"],
[("date_courante_in", embed_date
x.BaseMensuelleAllocationsFamilialesIn.date_courante_in)])
module InterfaceAllocationsFamilialesIn = struct
type t = {
i_date_courante_in: date;
i_enfants_in: EnfantEntree.t array;
i_ressources_menage_in: money;
i_residence_in: Collectivite.t;
i_personne_charge_effective_permanente_est_parent_in: bool;
i_personne_charge_effective_permanente_remplit_titre_I_in: bool;
i_avait_enfant_a_charge_avant_1er_janvier_2012_in: bool
}
end
let embed_interface_allocations_familiales_in (x: InterfaceAllocationsFamilialesIn.t) : runtime_value =
Struct(["InterfaceAllocationsFamiliales_in"],
[("i_date_courante_in", embed_date
x.InterfaceAllocationsFamilialesIn.i_date_courante_in);
("i_enfants_in", embed_array (embed_enfant_entree)
x.InterfaceAllocationsFamilialesIn.i_enfants_in);
("i_ressources_ménage_in", embed_money
x.InterfaceAllocationsFamilialesIn.i_ressources_menage_in);
("i_résidence_in", embed_collectivite
x.InterfaceAllocationsFamilialesIn.i_residence_in);
("i_personne_charge_effective_permanente_est_parent_in", embed_bool
x.InterfaceAllocationsFamilialesIn.i_personne_charge_effective_permanente_est_parent_in);
("i_personne_charge_effective_permanente_remplit_titre_I_in", embed_bool
x.InterfaceAllocationsFamilialesIn.i_personne_charge_effective_permanente_remplit_titre_I_in);
("i_avait_enfant_à_charge_avant_1er_janvier_2012_in", embed_bool
x.InterfaceAllocationsFamilialesIn.i_avait_enfant_a_charge_avant_1er_janvier_2012_in)])
let allocation_familiales_avril2008 (allocation_familiales_avril2008_in: AllocationFamilialesAvril2008In.t) : AllocationFamilialesAvril2008.t =
let age_minimum_alinea_1_l521_3_: duration = (log_variable_definition
["AllocationFamilialesAvril2008"; "âge_minimum_alinéa_1_l521_3"]
(embed_duration) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_R.catala_fr";
start_line=78; start_column=14;
end_line=78; end_column=41;
law_headings=["Article R521-1";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets en Conseil d'Etat";
"Code de la sécurité sociale"]}
true))
(fun (_: unit) -> duration_of_numbers (16) (0) (0)))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=66; start_column=12; end_line=66; end_column=39;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
{AllocationFamilialesAvril2008.age_minimum_alinea_1_l521_3 =
age_minimum_alinea_1_l521_3_}
let enfant_le_plus_age (enfant_le_plus_age_in: EnfantLePlusAgeIn.t) : EnfantLePlusAge.t =
let enfants_: Enfant.t array = enfant_le_plus_age_in.EnfantLePlusAgeIn.enfants_in in
let le_plus_age_: Enfant.t = (log_variable_definition
["EnfantLePlusÂgé"; "le_plus_âgé"] (embed_enfant) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=12; start_column=14;
end_line=12; end_column=25;
law_headings=["Règles diverses"; "Épilogue"]}
true))
(fun (_: unit) ->
o_reduce
(fun (potentiel_plus_age_1_: Enfant.t)
(potentiel_plus_age_2_: Enfant.t) ->
if
(o_lt_dat_dat
(let potentiel_plus_age_ : Enfant.t =
potentiel_plus_age_1_
in
(potentiel_plus_age_.Enfant.date_de_naissance))
(let potentiel_plus_age_ : Enfant.t =
potentiel_plus_age_2_
in
(potentiel_plus_age_.Enfant.date_de_naissance)))
then potentiel_plus_age_1_ else
potentiel_plus_age_2_)
({Enfant.identifiant = (integer_of_string "-1");
Enfant.obligation_scolaire =
(SituationObligationScolaire.Pendant ());
Enfant.remuneration_mensuelle =
(money_of_cents_string "0");
Enfant.date_de_naissance =
(date_of_numbers (2999) (12) (31));
Enfant.prise_en_charge =
(PriseEnCharge.EffectiveEtPermanente ());
Enfant.a_deja_ouvert_droit_aux_allocations_familiales =
false;
Enfant.beneficie_titre_personnel_aide_personnelle_logement =
false}) enfants_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=70; start_column=12; end_line=70; end_column=23;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
{EnfantLePlusAge.le_plus_age = le_plus_age_}
let verification_age_inferieur_ou_egal_a (verification_age_inferieur_ou_egal_a_in: VerificationAgeInferieurOuEgalAIn.t) : VerificationAgeInferieurOuEgalA.t =
let date_naissance_: date = verification_age_inferieur_ou_egal_a_in.VerificationAgeInferieurOuEgalAIn.date_naissance_in in
let date_courante_: date = verification_age_inferieur_ou_egal_a_in.VerificationAgeInferieurOuEgalAIn.date_courante_in in
let annees_: duration = verification_age_inferieur_ou_egal_a_in.VerificationAgeInferieurOuEgalAIn.annees_in in
let est_inferieur_ou_egal_: bool = (log_variable_definition
["VérificationÂgeInférieurOuÉgalÀ"; "est_inférieur_ou_égal"]
(embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr";
start_line=25; start_column=14;
end_line=25; end_column=35;
law_headings=["Prologue";
"Montant du salaire minimum de croissance"]}
true))
(fun (_: unit) ->
o_lte_dat_dat
(o_add_dat_dur RoundUp date_naissance_ annees_)
date_courante_))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr";
start_line=22; start_column=12; end_line=22; end_column=33;
law_headings=["Prologue"; "Montant du salaire minimum de croissance"]})))) in
{VerificationAgeInferieurOuEgalA.est_inferieur_ou_egal =
est_inferieur_ou_egal_}
let verification_age_superieur_a (verification_age_superieur_a_in: VerificationAgeSuperieurAIn.t) : VerificationAgeSuperieurA.t =
let date_naissance_: date = verification_age_superieur_a_in.VerificationAgeSuperieurAIn.date_naissance_in in
let date_courante_: date = verification_age_superieur_a_in.VerificationAgeSuperieurAIn.date_courante_in in
let annees_: duration = verification_age_superieur_a_in.VerificationAgeSuperieurAIn.annees_in in
let est_superieur_: bool = (log_variable_definition
["VérificationÂgeSupérieurÀ"; "est_supérieur"] (embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr";
start_line=36; start_column=14;
end_line=36; end_column=27;
law_headings=["Prologue";
"Montant du salaire minimum de croissance"]}
true))
(fun (_: unit) ->
o_gt_dat_dat
(o_add_dat_dur RoundUp date_naissance_ annees_)
date_courante_))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr";
start_line=33; start_column=12; end_line=33; end_column=25;
law_headings=["Prologue"; "Montant du salaire minimum de croissance"]})))) in
{VerificationAgeSuperieurA.est_superieur = est_superieur_}
let smic (smic_in: SmicIn.t) : Smic.t =
let date_courante_: date = smic_in.SmicIn.date_courante_in in
let residence_: Collectivite.t = smic_in.SmicIn.residence_in in
let brut_horaire_: money = (log_variable_definition
["Smic"; "brut_horaire"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=34; start_column=5;
end_line=43; end_column=6;
law_headings=["Article 1";
"Décret n° 2018-1173 du 19 décembre 2018 portant relèvement du salaire minimum de croissance";
"Montant du salaire minimum de croissance"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (1) (1)))
(o_and
(o_lte_dat_dat date_courante_
(date_of_numbers (2019) (12) (31)))
(o_or
(o_eq residence_
(Collectivite.Metropole ()))
(o_or
(o_eq residence_
(Collectivite.Guadeloupe ()))
(o_or
(o_eq residence_
(Collectivite.Guyane ()))
(o_or
(o_eq residence_
(Collectivite.Martinique ()))
(o_or
(o_eq residence_
(Collectivite.LaReunion ()))
(o_or
(o_eq residence_
(Collectivite.SaintBarthelemy
()))
(o_or
(o_eq residence_
(Collectivite.SaintMartin
()))
(o_eq residence_
(Collectivite.SaintPierreEtMiquelon
())))))))))))))
(fun (_: unit) -> money_of_cents_string "1003"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=52; start_column=5;
end_line=54; end_column=6;
law_headings=["Article 1";
"Décret n° 2018-1173 du 19 décembre 2018 portant relèvement du salaire minimum de croissance";
"Montant du salaire minimum de croissance"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (1) (1)))
(o_and
(o_lte_dat_dat date_courante_
(date_of_numbers (2019) (12) (31)))
(o_eq residence_ (Collectivite.Mayotte ()))))))
(fun (_: unit) -> money_of_cents_string "757"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=73; start_column=5;
end_line=82; end_column=6;
law_headings=["Article 1";
"Décret n° 2019-1387 du 18 décembre 2019 portant relèvement du salaire minimum de croissance";
"Montant du salaire minimum de croissance"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_and
(o_lte_dat_dat date_courante_
(date_of_numbers (2020) (12) (31)))
(o_or
(o_eq residence_
(Collectivite.Metropole ()))
(o_or
(o_eq residence_
(Collectivite.Guadeloupe ()))
(o_or
(o_eq residence_
(Collectivite.Guyane ()))
(o_or
(o_eq residence_
(Collectivite.Martinique ()))
(o_or
(o_eq residence_
(Collectivite.LaReunion ()))
(o_or
(o_eq residence_
(Collectivite.SaintBarthelemy
()))
(o_or
(o_eq residence_
(Collectivite.SaintMartin
()))
(o_eq residence_
(Collectivite.SaintPierreEtMiquelon
())))))))))))))
(fun (_: unit) -> money_of_cents_string "1015"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=91; start_column=5;
end_line=93; end_column=6;
law_headings=["Article 1";
"Décret n° 2019-1387 du 18 décembre 2019 portant relèvement du salaire minimum de croissance";
"Montant du salaire minimum de croissance"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_and
(o_lte_dat_dat date_courante_
(date_of_numbers (2020) (12) (31)))
(o_eq residence_ (Collectivite.Mayotte ()))))))
(fun (_: unit) -> money_of_cents_string "766"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=112; start_column=5;
end_line=121; end_column=6;
law_headings=["Article 1";
"Décret n° 2020-1598 du 16 décembre 2020 portant relèvement du salaire minimum de croissance";
"Montant du salaire minimum de croissance"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (1) (1)))
(o_and
(o_lte_dat_dat date_courante_
(date_of_numbers (2021) (12) (31)))
(o_or
(o_eq residence_
(Collectivite.Metropole ()))
(o_or
(o_eq residence_
(Collectivite.Guadeloupe ()))
(o_or
(o_eq residence_
(Collectivite.Guyane ()))
(o_or
(o_eq residence_
(Collectivite.Martinique ()))
(o_or
(o_eq residence_
(Collectivite.LaReunion ()))
(o_or
(o_eq residence_
(Collectivite.SaintBarthelemy
()))
(o_or
(o_eq residence_
(Collectivite.SaintMartin
()))
(o_eq residence_
(Collectivite.SaintPierreEtMiquelon
())))))))))))))
(fun (_: unit) -> money_of_cents_string "1025"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=130; start_column=5;
end_line=132; end_column=6;
law_headings=["Article 1";
"Décret n° 2020-1598 du 16 décembre 2020 portant relèvement du salaire minimum de croissance";
"Montant du salaire minimum de croissance"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (1) (1)))
(o_and
(o_lte_dat_dat date_courante_
(date_of_numbers (2021) (12) (31)))
(o_eq residence_ (Collectivite.Mayotte ()))))))
(fun (_: unit) -> money_of_cents_string "774"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=151; start_column=5;
end_line=160; end_column=6;
law_headings=["Article 1";
"Décret n° 2021-1741 du 22 décembre 2021 portant relèvement du salaire minimum de croissance";
"Montant du salaire minimum de croissance"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (1) (1)))
(o_and
(o_lte_dat_dat date_courante_
(date_of_numbers (2022) (4) (30)))
(o_or
(o_eq residence_
(Collectivite.Metropole ()))
(o_or
(o_eq residence_
(Collectivite.Guadeloupe ()))
(o_or
(o_eq residence_
(Collectivite.Guyane ()))
(o_or
(o_eq residence_
(Collectivite.Martinique ()))
(o_or
(o_eq residence_
(Collectivite.LaReunion ()))
(o_or
(o_eq residence_
(Collectivite.SaintBarthelemy
()))
(o_or
(o_eq residence_
(Collectivite.SaintMartin
()))
(o_eq residence_
(Collectivite.SaintPierreEtMiquelon
())))))))))))))
(fun (_: unit) -> money_of_cents_string "1057"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=170; start_column=5;
end_line=172; end_column=6;
law_headings=["Article 1";
"Décret n° 2021-1741 du 22 décembre 2021 portant relèvement du salaire minimum de croissance";
"Montant du salaire minimum de croissance"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (1) (1)))
(o_and
(o_lte_dat_dat date_courante_
(date_of_numbers (2022) (4) (30)))
(o_eq residence_ (Collectivite.Mayotte ()))))))
(fun (_: unit) -> money_of_cents_string "798"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=191; start_column=5;
end_line=200; end_column=6;
law_headings=["Article 2";
"Arrêté du 19 avril 2022 relatif au relèvement du salaire minimum de croissance";
"Montant du salaire minimum de croissance"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (5) (1)))
(o_and
(o_lte_dat_dat date_courante_
(date_of_numbers (2022) (7) (31)))
(o_or
(o_eq residence_
(Collectivite.Metropole ()))
(o_or
(o_eq residence_
(Collectivite.Guadeloupe ()))
(o_or
(o_eq residence_
(Collectivite.Guyane ()))
(o_or
(o_eq residence_
(Collectivite.Martinique ()))
(o_or
(o_eq residence_
(Collectivite.LaReunion ()))
(o_or
(o_eq residence_
(Collectivite.SaintBarthelemy
()))
(o_or
(o_eq residence_
(Collectivite.SaintMartin
()))
(o_eq residence_
(Collectivite.SaintPierreEtMiquelon
())))))))))))))
(fun (_: unit) -> money_of_cents_string "1085"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=209; start_column=5;
end_line=211; end_column=6;
law_headings=["Article 2";
"Arrêté du 19 avril 2022 relatif au relèvement du salaire minimum de croissance";
"Montant du salaire minimum de croissance"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (5) (1)))
(o_and
(o_lte_dat_dat date_courante_
(date_of_numbers (2022) (7) (31)))
(o_eq residence_ (Collectivite.Mayotte ()))))))
(fun (_: unit) -> money_of_cents_string "819"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=230; start_column=5;
end_line=239; end_column=6;
law_headings=["Article 2";
"Arrêté du 29 juillet 2022 relatif au relèvement du salaire minimum de croissance";
"Montant du salaire minimum de croissance"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (8) (1)))
(o_and
(o_lte_dat_dat date_courante_
(date_of_numbers (2022) (12) (31)))
(o_or
(o_eq residence_
(Collectivite.Metropole ()))
(o_or
(o_eq residence_
(Collectivite.Guadeloupe ()))
(o_or
(o_eq residence_
(Collectivite.Guyane ()))
(o_or
(o_eq residence_
(Collectivite.Martinique ()))
(o_or
(o_eq residence_
(Collectivite.LaReunion ()))
(o_or
(o_eq residence_
(Collectivite.SaintBarthelemy
()))
(o_or
(o_eq residence_
(Collectivite.SaintMartin
()))
(o_eq residence_
(Collectivite.SaintPierreEtMiquelon
())))))))))))))
(fun (_: unit) -> money_of_cents_string "1107"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=248; start_column=5;
end_line=250; end_column=6;
law_headings=["Article 2";
"Arrêté du 29 juillet 2022 relatif au relèvement du salaire minimum de croissance";
"Montant du salaire minimum de croissance"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (8) (1)))
(o_and
(o_lte_dat_dat date_courante_
(date_of_numbers (2022) (12) (31)))
(o_eq residence_ (Collectivite.Mayotte ()))))))
(fun (_: unit) -> money_of_cents_string "835"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=270; start_column=5;
end_line=279; end_column=6;
law_headings=["Article 1";
"Décret n° 2022-1608 du 22 décembre 2022 portant relèvement du salaire minimum de croissance";
"Montant du salaire minimum de croissance"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2023) (1) (1)))
(o_or
(o_eq residence_ (Collectivite.Metropole ()))
(o_or
(o_eq residence_
(Collectivite.Guadeloupe ()))
(o_or
(o_eq residence_
(Collectivite.Guyane ()))
(o_or
(o_eq residence_
(Collectivite.Martinique ()))
(o_or
(o_eq residence_
(Collectivite.LaReunion ()))
(o_or
(o_eq residence_
(Collectivite.SaintBarthelemy
()))
(o_or
(o_eq residence_
(Collectivite.SaintMartin
()))
(o_eq residence_
(Collectivite.SaintPierreEtMiquelon
()))))))))))))
(fun (_: unit) -> money_of_cents_string "1127"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=288; start_column=5;
end_line=290; end_column=6;
law_headings=["Article 1";
"Décret n° 2022-1608 du 22 décembre 2022 portant relèvement du salaire minimum de croissance";
"Montant du salaire minimum de croissance"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2023) (1) (1)))
(o_eq residence_ (Collectivite.Mayotte ())))))
(fun (_: unit) -> money_of_cents_string "851"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=11; start_column=12; end_line=11; end_column=24;
law_headings=["Prologue"; "Montant du salaire minimum de croissance"]})))) in
let _: unit = if (
try
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (1) (1)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=16; start_column=13;
end_line=16; end_column=42;
law_headings=["Prologue";
"Montant du salaire minimum de croissance"]})))
then () else
raise (AssertionFailed {filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=16; start_column=13;
end_line=16; end_column=42;
law_headings=["Prologue";
"Montant du salaire minimum de croissance"]}) in
{Smic.brut_horaire = brut_horaire_}
let base_mensuelle_allocations_familiales (base_mensuelle_allocations_familiales_in: BaseMensuelleAllocationsFamilialesIn.t) : BaseMensuelleAllocationsFamiliales.t =
let date_courante_: date = base_mensuelle_allocations_familiales_in.BaseMensuelleAllocationsFamilialesIn.date_courante_in in
let montant_: money = (log_variable_definition
["BaseMensuelleAllocationsFamiliales"; "montant"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
start_line=32; start_column=5;
end_line=33; end_column=33;
law_headings=["Instruction ministérielle N°DSS/SD2B/2019/65 du 25 mars 2019 relative à la revalorisation au 1er avril 2019 des prestations familiales servies en métropole";
"Montant de la base mensuelle des allocations familiales"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (4) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2020) (4) (1))))))
(fun (_: unit) -> money_of_cents_string "41316"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
start_line=52; start_column=5;
end_line=53; end_column=33;
law_headings=["Instruction interministérielle no DSS/SD2B/2020/33 du 18 février 2020 relative à la revalorisation au 1er avril 2020 des prestations familiales servies en métropole, en Guadeloupe, en Guyane, en Martinique, à La Réunion, à Saint-Barthélemy, à Saint-Martin et dans le département de Mayotte";
"Montant de la base mensuelle des allocations familiales"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (4) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (4) (1))))))
(fun (_: unit) -> money_of_cents_string "41440"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
start_line=68; start_column=5;
end_line=69; end_column=33;
law_headings=["Instruction interministérielle n°DSS/2B/2021/65 du 19 mars 2021 relative à la revalorisation au 1er avril 2021 des prestations familiales servies en métropole, en Guadeloupe, en Guyane, en Martinique, à la Réunion, à Saint-Barthélemy, à Saint-Martin et dans le département de Mayotte";
"Montant de la base mensuelle des allocations familiales"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (4) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (4) (1))))))
(fun (_: unit) -> money_of_cents_string "41481"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
start_line=86; start_column=5;
end_line=86; end_column=34;
law_headings=["Instruction interministérielle n°DSS/2B/2022/82 du 28 mars 2022 relative à la revalorisation au 1er avril 2022 des prestations familiales servies en métropole, en Guadeloupe, en Guyane, en Martinique, à la Réunion, à Saint-Barthélemy, à Saint-Martin et dans le département de Mayotte";
"Montant de la base mensuelle des allocations familiales"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (4) (1)))))
(fun (_: unit) -> money_of_cents_string "42228"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
start_line=6; start_column=12; end_line=6; end_column=19;
law_headings=["Montant de la base mensuelle des allocations familiales"]})))) in
let _: unit = if (
try
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (4) (1)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
start_line=10; start_column=13;
end_line=10; end_column=42;
law_headings=["Montant de la base mensuelle des allocations familiales"]})))
then () else
raise (AssertionFailed {filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
start_line=10; start_column=13;
end_line=10; end_column=42;
law_headings=["Montant de la base mensuelle des allocations familiales"]}) in
{BaseMensuelleAllocationsFamiliales.montant = montant_}
let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t) : PrestationsFamiliales.t =
let date_courante_: date = prestations_familiales_in.PrestationsFamilialesIn.date_courante_in in
let residence_: Collectivite.t = prestations_familiales_in.PrestationsFamilialesIn.residence_in in
let age_l512_3_2_: duration = (log_variable_definition
["PrestationsFamiliales"; "âge_l512_3_2"] (embed_duration) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_R.catala_fr";
start_line=21; start_column=14;
end_line=21; end_column=26;
law_headings=["Article R512-2";
"Chapitre 2 : Champ d'application.";
"Titre 1 : Champ d'application - Généralités";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets en Conseil d'Etat";
"Code de la sécurité sociale"]}
true))
(fun (_: unit) -> duration_of_numbers (20) (0) (0)))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=51; start_column=12; end_line=51; end_column=24;
law_headings=["Prestations familiales"; "Champs d'applications";
"Prologue"]})))) in
let smic_dot_date_courante_: date =
try ((log_variable_definition
["PrestationsFamiliales"; "smic.date_courante"] (embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=59; start_column=14;
end_line=59; end_column=32;
law_headings=["Prestations familiales";
"Champs d'applications";
"Prologue"]} true))
(fun (_: unit) -> date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=59; start_column=14; end_line=59; end_column=32;
law_headings=["Prestations familiales"; "Champs d'applications";
"Prologue"]})) in
let smic_dot_residence_: Collectivite.t =
try ((log_variable_definition
["PrestationsFamiliales"; "smic.résidence"] (embed_collectivite)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=58; start_column=14;
end_line=58; end_column=28;
law_headings=["Prestations familiales";
"Champs d'applications";
"Prologue"]} true))
(fun (_: unit) -> residence_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=58; start_column=14; end_line=58; end_column=28;
law_headings=["Prestations familiales"; "Champs d'applications";
"Prologue"]})) in
let result_: Smic.t = (log_end_call
["PrestationsFamiliales"; "smic"; "Smic"] ((log_begin_call
["PrestationsFamiliales"; "smic"; "Smic"] smic)
({SmicIn.date_courante_in = smic_dot_date_courante_;
SmicIn.residence_in = smic_dot_residence_}))) in
let smic_dot_brut_horaire_: money = result_.Smic.brut_horaire in
let regime_outre_mer_l751_1_: bool = (log_variable_definition
["PrestationsFamiliales"; "régime_outre_mer_l751_1"] (embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
start_line=357; start_column=5;
end_line=362; end_column=30;
law_headings=["Article L751-1";
"Chapitre 1er : Généralités";
"Titre 5 : Dispositions particulières à la Guadeloupe, à la Guyane, à la Martinique, à La Réunion, à Saint-Barthélemy et à Saint-Martin";
"Livre 7 : Régimes divers - Dispositions diverses";
"Partie législative";
"Code de la sécurité sociale"]}
(o_or
(o_eq residence_
(Collectivite.Guadeloupe ()))
(o_or
(o_eq residence_
(Collectivite.Guyane ()))
(o_or
(o_eq residence_
(Collectivite.Martinique ()))
(o_or
(o_eq residence_
(Collectivite.LaReunion ()))
(o_or
(o_eq residence_
(Collectivite.SaintBarthelemy
()))
(o_eq residence_
(Collectivite.SaintMartin
())))))))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=52; start_column=12;
end_line=52; end_column=35;
law_headings=["Prestations familiales";
"Champs d'applications";
"Prologue"]} true))
(fun (_: unit) -> false))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=52; start_column=12; end_line=52; end_column=35;
law_headings=["Prestations familiales"; "Champs d'applications";
"Prologue"]})))) in
let plafond_l512_3_2_: money = (log_variable_definition
["PrestationsFamiliales"; "plafond_l512_3_2"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_R.catala_fr";
start_line=215; start_column=18;
end_line=215; end_column=41;
law_headings=["Article R755-0-2";
"Chapitre 5 : Prestations familiales et prestations assimilées";
"Titre 5 : Départements d'outre-mer";
"Livre 7 : Régimes divers - Dispositions diverses";
"Partie réglementaire - Décrets en Conseil d'Etat";
"Code de la sécurité sociale"]}
regime_outre_mer_l751_1_))
(fun (_: unit) ->
o_mult_mon_rat
(o_mult_mon_rat smic_dot_brut_horaire_
(decimal_of_string "0.55"))
(decimal_of_string "169.")))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_R.catala_fr";
start_line=31; start_column=14;
end_line=31; end_column=30;
law_headings=["Article R512-2";
"Chapitre 2 : Champ d'application.";
"Titre 1 : Champ d'application - Généralités";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets en Conseil d'Etat";
"Code de la sécurité sociale"]}
true))
(fun (_: unit) ->
o_mult_mon_rat
(o_mult_mon_rat smic_dot_brut_horaire_
(decimal_of_string "0.55"))
(decimal_of_string "169.")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=50; start_column=11; end_line=50; end_column=27;
law_headings=["Prestations familiales"; "Champs d'applications";
"Prologue"]})))) in
let conditions_hors_age_: Enfant.t -> bool = (log_variable_definition
["PrestationsFamiliales"; "conditions_hors_âge"] (unembeddable)
(fun (enfant_: Enfant.t) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
start_line=68; start_column=5;
end_line=71; end_column=56;
law_headings=["Article L512-3";
"Chapitre 2 : Champ d'application";
"Titre 1 : Champ d'application - Généralités";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie législative";
"Code de la sécurité sociale"]}
(o_and
(o_or
(match
(enfant_.Enfant.obligation_scolaire)
with
| SituationObligationScolaire.Avant _ ->
true
| SituationObligationScolaire.Pendant _ ->
false
| SituationObligationScolaire.Apres _ ->
false)
(o_or
(match
(enfant_.Enfant.obligation_scolaire)
with
| SituationObligationScolaire.Avant _ ->
false
| SituationObligationScolaire.Pendant _ ->
true
| SituationObligationScolaire.Apres _ ->
false)
(match
(enfant_.Enfant.obligation_scolaire)
with
| SituationObligationScolaire.Avant _ ->
false
| SituationObligationScolaire.Pendant _ ->
false
| SituationObligationScolaire.Apres _ ->
true)))
(o_lte_mon_mon
(enfant_.Enfant.remuneration_mensuelle)
plafond_l512_3_2_))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=49; start_column=12;
end_line=49; end_column=31;
law_headings=["Prestations familiales";
"Champs d'applications";
"Prologue"]} true))
(fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=49; start_column=12; end_line=49; end_column=31;
law_headings=["Prestations familiales"; "Champs d'applications";
"Prologue"]})))) in
let droit_ouvert_: Enfant.t -> bool = (log_variable_definition
["PrestationsFamiliales"; "droit_ouvert"] (unembeddable)
(fun (enfant_: Enfant.t) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||]) (fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/allocations_familiales/autres_codes.catala_fr";
start_line=24; start_column=5;
end_line=24; end_column=63;
law_headings=["Article L821-3";
"Sous-section 1 : Aides personnelles au logement";
"Section 2 : Règles de non-cumul";
"Chapitre Ier : Principes généraux";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(enfant_.Enfant.beneficie_titre_personnel_aide_personnelle_logement)))
(fun (_: unit) -> false))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
start_line=60; start_column=5;
end_line=62; end_column=62;
law_headings=["Article L512-3";
"Chapitre 2 : Champ d'application";
"Titre 1 : Champ d'application - Généralités";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie législative";
"Code de la sécurité sociale"]}
(o_and
(match
(enfant_.Enfant.obligation_scolaire)
with
| SituationObligationScolaire.Avant _ ->
false
| SituationObligationScolaire.Pendant _ ->
false
| SituationObligationScolaire.Apres _ ->
true)
(o_and
(o_lte_mon_mon
(enfant_.Enfant.remuneration_mensuelle)
plafond_l512_3_2_)
(o_gt_dat_dat
(o_add_dat_dur AbortOnRound
(enfant_.Enfant.date_de_naissance)
age_l512_3_2_)
date_courante_)))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
start_line=49; start_column=5;
end_line=50; end_column=50;
law_headings=["Article L512-3";
"Chapitre 2 : Champ d'application";
"Titre 1 : Champ d'application - Généralités";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie législative";
"Code de la sécurité sociale"]}
(o_or
(match
(enfant_.Enfant.obligation_scolaire)
with
| SituationObligationScolaire.Avant _ ->
true
| SituationObligationScolaire.Pendant _ ->
false
| SituationObligationScolaire.Apres _ ->
false)
(match
(enfant_.Enfant.obligation_scolaire)
with
| SituationObligationScolaire.Avant _ ->
false
| SituationObligationScolaire.Pendant _ ->
true
| SituationObligationScolaire.Apres _ ->
false)))) (fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=48; start_column=12;
end_line=48; end_column=24;
law_headings=["Prestations familiales";
"Champs d'applications";
"Prologue"]} true))
(fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=48; start_column=12; end_line=48; end_column=24;
law_headings=["Prestations familiales"; "Champs d'applications";
"Prologue"]})))) in
{PrestationsFamiliales.droit_ouvert = droit_ouvert_;
PrestationsFamiliales.conditions_hors_age = conditions_hors_age_;
PrestationsFamiliales.age_l512_3_2 = age_l512_3_2_;
PrestationsFamiliales.regime_outre_mer_l751_1 = regime_outre_mer_l751_1_}
let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t) : AllocationsFamiliales.t =
let personne_charge_effective_permanente_est_parent_: bool = allocations_familiales_in.AllocationsFamilialesIn.personne_charge_effective_permanente_est_parent_in in
let personne_charge_effective_permanente_remplit_titre__i_: bool = allocations_familiales_in.AllocationsFamilialesIn.personne_charge_effective_permanente_remplit_titre_I_in in
let ressources_menage_: money = allocations_familiales_in.AllocationsFamilialesIn.ressources_menage_in in
let residence_: Collectivite.t = allocations_familiales_in.AllocationsFamilialesIn.residence_in in
let date_courante_: date = allocations_familiales_in.AllocationsFamilialesIn.date_courante_in in
let enfants_a_charge_: Enfant.t array = allocations_familiales_in.AllocationsFamilialesIn.enfants_a_charge_in in
let avait_enfant_a_charge_avant_1er_janvier_2012_: bool = allocations_familiales_in.AllocationsFamilialesIn.avait_enfant_a_charge_avant_1er_janvier_2012_in in
let prise_en_compte_: Enfant.t -> PriseEnCompte.t = (log_variable_definition
["AllocationsFamiliales"; "prise_en_compte"] (unembeddable)
(fun (enfant_: Enfant.t) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
start_line=215; start_column=5;
end_line=215; end_column=70;
law_headings=["Article L521-2";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie législative";
"Code de la sécurité sociale"]}
(match (enfant_.Enfant.prise_en_charge)
with
| PriseEnCharge.GardeAlterneePartageAllocations _ ->
true
| PriseEnCharge.GardeAlterneeAllocataireUnique _ ->
false
| PriseEnCharge.EffectiveEtPermanente _ -> false
| PriseEnCharge.ServicesSociauxAllocationVerseeALaFamille _ ->
false
| PriseEnCharge.ServicesSociauxAllocationVerseeAuxServicesSociaux _ ->
false)))
(fun (_: unit) -> PriseEnCompte.Partagee ()));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
start_line=254; start_column=5;
end_line=255; end_column=56;
law_headings=["Article L521-2";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie législative";
"Code de la sécurité sociale"]}
(match (enfant_.Enfant.prise_en_charge)
with
| PriseEnCharge.GardeAlterneePartageAllocations _ ->
false
| PriseEnCharge.GardeAlterneeAllocataireUnique _ ->
false
| PriseEnCharge.EffectiveEtPermanente _ -> false
| PriseEnCharge.ServicesSociauxAllocationVerseeALaFamille _ ->
false
| PriseEnCharge.ServicesSociauxAllocationVerseeAuxServicesSociaux _ ->
true)))
(fun (_: unit) -> PriseEnCompte.Zero ()));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
start_line=264; start_column=5;
end_line=265; end_column=48;
law_headings=["Article L521-2";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie législative";
"Code de la sécurité sociale"]}
(match
(enfant_.Enfant.prise_en_charge)
with
| PriseEnCharge.GardeAlterneePartageAllocations _ ->
false
| PriseEnCharge.GardeAlterneeAllocataireUnique _ ->
false
| PriseEnCharge.EffectiveEtPermanente _ ->
false
| PriseEnCharge.ServicesSociauxAllocationVerseeALaFamille _ ->
true
| PriseEnCharge.ServicesSociauxAllocationVerseeAuxServicesSociaux _ ->
false)))
(fun (_: unit) ->
PriseEnCompte.Complete ()))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
start_line=205; start_column=5;
end_line=205; end_column=69;
law_headings=["Article L521-2";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie législative";
"Code de la sécurité sociale"]}
(match (enfant_.Enfant.prise_en_charge)
with
| PriseEnCharge.GardeAlterneePartageAllocations _ ->
false
| PriseEnCharge.GardeAlterneeAllocataireUnique _ ->
true
| PriseEnCharge.EffectiveEtPermanente _ ->
false
| PriseEnCharge.ServicesSociauxAllocationVerseeALaFamille _ ->
false
| PriseEnCharge.ServicesSociauxAllocationVerseeAuxServicesSociaux _ ->
false)))
(fun (_: unit) -> PriseEnCompte.Complete ()))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
start_line=185; start_column=5;
end_line=185; end_column=60;
law_headings=["Article L521-2";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie législative";
"Code de la sécurité sociale"]}
(match (enfant_.Enfant.prise_en_charge)
with
| PriseEnCharge.GardeAlterneePartageAllocations _ ->
false
| PriseEnCharge.GardeAlterneeAllocataireUnique _ ->
false
| PriseEnCharge.EffectiveEtPermanente _ -> true
| PriseEnCharge.ServicesSociauxAllocationVerseeALaFamille _ ->
false
| PriseEnCharge.ServicesSociauxAllocationVerseeAuxServicesSociaux _ ->
false)))
(fun (_: unit) -> PriseEnCompte.Complete ()))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=87; start_column=11; end_line=87; end_column=26;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let versement_: Enfant.t -> VersementAllocations.t = (log_variable_definition
["AllocationsFamiliales"; "versement"] (unembeddable)
(fun (enfant_: Enfant.t) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
start_line=259; start_column=5;
end_line=260; end_column=56;
law_headings=["Article L521-2";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie législative";
"Code de la sécurité sociale"]}
(match (enfant_.Enfant.prise_en_charge)
with
| PriseEnCharge.GardeAlterneePartageAllocations _ ->
false
| PriseEnCharge.GardeAlterneeAllocataireUnique _ ->
false
| PriseEnCharge.EffectiveEtPermanente _ -> false
| PriseEnCharge.ServicesSociauxAllocationVerseeALaFamille _ ->
false
| PriseEnCharge.ServicesSociauxAllocationVerseeAuxServicesSociaux _ ->
true)))
(fun (_: unit) ->
VersementAllocations.AllocationVerseeAuxServicesSociaux
()));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} (
[||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
start_line=270;
start_column=5;
end_line=271; end_column=48;
law_headings=["Article L521-2";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie législative";
"Code de la sécurité sociale"]}
(match
(enfant_.Enfant.prise_en_charge)
with
| PriseEnCharge.GardeAlterneePartageAllocations _ ->
false
| PriseEnCharge.GardeAlterneeAllocataireUnique _ ->
false
| PriseEnCharge.EffectiveEtPermanente _ ->
false
| PriseEnCharge.ServicesSociauxAllocationVerseeALaFamille _ ->
true
| PriseEnCharge.ServicesSociauxAllocationVerseeAuxServicesSociaux _ ->
false)))
(fun (_: unit) ->
VersementAllocations.Normal
()))|])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
start_line=219; start_column=5;
end_line=219; end_column=70;
law_headings=["Article L521-2";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie législative";
"Code de la sécurité sociale"]}
(match
(enfant_.Enfant.prise_en_charge)
with
| PriseEnCharge.GardeAlterneePartageAllocations _ ->
true
| PriseEnCharge.GardeAlterneeAllocataireUnique _ ->
false
| PriseEnCharge.EffectiveEtPermanente _ ->
false
| PriseEnCharge.ServicesSociauxAllocationVerseeALaFamille _ ->
false
| PriseEnCharge.ServicesSociauxAllocationVerseeAuxServicesSociaux _ ->
false)))
(fun (_: unit) ->
VersementAllocations.Normal ()))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
start_line=209; start_column=5;
end_line=209; end_column=69;
law_headings=["Article L521-2";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie législative";
"Code de la sécurité sociale"]}
(match (enfant_.Enfant.prise_en_charge)
with
| PriseEnCharge.GardeAlterneePartageAllocations _ ->
false
| PriseEnCharge.GardeAlterneeAllocataireUnique _ ->
true
| PriseEnCharge.EffectiveEtPermanente _ ->
false
| PriseEnCharge.ServicesSociauxAllocationVerseeALaFamille _ ->
false
| PriseEnCharge.ServicesSociauxAllocationVerseeAuxServicesSociaux _ ->
false)))
(fun (_: unit) ->
VersementAllocations.Normal ()))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
start_line=189; start_column=5;
end_line=189; end_column=60;
law_headings=["Article L521-2";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie législative";
"Code de la sécurité sociale"]}
(match (enfant_.Enfant.prise_en_charge)
with
| PriseEnCharge.GardeAlterneePartageAllocations _ ->
false
| PriseEnCharge.GardeAlterneeAllocataireUnique _ ->
false
| PriseEnCharge.EffectiveEtPermanente _ -> true
| PriseEnCharge.ServicesSociauxAllocationVerseeALaFamille _ ->
false
| PriseEnCharge.ServicesSociauxAllocationVerseeAuxServicesSociaux _ ->
false)))
(fun (_: unit) -> VersementAllocations.Normal ()))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=88; start_column=12; end_line=88; end_column=21;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let nombre_enfants_alinea_2_l521_3_: integer = (log_variable_definition
["AllocationsFamiliales"; "nombre_enfants_alinéa_2_l521_3"]
(embed_integer) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=294; start_column=14;
end_line=294; end_column=44;
law_headings=["Article D521-2";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
true))
(fun (_: unit) -> integer_of_string "3"))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_R.catala_fr";
start_line=64; start_column=14;
end_line=64; end_column=44;
law_headings=["Article R521-1";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets en Conseil d'Etat";
"Code de la sécurité sociale"]}
true)) (fun (_: unit) -> integer_of_string "3"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=144; start_column=11; end_line=144; end_column=41;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let result_: AllocationFamilialesAvril2008.t = (log_end_call
["AllocationsFamiliales"; "version_avril_2008";
"AllocationFamilialesAvril2008"] ((log_begin_call
["AllocationsFamiliales"; "version_avril_2008";
"AllocationFamilialesAvril2008"] allocation_familiales_avril2008)
(()))) in
let version_avril_2008_dot_age_minimum_alinea_1_l521_3_: duration = result_.AllocationFamilialesAvril2008.age_minimum_alinea_1_l521_3 in
let bmaf_dot_date_courante_: date =
try ((log_variable_definition
["AllocationsFamiliales"; "bmaf.date_courante"] (embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=155; start_column=14;
end_line=155; end_column=32;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} true))
(fun (_: unit) -> date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=155; start_column=14; end_line=155; end_column=32;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})) in
let result_: BaseMensuelleAllocationsFamiliales.t = (log_end_call
["AllocationsFamiliales"; "bmaf"; "BaseMensuelleAllocationsFamiliales"]
((log_begin_call
["AllocationsFamiliales"; "bmaf"; "BaseMensuelleAllocationsFamiliales"]
base_mensuelle_allocations_familiales)
({BaseMensuelleAllocationsFamilialesIn.date_courante_in =
bmaf_dot_date_courante_}))) in
let bmaf_dot_montant_: money = result_.BaseMensuelleAllocationsFamiliales.montant in
let prestations_familiales_dot_date_courante_: date =
try ((log_variable_definition
["AllocationsFamiliales"; "prestations_familiales.date_courante"]
(embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=151; start_column=14;
end_line=151; end_column=50;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} true))
(fun (_: unit) -> date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=151; start_column=14; end_line=151; end_column=50;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})) in
let prestations_familiales_dot_residence_: Collectivite.t =
try ((log_variable_definition
["AllocationsFamiliales"; "prestations_familiales.résidence"]
(embed_collectivite)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=153; start_column=14;
end_line=153; end_column=46;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} true))
(fun (_: unit) -> residence_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=153; start_column=14; end_line=153; end_column=46;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})) in
let result_: PrestationsFamiliales.t = (log_end_call
["AllocationsFamiliales"; "prestations_familiales";
"PrestationsFamiliales"] ((log_begin_call
["AllocationsFamiliales"; "prestations_familiales";
"PrestationsFamiliales"] prestations_familiales)
({PrestationsFamilialesIn.date_courante_in =
prestations_familiales_dot_date_courante_;
PrestationsFamilialesIn.residence_in =
prestations_familiales_dot_residence_}))) in
let prestations_familiales_dot_droit_ouvert_: Enfant.t -> bool = result_.PrestationsFamiliales.droit_ouvert in
let prestations_familiales_dot_conditions_hors_age_: Enfant.t -> bool = result_.PrestationsFamiliales.conditions_hors_age in
let prestations_familiales_dot_age_l512_3_2_: duration = result_.PrestationsFamiliales.age_l512_3_2 in
let prestations_familiales_dot_regime_outre_mer_l751_1_: bool = result_.PrestationsFamiliales.regime_outre_mer_l751_1 in
let enfant_le_plus_age_dot_enfants_: Enfant.t array =
try ((log_variable_definition
["AllocationsFamiliales"; "enfant_le_plus_âgé.enfants"]
(embed_array (embed_enfant))
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=33; start_column=14;
end_line=33; end_column=40;
law_headings=["Règles diverses"; "Épilogue"]}
true)) (fun (_: unit) -> enfants_a_charge_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=33; start_column=14; end_line=33; end_column=40;
law_headings=["Règles diverses"; "Épilogue"]})) in
let result_: EnfantLePlusAge.t = (log_end_call
["AllocationsFamiliales"; "enfant_le_plus_âgé"; "EnfantLePlusÂgé"]
((log_begin_call
["AllocationsFamiliales"; "enfant_le_plus_âgé"; "EnfantLePlusÂgé"]
enfant_le_plus_age)
({EnfantLePlusAgeIn.enfants_in = enfant_le_plus_age_dot_enfants_}))) in
let enfant_le_plus_age_dot_le_plus_age_: Enfant.t = result_.EnfantLePlusAge.le_plus_age in
let age_minimum_alinea_1_l521_3_: Enfant.t -> duration = (log_variable_definition
["AllocationsFamiliales"; "âge_minimum_alinéa_1_l521_3"] (unembeddable)
(fun (enfant_: Enfant.t) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_R.catala_fr";
start_line=83; start_column=19;
end_line=83; end_column=67;
law_headings=["Article R521-1";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets en Conseil d'Etat";
"Code de la sécurité sociale"]}
(o_lte_dat_dat
(o_add_dat_dur AbortOnRound
(enfant_.Enfant.date_de_naissance)
(duration_of_numbers (11) (0) (0)))
(date_of_numbers (2008) (4) (30)))))
(fun (_: unit) ->
version_avril_2008_dot_age_minimum_alinea_1_l521_3_))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_R.catala_fr";
start_line=56; start_column=14;
end_line=56; end_column=41;
law_headings=["Article R521-1";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets en Conseil d'Etat";
"Code de la sécurité sociale"]}
true))
(fun (_: unit) -> duration_of_numbers (14) (0) (0)))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=142; start_column=11; end_line=142; end_column=38;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let enfants_a_charge_droit_ouvert_prestation_familiale_: Enfant.t array = (log_variable_definition
["AllocationsFamiliales";
"enfants_à_charge_droit_ouvert_prestation_familiale"]
(embed_array (embed_enfant)) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
start_line=75; start_column=14;
end_line=75; end_column=64;
law_headings=["Article L512-3";
"Chapitre 2 : Champ d'application";
"Titre 1 : Champ d'application - Généralités";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie législative";
"Code de la sécurité sociale"]}
true))
(fun (_: unit) ->
o_filter
(fun (enfant_: Enfant.t) -> (log_end_call
["PrestationsFamiliales"; "droit_ouvert"]
((log_variable_definition
["PrestationsFamiliales"; "droit_ouvert";
"output"] (embed_bool) ((log_begin_call
["PrestationsFamiliales"; "droit_ouvert"]
prestations_familiales_dot_droit_ouvert_)
((log_variable_definition
["PrestationsFamiliales"; "droit_ouvert";
"input0"] (embed_enfant) enfant_)))))))
enfants_a_charge_))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=85; start_column=11; end_line=85; end_column=61;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let est_enfant_le_plus_age_: Enfant.t -> bool = (log_variable_definition
["AllocationsFamiliales"; "est_enfant_le_plus_âgé"] (unembeddable)
(fun (enfant_: Enfant.t) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=34; start_column=14;
end_line=34; end_column=36;
law_headings=["Règles diverses"; "Épilogue"]}
true))
(fun (_: unit) ->
o_eq enfant_le_plus_age_dot_le_plus_age_ enfant_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=145; start_column=11; end_line=145; end_column=33;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let plafond__i_i_d521_3_: money = (log_variable_definition
["AllocationsFamiliales"; "plafond_II_d521_3"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=30; start_column=5;
end_line=30; end_column=67;
law_headings=["Circulaire interministérielle N° DSS/SD2B/2017/352 du 22 décembre 2017 relative à la revalorisation au 1er janvier 2018 des plafonds de ressources dattribution de certaines prestations familiales servies en métropole, en Guadeloupe, en Guyane, en Martinique, à la Réunion, à Saint-Barthélemy, à Saint-Martin et à Mayotte";
"Montant des plafonds de ressources"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2018) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2018) (12) (31))))))
(fun (_: unit) ->
o_add_mon_mon (money_of_cents_string
"7877000")
(o_mult_mon_rat (money_of_cents_string
"562800")
(o_torat_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=63; start_column=5;
end_line=63; end_column=67;
law_headings=["Instruction interministérielle n° DSS/SD2B/2018/279 du 17 décembre 2018 relative à la revalorisation au 1er janvier 2019 des plafonds de ressources dattribution de certaines prestations familiales servies en métropole, en Guadeloupe, en Guyane, en Martinique, à la Réunion, à Saint-Barthélemy, à Saint-Martin et à Mayotte";
"Montant des plafonds de ressources"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2019) (12) (31))))))
(fun (_: unit) ->
o_add_mon_mon (money_of_cents_string
"7955800")
(o_mult_mon_rat (money_of_cents_string
"568400")
(o_torat_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=96; start_column=5;
end_line=96; end_column=67;
law_headings=["Instruction interministerielle no DSS/SD2B/2019/261 du 18 décembre 2019 relative à la revalorisation au 1er janvier 2020 des plafonds de ressources dattribution de certaines prestations familiales servies en métropole, en Guadeloupe, en Guyane, en Martinique, à La Réunion, à Saint-Barthélemy, à Saint-Martin et à Mayotte";
"Montant des plafonds de ressources"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2020) (12) (31))))))
(fun (_: unit) ->
o_add_mon_mon (money_of_cents_string
"8083100")
(o_mult_mon_rat (money_of_cents_string
"577500")
(o_torat_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=132; start_column=5;
end_line=132; end_column=67;
law_headings=["Article 1";
"Arrêté du 14 décembre 2020 relatif au montant des plafonds de ressources de certaines prestations familiales et aux tranches du barème applicable au recouvrement des indus et à la saisie des prestations";
"Montant des plafonds de ressources"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2021) (12) (31))))))
(fun (_: unit) ->
o_add_mon_mon (money_of_cents_string
"8155800")
(o_mult_mon_rat (money_of_cents_string
"582700")
(o_torat_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)))))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=314; start_column=14;
end_line=314; end_column=31;
law_headings=["Article D521-3";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
true))
(fun (_: unit) ->
o_add_mon_mon (money_of_cents_string "7830000")
(o_mult_mon_rat (money_of_cents_string "559500")
(o_torat_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=148; start_column=11; end_line=148; end_column=28;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let plafond__i_d521_3_: money = (log_variable_definition
["AllocationsFamiliales"; "plafond_I_d521_3"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=23; start_column=5;
end_line=23; end_column=67;
law_headings=["Circulaire interministérielle N° DSS/SD2B/2017/352 du 22 décembre 2017 relative à la revalorisation au 1er janvier 2018 des plafonds de ressources dattribution de certaines prestations familiales servies en métropole, en Guadeloupe, en Guyane, en Martinique, à la Réunion, à Saint-Barthélemy, à Saint-Martin et à Mayotte";
"Montant des plafonds de ressources"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2018) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2018) (12) (31))))))
(fun (_: unit) ->
o_add_mon_mon (money_of_cents_string
"5628600")
(o_mult_mon_rat (money_of_cents_string
"562800")
(o_torat_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=56; start_column=5;
end_line=56; end_column=67;
law_headings=["Instruction interministérielle n° DSS/SD2B/2018/279 du 17 décembre 2018 relative à la revalorisation au 1er janvier 2019 des plafonds de ressources dattribution de certaines prestations familiales servies en métropole, en Guadeloupe, en Guyane, en Martinique, à la Réunion, à Saint-Barthélemy, à Saint-Martin et à Mayotte";
"Montant des plafonds de ressources"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2019) (12) (31))))))
(fun (_: unit) ->
o_add_mon_mon (money_of_cents_string
"5684900")
(o_mult_mon_rat (money_of_cents_string
"568400")
(o_torat_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=89; start_column=5;
end_line=89; end_column=67;
law_headings=["Instruction interministerielle no DSS/SD2B/2019/261 du 18 décembre 2019 relative à la revalorisation au 1er janvier 2020 des plafonds de ressources dattribution de certaines prestations familiales servies en métropole, en Guadeloupe, en Guyane, en Martinique, à La Réunion, à Saint-Barthélemy, à Saint-Martin et à Mayotte";
"Montant des plafonds de ressources"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2020) (12) (31))))))
(fun (_: unit) ->
o_add_mon_mon (money_of_cents_string
"5775900")
(o_mult_mon_rat (money_of_cents_string
"577500")
(o_torat_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=116; start_column=5;
end_line=116; end_column=67;
law_headings=["Article 1";
"Arrêté du 14 décembre 2020 relatif au montant des plafonds de ressources de certaines prestations familiales et aux tranches du barème applicable au recouvrement des indus et à la saisie des prestations";
"Montant des plafonds de ressources"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2021) (12) (31))))))
(fun (_: unit) ->
o_add_mon_mon (money_of_cents_string
"5827900")
(o_mult_mon_rat (money_of_cents_string
"582700")
(o_torat_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)))))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=304; start_column=14;
end_line=304; end_column=30;
law_headings=["Article D521-3";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
true))
(fun (_: unit) ->
o_add_mon_mon (money_of_cents_string "5595000")
(o_mult_mon_rat (money_of_cents_string "559500")
(o_torat_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=147; start_column=11; end_line=147; end_column=27;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let droit_ouvert_complement_: bool = (log_variable_definition
["AllocationsFamiliales"; "droit_ouvert_complément"] (embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||]) (fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
start_line=429; start_column=5;
end_line=430; end_column=71;
law_headings=["Article L755-12";
"Chapitre 5 : Prestations familiales et prestations assimilées";
"Titre 5 : Dispositions particulières à la Guadeloupe, à la Guyane, à la Martinique, à La Réunion, à Saint-Barthélemy et à Saint-Martin";
"Livre 7 : Régimes divers - Dispositions diverses";
"Partie législative";
"Code de la sécurité sociale"]}
(o_and
prestations_familiales_dot_regime_outre_mer_l751_1_
(o_eq
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "1")))))
(fun (_: unit) -> false))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=31; start_column=9;
end_line=31; end_column=32;
law_headings=["Règles diverses";
"Épilogue"]} true))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=128; start_column=11;
end_line=128; end_column=34;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} true))
(fun (_: unit) -> false))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=128; start_column=11; end_line=128; end_column=34;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let droit_ouvert_forfaitaire_: Enfant.t -> bool = (log_variable_definition
["AllocationsFamiliales"; "droit_ouvert_forfaitaire"] (unembeddable)
(fun (enfant_: Enfant.t) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||]) (fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
start_line=423; start_column=6;
end_line=424; end_column=72;
law_headings=["Article L755-12";
"Chapitre 5 : Prestations familiales et prestations assimilées";
"Titre 5 : Dispositions particulières à la Guadeloupe, à la Guyane, à la Martinique, à La Réunion, à Saint-Barthélemy et à Saint-Martin";
"Livre 7 : Régimes divers - Dispositions diverses";
"Partie législative";
"Code de la sécurité sociale"]}
(o_and
prestations_familiales_dot_regime_outre_mer_l751_1_
(o_eq
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "1")))))
(fun (_: unit) -> false))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
start_line=119; start_column=5;
end_line=126; end_column=59;
law_headings=["Article L521-1";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie législative";
"Code de la sécurité sociale"]}
(o_and
(o_gte_int_int
(o_length enfants_a_charge_)
nombre_enfants_alinea_2_l521_3_)
(o_and
(o_lt_dur_dur
(o_sub_dat_dat
(o_add_dat_dur AbortOnRound
(enfant_.Enfant.date_de_naissance)
prestations_familiales_dot_age_l512_3_2_)
date_courante_)
(duration_of_numbers (0) (0) (365)))
(o_and
(enfant_.Enfant.a_deja_ouvert_droit_aux_allocations_familiales)
((log_end_call
["PrestationsFamiliales";
"conditions_hors_âge"]
((log_variable_definition
["PrestationsFamiliales";
"conditions_hors_âge";
"output"] (embed_bool)
((log_begin_call
["PrestationsFamiliales";
"conditions_hors_âge"]
prestations_familiales_dot_conditions_hors_age_)
((log_variable_definition
["PrestationsFamiliales";
"conditions_hors_âge";
"input0"] (embed_enfant)
enfant_))))))))))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=111; start_column=11;
end_line=111; end_column=35;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} true))
(fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=111; start_column=11; end_line=111; end_column=35;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let montant_initial_base_quatrieme_enfant_et_plus_mayotte_: money = (log_variable_definition
["AllocationsFamiliales";
"montant_initial_base_quatrième_enfant_et_plus_mayotte"] (embed_money)
(
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=195; start_column=14;
end_line=195; end_column=67;
law_headings=["Article 7";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
true))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "3")) then
(o_mult_mon_rat
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.0463"))
(o_torat_int
(o_sub_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "3")))) else
(money_of_cents_string "0")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=108; start_column=11; end_line=108; end_column=64;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let montant_initial_base_troisieme_enfant_mayotte_: money = (log_variable_definition
["AllocationsFamiliales";
"montant_initial_base_troisième_enfant_mayotte"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=431; start_column=5;
end_line=431; end_column=67;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2011) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2011) (12) (31)))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "2")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.0463")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=439; start_column=5;
end_line=439; end_column=67;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2012) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2012) (12) (31)))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "2")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.0539")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=447; start_column=5;
end_line=447; end_column=67;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2013) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2013) (12) (31)))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "2")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.0615")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=455; start_column=5;
end_line=455; end_column=67;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2014) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2014) (12) (31)))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "2")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.069")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=463; start_column=5;
end_line=463; end_column=67;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2015) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2015) (12) (31)))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "2")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.0766")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=471; start_column=5;
end_line=471; end_column=67;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2016) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2016) (12) (31)))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "2")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.0842")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=479; start_column=5;
end_line=479; end_column=67;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2017) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2017) (12) (31)))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "2")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.0918")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=487; start_column=5;
end_line=487; end_column=67;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2018) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2018) (12) (31)))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "2")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.1089")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=495; start_column=5;
end_line=495; end_column=67;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2019) (12) (31)))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "2")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.1259")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=503; start_column=5;
end_line=503; end_column=67;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2020) (12) (31)))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "2")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.143")) else
(money_of_cents_string "0")))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=186; start_column=14;
end_line=186; end_column=59;
law_headings=["Article 7";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
true))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "2")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.16")) else
(money_of_cents_string "0")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=107; start_column=11; end_line=107; end_column=56;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let nombre_total_enfants_: decimal = (log_variable_definition
["AllocationsFamiliales"; "nombre_total_enfants"] (embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_R.catala_fr";
start_line=160; start_column=14;
end_line=160; end_column=34;
law_headings=["Article R521-3";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets en Conseil d'Etat";
"Code de la sécurité sociale"]}
true))
(fun (_: unit) ->
o_torat_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=101; start_column=11; end_line=101; end_column=31;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let nombre_moyen_enfants_: decimal = (log_variable_definition
["AllocationsFamiliales"; "nombre_moyen_enfants"] (embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_R.catala_fr";
start_line=142; start_column=14;
end_line=142; end_column=34;
law_headings=["Article R521-3";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets en Conseil d'Etat";
"Code de la sécurité sociale"]}
true))
(fun (_: unit) ->
o_reduce
(fun (sum1_: decimal) (sum2_: decimal) ->
o_add_rat_rat sum1_ sum2_)
(decimal_of_string "0.")
(o_map
(fun (enfant_: Enfant.t) ->
match ((log_end_call
["AllocationsFamiliales";
"prise_en_compte"]
((log_variable_definition
["AllocationsFamiliales";
"prise_en_compte"; "output"]
(embed_prise_en_compte) ((log_begin_call
["AllocationsFamiliales";
"prise_en_compte"] prise_en_compte_)
((log_variable_definition
["AllocationsFamiliales";
"prise_en_compte"; "input0"]
(embed_enfant) enfant_)))))))
with
| PriseEnCompte.Complete _ ->
(decimal_of_string "1.")
| PriseEnCompte.Partagee _ ->
(decimal_of_string "0.5")
| PriseEnCompte.Zero _ ->
(decimal_of_string "0."))
enfants_a_charge_droit_ouvert_prestation_familiale_)))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=100; start_column=11; end_line=100; end_column=31;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let montant_initial_base_premier_enfant_: money = (log_variable_definition
["AllocationsFamiliales"; "montant_initial_base_premier_enfant"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||]) (fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=251; start_column=5;
end_line=252; end_column=53;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2011) (1) (1)))
(o_and
(o_lte_dat_dat
date_courante_
(date_of_numbers (2011) (12) (31)))
(o_not
avait_enfant_a_charge_avant_1er_janvier_2012_))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "0")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.145"))
else (money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=260; start_column=5;
end_line=261; end_column=53;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2012) (1) (1)))
(o_and
(o_lte_dat_dat
date_courante_
(date_of_numbers (2012) (12) (31)))
(o_not
avait_enfant_a_charge_avant_1er_janvier_2012_))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "0")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.1393"))
else (money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=269; start_column=5;
end_line=270; end_column=53;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2013) (1) (1)))
(o_and
(o_lte_dat_dat
date_courante_
(date_of_numbers (2013) (12) (31)))
(o_not
avait_enfant_a_charge_avant_1er_janvier_2012_))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "0")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.1335"))
else (money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=278; start_column=5;
end_line=279; end_column=53;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2014) (1) (1)))
(o_and
(o_lte_dat_dat
date_courante_
(date_of_numbers (2014) (12) (31)))
(o_not
avait_enfant_a_charge_avant_1er_janvier_2012_))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "0")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.1278"))
else (money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=287; start_column=5;
end_line=288; end_column=53;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2015) (1) (1)))
(o_and
(o_lte_dat_dat
date_courante_
(date_of_numbers (2015) (12) (31)))
(o_not
avait_enfant_a_charge_avant_1er_janvier_2012_))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "0")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.122"))
else (money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=296; start_column=5;
end_line=297; end_column=53;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2016) (1) (1)))
(o_and
(o_lte_dat_dat
date_courante_
(date_of_numbers (2016) (12) (31)))
(o_not
avait_enfant_a_charge_avant_1er_janvier_2012_))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "0")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.1163"))
else (money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=305; start_column=5;
end_line=306; end_column=53;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2017) (1) (1)))
(o_and
(o_lte_dat_dat
date_courante_
(date_of_numbers (2017) (12) (31)))
(o_not
avait_enfant_a_charge_avant_1er_janvier_2012_))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "0")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.1105"))
else (money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=314; start_column=5;
end_line=315; end_column=53;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2018) (1) (1)))
(o_and
(o_lte_dat_dat
date_courante_
(date_of_numbers (2018) (12) (31)))
(o_not
avait_enfant_a_charge_avant_1er_janvier_2012_))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "0")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.0976"))
else (money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=323; start_column=5;
end_line=324; end_column=53;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (1) (1)))
(o_and
(o_lte_dat_dat
date_courante_
(date_of_numbers (2019) (12) (31)))
(o_not
avait_enfant_a_charge_avant_1er_janvier_2012_))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "0")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.0847"))
else (money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=332; start_column=5;
end_line=333; end_column=53;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_and
(o_lte_dat_dat
date_courante_
(date_of_numbers (2020) (12) (31)))
(o_not
avait_enfant_a_charge_avant_1er_janvier_2012_))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "0")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.0717"))
else (money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=341; start_column=5;
end_line=341; end_column=49;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
avait_enfant_a_charge_avant_1er_janvier_2012_)))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "0")) then
(money_of_cents_string "5728")
else (money_of_cents_string "0")))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=167; start_column=14;
end_line=167; end_column=49;
law_headings=["Article 7";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_eq residence_ (Collectivite.Mayotte ()))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "0")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.0588")) else
(money_of_cents_string "0")))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=365; start_column=5;
end_line=366; end_column=71;
law_headings=["Article D755-5";
"Chapitre 5 : Prestations familiales et prestations assimilées";
"Titre 5 : Départements d'outre-mer";
"Livre 7 : Régimes divers - Dispositions diverses";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
(o_and
prestations_familiales_dot_regime_outre_mer_l751_1_
(o_eq
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "1")))))
(fun (_: unit) ->
o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.0588")))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=362; start_column=29;
end_line=362; end_column=64;
law_headings=["Article D755-5";
"Chapitre 5 : Prestations familiales et prestations assimilées";
"Titre 5 : Départements d'outre-mer";
"Livre 7 : Régimes divers - Dispositions diverses";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
true)) (fun (_: unit) -> money_of_cents_string "0"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=96; start_column=11; end_line=96; end_column=46;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let droit_ouvert_base_: bool = (log_variable_definition
["AllocationsFamiliales"; "droit_ouvert_base"] (embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||]) (fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=159;
start_column=6;
end_line=159; end_column=71;
law_headings=["Article 7";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte
()))
(o_gte_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string
"1")))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
start_line=409; start_column=5;
end_line=410; end_column=72;
law_headings=["Article L755-12";
"Chapitre 5 : Prestations familiales et prestations assimilées";
"Titre 5 : Dispositions particulières à la Guadeloupe, à la Guyane, à la Martinique, à La Réunion, à Saint-Barthélemy et à Saint-Martin";
"Livre 7 : Régimes divers - Dispositions diverses";
"Partie législative";
"Code de la sécurité sociale"]}
(o_and
prestations_familiales_dot_regime_outre_mer_l751_1_
(o_gte_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "1")))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
start_line=101; start_column=5;
end_line=101; end_column=70;
law_headings=["Article L521-1";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie législative";
"Code de la sécurité sociale"]}
(o_gte_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "2"))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=94; start_column=11;
end_line=94; end_column=28;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} true))
(fun (_: unit) -> false))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=94; start_column=11; end_line=94; end_column=28;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let droit_ouvert_majoration_: Enfant.t -> bool = (log_variable_definition
["AllocationsFamiliales"; "droit_ouvert_majoration"] (unembeddable)
(fun (enfant_: Enfant.t) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||]) (fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
start_line=315; start_column=5;
end_line=318; end_column=21;
law_headings=["Article L521-3";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie législative";
"Code de la sécurité sociale"]}
(o_and
(o_gte_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
nombre_enfants_alinea_2_l521_3_)
(o_lte_dat_dat
(o_add_dat_dur AbortOnRound
(enfant_.Enfant.date_de_naissance)
((log_end_call
["AllocationsFamiliales";
"âge_minimum_alinéa_1_l521_3"]
((log_variable_definition
["AllocationsFamiliales";
"âge_minimum_alinéa_1_l521_3";
"output"]
(embed_duration)
((log_begin_call
["AllocationsFamiliales";
"âge_minimum_alinéa_1_l521_3"]
age_minimum_alinea_1_l521_3_)
((log_variable_definition
["AllocationsFamiliales";
"âge_minimum_alinéa_1_l521_3";
"input0"]
(embed_enfant)
enfant_))))))))
date_courante_))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
start_line=300; start_column=5;
end_line=302; end_column=21;
law_headings=["Article L521-3";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie législative";
"Code de la sécurité sociale"]}
(o_and
(o_not ((log_end_call
["AllocationsFamiliales";
"est_enfant_le_plus_âgé"]
((log_variable_definition
["AllocationsFamiliales";
"est_enfant_le_plus_âgé";
"output"] (embed_bool)
((log_begin_call
["AllocationsFamiliales";
"est_enfant_le_plus_âgé"]
est_enfant_le_plus_age_)
((log_variable_definition
["AllocationsFamiliales";
"est_enfant_le_plus_âgé";
"input0"] (embed_enfant)
enfant_))))))))
(o_lte_dat_dat
(o_add_dat_dur AbortOnRound
(enfant_.Enfant.date_de_naissance)
((log_end_call
["AllocationsFamiliales";
"âge_minimum_alinéa_1_l521_3"]
((log_variable_definition
["AllocationsFamiliales";
"âge_minimum_alinéa_1_l521_3";
"output"] (embed_duration)
((log_begin_call
["AllocationsFamiliales";
"âge_minimum_alinéa_1_l521_3"]
age_minimum_alinea_1_l521_3_)
((log_variable_definition
["AllocationsFamiliales";
"âge_minimum_alinéa_1_l521_3";
"input0"] (embed_enfant)
enfant_)))))))) date_courante_))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=117; start_column=11;
end_line=117; end_column=34;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} true))
(fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=117; start_column=11; end_line=117; end_column=34;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let complement_degressif_: money -> money = (log_variable_definition
["AllocationsFamiliales"; "complément_dégressif"] (unembeddable)
(fun (allocation_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=165; start_column=5;
end_line=166; end_column=65;
law_headings=["Article D521-1";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
(o_and
(o_gt_mon_mon ressources_menage_
plafond__i_d521_3_)
(o_lte_mon_mon ressources_menage_
(o_add_mon_mon plafond__i_d521_3_
(o_mult_mon_rat allocation_
(decimal_of_string "12.")))))))
(fun (_: unit) ->
o_mult_mon_rat
(o_sub_mon_mon
(o_add_mon_mon plafond__i_d521_3_
(o_mult_mon_rat allocation_
(decimal_of_string "12.")))
ressources_menage_)
(o_div_rat_rat (decimal_of_string "1.")
(decimal_of_string "12."))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=174; start_column=5;
end_line=175; end_column=65;
law_headings=["Article D521-1";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
(o_and
(o_gt_mon_mon ressources_menage_
plafond__i_i_d521_3_)
(o_lte_mon_mon ressources_menage_
(o_add_mon_mon plafond__i_i_d521_3_
(o_mult_mon_rat allocation_
(decimal_of_string "12.")))))))
(fun (_: unit) ->
o_mult_mon_rat
(o_sub_mon_mon
(o_add_mon_mon plafond__i_i_d521_3_
(o_mult_mon_rat allocation_
(decimal_of_string "12.")))
ressources_menage_)
(o_div_rat_rat (decimal_of_string "1.")
(decimal_of_string "12."))))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=181; start_column=14;
end_line=181; end_column=34;
law_headings=["Article D521-1";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
true))
(fun (_: unit) -> money_of_cents_string "0"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=130; start_column=11; end_line=130; end_column=31;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let montant_verse_forfaitaire_par_enfant_: money = (log_variable_definition
["AllocationsFamiliales"; "montant_versé_forfaitaire_par_enfant"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=221; start_column=5;
end_line=221; end_column=42;
law_headings=["Article D521-2";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
(o_lte_mon_mon ressources_menage_ plafond__i_d521_3_)))
(fun (_: unit) ->
o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.20234")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=235; start_column=5;
end_line=236; end_column=45;
law_headings=["Article D521-2";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
(o_and
(o_gt_mon_mon ressources_menage_
plafond__i_d521_3_)
(o_lte_mon_mon ressources_menage_
plafond__i_i_d521_3_))))
(fun (_: unit) ->
o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.10117")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=249; start_column=5;
end_line=249; end_column=42;
law_headings=["Article D521-2";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
(o_gt_mon_mon ressources_menage_
plafond__i_i_d521_3_)))
(fun (_: unit) ->
o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.05059")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=113; start_column=11; end_line=113; end_column=47;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let montant_initial_base_troisieme_enfant_et_plus_: money = (log_variable_definition
["AllocationsFamiliales";
"montant_initial_base_troisième_enfant_et_plus"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=43; start_column=14;
end_line=43; end_column=59;
law_headings=["Article D521-1";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
(o_lte_mon_mon ressources_menage_ plafond__i_d521_3_)))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "2")) then
(o_mult_mon_rat
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.41"))
(o_torat_int
(o_sub_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "2")))) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=84; start_column=14;
end_line=84; end_column=59;
law_headings=["Article D521-1";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
(o_and
(o_gt_mon_mon ressources_menage_
plafond__i_d521_3_)
(o_lte_mon_mon ressources_menage_
plafond__i_i_d521_3_))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "2")) then
(o_mult_mon_rat
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.205"))
(o_torat_int
(o_sub_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "2")))) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=122; start_column=14;
end_line=122; end_column=59;
law_headings=["Article D521-1";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
(o_gt_mon_mon ressources_menage_
plafond__i_i_d521_3_)))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "2")) then
(o_mult_mon_rat
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.1025"))
(o_torat_int
(o_sub_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "2")))) else
(money_of_cents_string "0")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=98; start_column=11; end_line=98; end_column=56;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let montant_initial_base_deuxieme_enfant_: money = (log_variable_definition
["AllocationsFamiliales"; "montant_initial_base_deuxième_enfant"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||]) (fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=350; start_column=5;
end_line=350; end_column=67;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2011) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2011) (12) (31)))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "1")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.232"))
else (money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=358; start_column=5;
end_line=358; end_column=67;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2012) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2012) (12) (31)))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "1")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.2379"))
else (money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=366; start_column=5;
end_line=366; end_column=67;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2013) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2013) (12) (31)))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "1")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.2437"))
else (money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=374; start_column=5;
end_line=374; end_column=67;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2014) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2014) (12) (31)))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "1")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.2496"))
else (money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=382; start_column=5;
end_line=382; end_column=67;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2015) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2015) (12) (31)))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "1")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.2555"))
else (money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=390; start_column=5;
end_line=390; end_column=67;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2016) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2016) (12) (31)))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "1")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.2613"))
else (money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=398; start_column=5;
end_line=398; end_column=67;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2017) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2017) (12) (31)))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "1")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.2672"))
else (money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=406; start_column=5;
end_line=406; end_column=67;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2018) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2018) (12) (31)))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "1")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.2804"))
else (money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=414; start_column=5;
end_line=414; end_column=67;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2019) (12) (31)))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "1")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.2936"))
else (money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=422; start_column=5;
end_line=422; end_column=67;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_and
(o_eq residence_
(Collectivite.Mayotte ()))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2020) (12) (31)))))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "1")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.3068"))
else (money_of_cents_string "0")))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=177; start_column=14;
end_line=177; end_column=50;
law_headings=["Article 7";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_eq residence_ (Collectivite.Mayotte ()))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "1")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.32")) else
(money_of_cents_string "0")))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=38; start_column=14;
end_line=38; end_column=50;
law_headings=["Article D521-1";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
(o_lte_mon_mon ressources_menage_ plafond__i_d521_3_)))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "1")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.32")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=79; start_column=14;
end_line=79; end_column=50;
law_headings=["Article D521-1";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
(o_and
(o_gt_mon_mon ressources_menage_
plafond__i_d521_3_)
(o_lte_mon_mon ressources_menage_
plafond__i_i_d521_3_))))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "1")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.16")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=117; start_column=14;
end_line=117; end_column=50;
law_headings=["Article D521-1";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
(o_gt_mon_mon ressources_menage_
plafond__i_i_d521_3_)))
(fun (_: unit) ->
if
(o_gt_int_int
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "1")) then
(o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.08")) else
(money_of_cents_string "0")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=97; start_column=11; end_line=97; end_column=47;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let rapport_enfants_total_moyen_: decimal = (log_variable_definition
["AllocationsFamiliales"; "rapport_enfants_total_moyen"] (embed_decimal)
(
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_R.catala_fr";
start_line=128; start_column=14;
end_line=128; end_column=41;
law_headings=["Article R521-3";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets en Conseil d'Etat";
"Code de la sécurité sociale"]}
true))
(fun (_: unit) ->
if
(o_eq nombre_total_enfants_
(decimal_of_string "0.")) then
(decimal_of_string "0.") else
(o_div_rat_rat nombre_moyen_enfants_
nombre_total_enfants_)))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=99; start_column=11; end_line=99; end_column=38;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let montant_initial_metropole_majoration_: Enfant.t -> money = (log_variable_definition
["AllocationsFamiliales"; "montant_initial_métropole_majoration"]
(unembeddable)
(fun (enfant_: Enfant.t) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=60; start_column=5;
end_line=60; end_column=38;
law_headings=["Article D521-1";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
(o_and
(o_lte_mon_mon ressources_menage_
plafond__i_d521_3_) ((log_end_call
["AllocationsFamiliales";
"droit_ouvert_majoration"]
((log_variable_definition
["AllocationsFamiliales";
"droit_ouvert_majoration"; "output"]
(embed_bool) ((log_begin_call
["AllocationsFamiliales";
"droit_ouvert_majoration"]
droit_ouvert_majoration_)
((log_variable_definition
["AllocationsFamiliales";
"droit_ouvert_majoration"; "input0"]
(embed_enfant) enfant_))))))))))
(fun (_: unit) ->
o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.16")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=101; start_column=5;
end_line=101; end_column=38;
law_headings=["Article D521-1";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
(o_and
(o_and
(o_gt_mon_mon ressources_menage_
plafond__i_d521_3_)
(o_lte_mon_mon ressources_menage_
plafond__i_i_d521_3_)) ((log_end_call
["AllocationsFamiliales";
"droit_ouvert_majoration"]
((log_variable_definition
["AllocationsFamiliales";
"droit_ouvert_majoration"; "output"]
(embed_bool) ((log_begin_call
["AllocationsFamiliales";
"droit_ouvert_majoration"]
droit_ouvert_majoration_)
((log_variable_definition
["AllocationsFamiliales";
"droit_ouvert_majoration"; "input0"]
(embed_enfant) enfant_))))))))))
(fun (_: unit) ->
o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.08")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=138; start_column=5;
end_line=138; end_column=38;
law_headings=["Article D521-1";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
(o_and
(o_gt_mon_mon ressources_menage_
plafond__i_i_d521_3_) ((log_end_call
["AllocationsFamiliales";
"droit_ouvert_majoration"]
((log_variable_definition
["AllocationsFamiliales";
"droit_ouvert_majoration"; "output"]
(embed_bool) ((log_begin_call
["AllocationsFamiliales";
"droit_ouvert_majoration"]
droit_ouvert_majoration_)
((log_variable_definition
["AllocationsFamiliales";
"droit_ouvert_majoration"; "input0"]
(embed_enfant) enfant_))))))))))
(fun (_: unit) ->
o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.04")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=28; start_column=5;
end_line=28; end_column=44;
law_headings=["Règles diverses"; "Épilogue"]}
(o_not ((log_end_call
["AllocationsFamiliales";
"droit_ouvert_majoration"]
((log_variable_definition
["AllocationsFamiliales";
"droit_ouvert_majoration"; "output"]
(embed_bool) ((log_begin_call
["AllocationsFamiliales";
"droit_ouvert_majoration"]
droit_ouvert_majoration_)
((log_variable_definition
["AllocationsFamiliales";
"droit_ouvert_majoration"; "input0"]
(embed_enfant) enfant_))))))))))
(fun (_: unit) -> money_of_cents_string "0"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=119; start_column=11; end_line=119; end_column=47;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let montant_verse_forfaitaire_: money = (log_variable_definition
["AllocationsFamiliales"; "montant_versé_forfaitaire"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=199; start_column=14;
end_line=199; end_column=39;
law_headings=["Article D521-2";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
true))
(fun (_: unit) ->
o_mult_mon_rat montant_verse_forfaitaire_par_enfant_
(o_torat_int
(o_length
(o_filter
(fun (enfant_: Enfant.t) -> (log_end_call
["AllocationsFamiliales";
"droit_ouvert_forfaitaire"]
((log_variable_definition
["AllocationsFamiliales";
"droit_ouvert_forfaitaire";
"output"] (embed_bool)
((log_begin_call
["AllocationsFamiliales";
"droit_ouvert_forfaitaire"]
droit_ouvert_forfaitaire_)
((log_variable_definition
["AllocationsFamiliales";
"droit_ouvert_forfaitaire";
"input0"] (embed_enfant)
enfant_))))))) enfants_a_charge_)))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=114; start_column=11; end_line=114; end_column=36;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let montant_initial_base_: money = (log_variable_definition
["AllocationsFamiliales"; "montant_initial_base"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=356; start_column=5;
end_line=357; end_column=69;
law_headings=["Article D755-5";
"Chapitre 5 : Prestations familiales et prestations assimilées";
"Titre 5 : Départements d'outre-mer";
"Livre 7 : Régimes divers - Dispositions diverses";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
(o_and
prestations_familiales_dot_regime_outre_mer_l751_1_
(o_eq
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "1")))))
(fun (_: unit) ->
montant_initial_base_premier_enfant_));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=151; start_column=24;
end_line=151; end_column=44;
law_headings=["Article 7";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
(o_eq residence_ (Collectivite.Mayotte ()))))
(fun (_: unit) ->
o_add_mon_mon
(o_add_mon_mon
(o_add_mon_mon
montant_initial_base_premier_enfant_
montant_initial_base_deuxieme_enfant_)
montant_initial_base_troisieme_enfant_mayotte_)
montant_initial_base_quatrieme_enfant_et_plus_mayotte_))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=18; start_column=14;
end_line=18; end_column=34;
law_headings=["Article D521-1";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
true))
(fun (_: unit) ->
o_add_mon_mon montant_initial_base_deuxieme_enfant_
montant_initial_base_troisieme_enfant_et_plus_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=95; start_column=11; end_line=95; end_column=31;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let montant_initial_majoration_: Enfant.t -> money = (log_variable_definition
["AllocationsFamiliales"; "montant_initial_majoration"] (unembeddable)
(fun (enfant_: Enfant.t) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=379; start_column=5;
end_line=383; end_column=55;
law_headings=["Article D755-5";
"Chapitre 5 : Prestations familiales et prestations assimilées";
"Titre 5 : Départements d'outre-mer";
"Livre 7 : Régimes divers - Dispositions diverses";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
(o_and ((log_end_call
["AllocationsFamiliales";
"droit_ouvert_majoration"]
((log_variable_definition
["AllocationsFamiliales";
"droit_ouvert_majoration"; "output"]
(embed_bool) ((log_begin_call
["AllocationsFamiliales";
"droit_ouvert_majoration"]
droit_ouvert_majoration_)
((log_variable_definition
["AllocationsFamiliales";
"droit_ouvert_majoration"; "input0"]
(embed_enfant) enfant_)))))))
(o_and
prestations_familiales_dot_regime_outre_mer_l751_1_
(o_and
(o_eq
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "1"))
(o_and
(o_lte_dat_dat
(o_add_dat_dur AbortOnRound
(enfant_.Enfant.date_de_naissance)
(duration_of_numbers (11) (0) (0)))
date_courante_)
(o_gt_dat_dat
(o_add_dat_dur AbortOnRound
(enfant_.Enfant.date_de_naissance)
(duration_of_numbers (16) (0) (0)))
date_courante_)))))))
(fun (_: unit) ->
o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.0369")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=389; start_column=5;
end_line=392; end_column=56;
law_headings=["Article D755-5";
"Chapitre 5 : Prestations familiales et prestations assimilées";
"Titre 5 : Départements d'outre-mer";
"Livre 7 : Régimes divers - Dispositions diverses";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
(o_and ((log_end_call
["AllocationsFamiliales";
"droit_ouvert_majoration"]
((log_variable_definition
["AllocationsFamiliales";
"droit_ouvert_majoration"; "output"]
(embed_bool) ((log_begin_call
["AllocationsFamiliales";
"droit_ouvert_majoration"]
droit_ouvert_majoration_)
((log_variable_definition
["AllocationsFamiliales";
"droit_ouvert_majoration"; "input0"]
(embed_enfant) enfant_)))))))
(o_and
prestations_familiales_dot_regime_outre_mer_l751_1_
(o_and
(o_eq
(o_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
(integer_of_string "1"))
(o_lte_dat_dat
(o_add_dat_dur AbortOnRound
(enfant_.Enfant.date_de_naissance)
(duration_of_numbers (16) (0) (0)))
date_courante_))))))
(fun (_: unit) ->
o_mult_mon_rat bmaf_dot_montant_
(decimal_of_string "0.0567")))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=22; start_column=14;
end_line=22; end_column=40;
law_headings=["Article D521-1";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
true))
(fun (_: unit) -> (log_end_call
["AllocationsFamiliales";
"montant_initial_métropole_majoration"]
((log_variable_definition
["AllocationsFamiliales";
"montant_initial_métropole_majoration";
"output"] (embed_money) ((log_begin_call
["AllocationsFamiliales";
"montant_initial_métropole_majoration"]
montant_initial_metropole_majoration_)
((log_variable_definition
["AllocationsFamiliales";
"montant_initial_métropole_majoration";
"input0"] (embed_enfant) enfant_))))))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=121; start_column=11; end_line=121; end_column=37;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let montant_verse_complement_pour_forfaitaire_: money = (log_variable_definition
["AllocationsFamiliales"; "montant_versé_complément_pour_forfaitaire"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=268; start_column=5;
end_line=270; end_column=41;
law_headings=["Article D521-2";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
(o_and
(o_gt_mon_mon ressources_menage_
plafond__i_d521_3_)
(o_lte_mon_mon ressources_menage_
(o_add_mon_mon plafond__i_d521_3_
(o_mult_mon_rat
montant_verse_forfaitaire_
(decimal_of_string "12.")))))))
(fun (_: unit) ->
o_mult_mon_rat
(o_sub_mon_mon
(o_add_mon_mon plafond__i_d521_3_
(o_mult_mon_rat
montant_verse_forfaitaire_
(decimal_of_string "12.")))
ressources_menage_)
(o_div_rat_rat (decimal_of_string "1.")
(decimal_of_string "12."))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=278; start_column=5;
end_line=280; end_column=40;
law_headings=["Article D521-2";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
(o_and
(o_gt_mon_mon ressources_menage_
plafond__i_i_d521_3_)
(o_lte_mon_mon ressources_menage_
(o_add_mon_mon plafond__i_i_d521_3_
(o_mult_mon_rat
montant_verse_forfaitaire_
(decimal_of_string "12.")))))))
(fun (_: unit) ->
o_mult_mon_rat
(o_sub_mon_mon
(o_add_mon_mon plafond__i_i_d521_3_
(o_mult_mon_rat
montant_verse_forfaitaire_
(decimal_of_string "12.")))
ressources_menage_)
(o_div_rat_rat (decimal_of_string "1.")
(decimal_of_string "12."))))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=286; start_column=14;
end_line=286; end_column=55;
law_headings=["Article D521-2";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
true)) (fun (_: unit) -> money_of_cents_string "0"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=133; start_column=11; end_line=133; end_column=52;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let montant_avec_garde_alternee_base_: money = (log_variable_definition
["AllocationsFamiliales"; "montant_avec_garde_alternée_base"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_R.catala_fr";
start_line=125; start_column=14;
end_line=125; end_column=46;
law_headings=["Article R521-3";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets en Conseil d'Etat";
"Code de la sécurité sociale"]}
true))
(fun (_: unit) ->
o_mult_mon_rat montant_initial_base_
rapport_enfants_total_moyen_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=102; start_column=11; end_line=102; end_column=43;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let montant_avec_garde_alternee_majoration_: Enfant.t -> money = (log_variable_definition
["AllocationsFamiliales"; "montant_avec_garde_alternée_majoration"]
(unembeddable)
(fun (enfant_: Enfant.t) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_R.catala_fr";
start_line=186; start_column=5;
end_line=186; end_column=43;
law_headings=["Article R521-4";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets en Conseil d'Etat";
"Code de la sécurité sociale"]}
true))
(fun (_: unit) ->
o_mult_mon_rat ((log_end_call
["AllocationsFamiliales";
"montant_initial_majoration"]
((log_variable_definition
["AllocationsFamiliales";
"montant_initial_majoration"; "output"]
(embed_money) ((log_begin_call
["AllocationsFamiliales";
"montant_initial_majoration"]
montant_initial_majoration_)
((log_variable_definition
["AllocationsFamiliales";
"montant_initial_majoration"; "input0"]
(embed_enfant) enfant_)))))))
(match ((log_end_call
["AllocationsFamiliales"; "prise_en_compte"]
((log_variable_definition
["AllocationsFamiliales"; "prise_en_compte";
"output"] (embed_prise_en_compte)
((log_begin_call
["AllocationsFamiliales"; "prise_en_compte"]
prise_en_compte_) ((log_variable_definition
["AllocationsFamiliales"; "prise_en_compte";
"input0"] (embed_enfant) enfant_)))))))
with
| PriseEnCompte.Complete _ ->
(decimal_of_string "1.")
| PriseEnCompte.Partagee _ ->
(decimal_of_string "0.5")
| PriseEnCompte.Zero _ ->
(decimal_of_string "0."))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=123; start_column=11; end_line=123; end_column=49;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let montant_verse_base_: money = (log_variable_definition
["AllocationsFamiliales"; "montant_versé_base"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=37; start_column=14;
end_line=37; end_column=32;
law_headings=["Règles diverses"; "Épilogue"]}
true))
(fun (_: unit) ->
if droit_ouvert_base_ then
montant_avec_garde_alternee_base_ else
(money_of_cents_string "0")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=103; start_column=11; end_line=103; end_column=29;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let montant_verse_majoration_: money = (log_variable_definition
["AllocationsFamiliales"; "montant_versé_majoration"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=39; start_column=14;
end_line=39; end_column=38;
law_headings=["Règles diverses"; "Épilogue"]}
true))
(fun (_: unit) ->
if droit_ouvert_base_ then
(o_reduce
(fun (sum1_: money) (sum2_: money) ->
o_add_mon_mon sum1_ sum2_)
(money_of_cents_string "0")
(o_map
(fun (enfant_: Enfant.t) -> (log_end_call
["AllocationsFamiliales";
"montant_avec_garde_alternée_majoration"]
((log_variable_definition
["AllocationsFamiliales";
"montant_avec_garde_alternée_majoration";
"output"] (embed_money)
((log_begin_call
["AllocationsFamiliales";
"montant_avec_garde_alternée_majoration"]
montant_avec_garde_alternee_majoration_)
((log_variable_definition
["AllocationsFamiliales";
"montant_avec_garde_alternée_majoration";
"input0"] (embed_enfant) enfant_)))))))
enfants_a_charge_)) else
(money_of_cents_string "0")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=125; start_column=11; end_line=125; end_column=35;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let montant_base_complement_pour_base_et_majoration_: money = (log_variable_definition
["AllocationsFamiliales";
"montant_base_complément_pour_base_et_majoration"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=189; start_column=14;
end_line=189; end_column=61;
law_headings=["Article D521-1";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
true))
(fun (_: unit) ->
o_add_mon_mon montant_verse_base_
montant_verse_majoration_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=129; start_column=11; end_line=129; end_column=58;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let montant_verse_complement_pour_base_et_majoration_: money = (log_variable_definition
["AllocationsFamiliales";
"montant_versé_complément_pour_base_et_majoration"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=183; start_column=14;
end_line=183; end_column=62;
law_headings=["Article D521-1";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
true))
(fun (_: unit) ->
if droit_ouvert_complement_ then
((log_end_call
["AllocationsFamiliales";
"complément_dégressif"]
((log_variable_definition
["AllocationsFamiliales";
"complément_dégressif"; "output"]
(embed_money) ((log_begin_call
["AllocationsFamiliales";
"complément_dégressif"]
complement_degressif_) ((log_variable_definition
["AllocationsFamiliales";
"complément_dégressif"; "input0"]
(embed_money)
montant_base_complement_pour_base_et_majoration_)))))))
else (money_of_cents_string "0")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=132; start_column=11; end_line=132; end_column=59;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let montant_verse_: money = (log_variable_definition
["AllocationsFamiliales"; "montant_versé"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=45; start_column=14;
end_line=45; end_column=27;
law_headings=["Règles diverses"; "Épilogue"]}
true))
(fun (_: unit) ->
if droit_ouvert_base_ then
(o_add_mon_mon
(o_add_mon_mon
(o_add_mon_mon
(o_add_mon_mon montant_verse_base_
montant_verse_majoration_)
montant_verse_forfaitaire_)
montant_verse_complement_pour_base_et_majoration_)
montant_verse_complement_pour_forfaitaire_)
else (money_of_cents_string "0")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=91; start_column=12; end_line=91; end_column=25;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let _: unit = if (
try
(o_or personne_charge_effective_permanente_est_parent_
(o_and
(o_not
personne_charge_effective_permanente_est_parent_)
personne_charge_effective_permanente_remplit_titre__i_))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
start_line=231; start_column=5;
end_line=235; end_column=6;
law_headings=["Article L521-2";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie législative";
"Code de la sécurité sociale"]})))
then () else
raise (AssertionFailed {filename = "examples/allocations_familiales/securite_sociale_L.catala_fr";
start_line=231; start_column=5;
end_line=235; end_column=6;
law_headings=["Article L521-2";
"Chapitre 1er : Allocations familiales";
"Titre 2 : Prestations générales d'entretien";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie législative";
"Code de la sécurité sociale"]}) in
{AllocationsFamiliales.versement = versement_;
AllocationsFamiliales.montant_verse = montant_verse_}
let interface_allocations_familiales (interface_allocations_familiales_in: InterfaceAllocationsFamilialesIn.t) : InterfaceAllocationsFamiliales.t =
let i_date_courante_: date = interface_allocations_familiales_in.InterfaceAllocationsFamilialesIn.i_date_courante_in in
let i_enfants_: EnfantEntree.t array = interface_allocations_familiales_in.InterfaceAllocationsFamilialesIn.i_enfants_in in
let i_ressources_menage_: money = interface_allocations_familiales_in.InterfaceAllocationsFamilialesIn.i_ressources_menage_in in
let i_residence_: Collectivite.t = interface_allocations_familiales_in.InterfaceAllocationsFamilialesIn.i_residence_in in
let i_personne_charge_effective_permanente_est_parent_: bool = interface_allocations_familiales_in.InterfaceAllocationsFamilialesIn.i_personne_charge_effective_permanente_est_parent_in in
let i_personne_charge_effective_permanente_remplit_titre__i_: bool = interface_allocations_familiales_in.InterfaceAllocationsFamilialesIn.i_personne_charge_effective_permanente_remplit_titre_I_in in
let i_avait_enfant_a_charge_avant_1er_janvier_2012_: bool = interface_allocations_familiales_in.InterfaceAllocationsFamilialesIn.i_avait_enfant_a_charge_avant_1er_janvier_2012_in in
let enfants_a_charge_: Enfant.t array = (log_variable_definition
["InterfaceAllocationsFamiliales"; "enfants_à_charge"]
(embed_array (embed_enfant)) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=117; start_column=14;
end_line=117; end_column=30;
law_headings=["Article L131-1";
"Interface du programme";
"Épilogue"]} true))
(fun (_: unit) ->
o_map
(fun (enfant_: EnfantEntree.t) ->
{Enfant.identifiant =
(enfant_.EnfantEntree.d_identifiant);
Enfant.obligation_scolaire =
( if
(o_gte_dat_dat
(o_add_dat_dur AbortOnRound
(enfant_.EnfantEntree.d_date_de_naissance)
(duration_of_numbers (3) (0) (0)))
i_date_courante_) then
(SituationObligationScolaire.Avant ())
else
( if
(o_gte_dat_dat
(o_add_dat_dur AbortOnRound
(enfant_.EnfantEntree.d_date_de_naissance)
(duration_of_numbers (16) (0) (0)))
i_date_courante_) then
(SituationObligationScolaire.Pendant
()) else
(SituationObligationScolaire.Apres
())));
Enfant.remuneration_mensuelle =
(enfant_.EnfantEntree.d_remuneration_mensuelle);
Enfant.date_de_naissance =
(enfant_.EnfantEntree.d_date_de_naissance);
Enfant.prise_en_charge =
(enfant_.EnfantEntree.d_prise_en_charge);
Enfant.a_deja_ouvert_droit_aux_allocations_familiales =
(enfant_.EnfantEntree.d_a_deja_ouvert_droit_aux_allocations_familiales);
Enfant.beneficie_titre_personnel_aide_personnelle_logement =
(enfant_.EnfantEntree.d_beneficie_titre_personnel_aide_personnelle_logement)})
i_enfants_))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=76; start_column=11; end_line=76; end_column=27;
law_headings=["Interface du programme"; "Épilogue"]})))) in
let allocations_familiales_dot_personne_charge_effective_permanente_est_parent_: bool =
try ((log_variable_definition
["InterfaceAllocationsFamiliales";
"allocations_familiales.personne_charge_effective_permanente_est_parent"]
(embed_bool)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=93; start_column=18;
end_line=93; end_column=67;
law_headings=["Interface du programme";
"Épilogue"]}
i_personne_charge_effective_permanente_est_parent_))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=92; start_column=5;
end_line=92; end_column=75;
law_headings=["Interface du programme";
"Épilogue"]} true))
(fun (_: unit) -> false))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=92; start_column=5; end_line=92; end_column=75;
law_headings=["Interface du programme"; "Épilogue"]})) in
let allocations_familiales_dot_personne_charge_effective_permanente_remplit_titre__i_: bool =
try ((log_variable_definition
["InterfaceAllocationsFamiliales";
"allocations_familiales.personne_charge_effective_permanente_remplit_titre_I"]
(embed_bool)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=97; start_column=18;
end_line=97; end_column=72;
law_headings=["Interface du programme";
"Épilogue"]}
i_personne_charge_effective_permanente_remplit_titre__i_))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=96; start_column=5;
end_line=96; end_column=80;
law_headings=["Interface du programme";
"Épilogue"]} true))
(fun (_: unit) -> false))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=96; start_column=5; end_line=96; end_column=80;
law_headings=["Interface du programme"; "Épilogue"]})) in
let allocations_familiales_dot_ressources_menage_: money =
try ((log_variable_definition
["InterfaceAllocationsFamiliales";
"allocations_familiales.ressources_ménage"] (embed_money)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=88; start_column=14;
end_line=88; end_column=54;
law_headings=["Interface du programme";
"Épilogue"]} true))
(fun (_: unit) -> i_ressources_menage_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=88; start_column=14; end_line=88; end_column=54;
law_headings=["Interface du programme"; "Épilogue"]})) in
let allocations_familiales_dot_residence_: Collectivite.t =
try ((log_variable_definition
["InterfaceAllocationsFamiliales"; "allocations_familiales.résidence"]
(embed_collectivite)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=89; start_column=14;
end_line=89; end_column=46;
law_headings=["Interface du programme";
"Épilogue"]} true))
(fun (_: unit) -> i_residence_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=89; start_column=14; end_line=89; end_column=46;
law_headings=["Interface du programme"; "Épilogue"]})) in
let allocations_familiales_dot_date_courante_: date =
try ((log_variable_definition
["InterfaceAllocationsFamiliales";
"allocations_familiales.date_courante"] (embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=86; start_column=14;
end_line=86; end_column=50;
law_headings=["Interface du programme";
"Épilogue"]} true))
(fun (_: unit) -> i_date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=86; start_column=14; end_line=86; end_column=50;
law_headings=["Interface du programme"; "Épilogue"]})) in
let allocations_familiales_dot_enfants_a_charge_: Enfant.t array =
try ((log_variable_definition
["InterfaceAllocationsFamiliales";
"allocations_familiales.enfants_à_charge"]
(embed_array (embed_enfant))
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=87; start_column=14;
end_line=87; end_column=53;
law_headings=["Interface du programme";
"Épilogue"]} true))
(fun (_: unit) -> enfants_a_charge_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=87; start_column=14; end_line=87; end_column=53;
law_headings=["Interface du programme"; "Épilogue"]})) in
let allocations_familiales_dot_avait_enfant_a_charge_avant_1er_janvier_2012_: bool =
try ((log_variable_definition
["InterfaceAllocationsFamiliales";
"allocations_familiales.avait_enfant_à_charge_avant_1er_janvier_2012"]
(embed_bool)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=101; start_column=18;
end_line=101; end_column=64;
law_headings=["Interface du programme";
"Épilogue"]}
i_avait_enfant_a_charge_avant_1er_janvier_2012_))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=100; start_column=5;
end_line=100; end_column=72;
law_headings=["Interface du programme";
"Épilogue"]} true))
(fun (_: unit) -> false))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=100; start_column=5; end_line=100; end_column=72;
law_headings=["Interface du programme"; "Épilogue"]})) in
let result_: AllocationsFamiliales.t = (log_end_call
["InterfaceAllocationsFamiliales"; "allocations_familiales";
"AllocationsFamiliales"] ((log_begin_call
["InterfaceAllocationsFamiliales"; "allocations_familiales";
"AllocationsFamiliales"] allocations_familiales)
({AllocationsFamilialesIn.personne_charge_effective_permanente_est_parent_in =
allocations_familiales_dot_personne_charge_effective_permanente_est_parent_;
AllocationsFamilialesIn.personne_charge_effective_permanente_remplit_titre_I_in =
allocations_familiales_dot_personne_charge_effective_permanente_remplit_titre__i_;
AllocationsFamilialesIn.ressources_menage_in =
allocations_familiales_dot_ressources_menage_;
AllocationsFamilialesIn.residence_in =
allocations_familiales_dot_residence_;
AllocationsFamilialesIn.date_courante_in =
allocations_familiales_dot_date_courante_;
AllocationsFamilialesIn.enfants_a_charge_in =
allocations_familiales_dot_enfants_a_charge_;
AllocationsFamilialesIn.avait_enfant_a_charge_avant_1er_janvier_2012_in =
allocations_familiales_dot_avait_enfant_a_charge_avant_1er_janvier_2012_}))) in
let allocations_familiales_dot_versement_: Enfant.t ->
VersementAllocations.t = result_.AllocationsFamiliales.versement in
let allocations_familiales_dot_montant_verse_: money = result_.AllocationsFamiliales.montant_verse in
let i_montant_verse_: money = (log_variable_definition
["InterfaceAllocationsFamiliales"; "i_montant_versé"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=90; start_column=14;
end_line=90; end_column=29;
law_headings=["Interface du programme";
"Épilogue"]} true))
(fun (_: unit) ->
allocations_familiales_dot_montant_verse_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=80; start_column=12; end_line=80; end_column=27;
law_headings=["Interface du programme"; "Épilogue"]})))) in
{InterfaceAllocationsFamiliales.i_montant_verse = i_montant_verse_}