catala/french_law/ocaml/law_source/allocations_familiales.ml
Louis Gesbert d93b699a4c Forward types in the Expr.make_* constructors
Also add some safeguards against bad propagation of types (e.g. checking the
arrow type of functions upon application); partly disabled at the moment since
they don't pass yet but that'll be further work.
2022-10-04 14:50:37 +02:00

5154 lines
314 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 ElementPrestationsFamiliales = struct
type t =
| PrestationAccueilJeuneEnfant of unit
| AllocationsFamiliales of unit
| ComplementFamilial of unit
| AllocationLogement of unit
| AllocationEducationEnfantHandicape of unit
| AllocationSoutienFamilial of unit
| AllocationRentreeScolaire of unit
| AllocationJournalierePresenceParentale of unit
end
let embed_element_prestations_familiales (x: ElementPrestationsFamiliales.t)
: runtime_value =
Enum(["ÉlémentPrestationsFamiliales"],
match x with
| PrestationAccueilJeuneEnfant x ->
("PrestationAccueilJeuneEnfant", embed_unit x)
| AllocationsFamiliales x -> ("AllocationsFamiliales", embed_unit x)
| ComplementFamilial x -> ("ComplémentFamilial", embed_unit x)
| AllocationLogement x -> ("AllocationLogement", embed_unit x)
| AllocationEducationEnfantHandicape x ->
("AllocationÉducationEnfantHandicapé", embed_unit x)
| AllocationSoutienFamilial x ->
("AllocationSoutienFamilial", embed_unit x)
| AllocationRentreeScolaire x ->
("AllocationRentréeScolaire", embed_unit x)
| AllocationJournalierePresenceParentale x ->
("AllocationJournalièrePresenceParentale", 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 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 PrestationsFamilialesOut = struct
type t = {
droit_ouvert_out: Enfant.t -> bool;
conditions_hors_age_out: Enfant.t -> bool;
age_l512_3_2_out: duration;
regime_outre_mer_l751_1_out: bool
}
end
let embed_prestations_familiales_out (x: PrestationsFamilialesOut.t) : runtime_value =
Struct(["PrestationsFamiliales_out"],
[("droit_ouvert_out", unembeddable
x.PrestationsFamilialesOut.droit_ouvert_out);
("conditions_hors_âge_out", unembeddable
x.PrestationsFamilialesOut.conditions_hors_age_out);
("âge_l512_3_2_out", embed_duration
x.PrestationsFamilialesOut.age_l512_3_2_out);
("régime_outre_mer_l751_1_out", embed_bool
x.PrestationsFamilialesOut.regime_outre_mer_l751_1_out)])
module PrestationsFamilialesIn = struct
type t = {
date_courante_in: date;
prestation_courante_in: ElementPrestationsFamiliales.t;
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);
("prestation_courante_in", embed_element_prestations_familiales
x.PrestationsFamilialesIn.prestation_courante_in);
("résidence_in", embed_collectivite
x.PrestationsFamilialesIn.residence_in)])
module AllocationFamilialesAvril2008Out = struct
type t = {age_minimum_alinea_1_l521_3_out: duration}
end
let embed_allocation_familiales_avril2008_out (x: AllocationFamilialesAvril2008Out.t) : runtime_value =
Struct(["AllocationFamilialesAvril2008_out"],
[("âge_minimum_alinéa_1_l521_3_out", embed_duration
x.AllocationFamilialesAvril2008Out.age_minimum_alinea_1_l521_3_out)])
module AllocationFamilialesAvril2008In = struct
type t = unit
end
let embed_allocation_familiales_avril2008_in (_: AllocationFamilialesAvril2008In.t) : runtime_value = Unit
module EnfantLePlusAgeOut = struct
type t = {le_plus_age_out: Enfant.t}
end
let embed_enfant_le_plus_age_out (x: EnfantLePlusAgeOut.t) : runtime_value =
Struct(["EnfantLePlusÂgé_out"],
[("le_plus_âgé_out", embed_enfant x.EnfantLePlusAgeOut.le_plus_age_out)])
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 AllocationsFamilialesOut = struct
type t = {montant_verse_out: money}
end
let embed_allocations_familiales_out (x: AllocationsFamilialesOut.t) : runtime_value =
Struct(["AllocationsFamiliales_out"],
[("montant_versé_out", embed_money
x.AllocationsFamilialesOut.montant_verse_out)])
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 SmicOut = struct
type t = {brut_horaire_out: money}
end
let embed_smic_out (x: SmicOut.t) : runtime_value = Struct(["Smic_out"],
[("brut_horaire_out", embed_money x.SmicOut.brut_horaire_out)])
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 BaseMensuelleAllocationsFamilialesOut = struct
type t = {montant_out: money}
end
let embed_base_mensuelle_allocations_familiales_out (x: BaseMensuelleAllocationsFamilialesOut.t) : runtime_value =
Struct(["BaseMensuelleAllocationsFamiliales_out"],
[("montant_out", embed_money
x.BaseMensuelleAllocationsFamilialesOut.montant_out)])
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 InterfaceAllocationsFamilialesOut = struct
type t = {i_montant_verse_out: money}
end
let embed_interface_allocations_familiales_out (x: InterfaceAllocationsFamilialesOut.t) : runtime_value =
Struct(["InterfaceAllocationsFamiliales_out"],
[("i_montant_versé_out", embed_money
x.InterfaceAllocationsFamilialesOut.i_montant_verse_out)])
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) : AllocationFamilialesAvril2008Out.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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=76; start_column=10; end_line=76; end_column=37;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]} ([||])
(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)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=76; start_column=10; end_line=76; end_column=37;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
{AllocationFamilialesAvril2008Out.age_minimum_alinea_1_l521_3_out =
age_minimum_alinea_1_l521_3_}
let enfant_le_plus_age (enfant_le_plus_age_in: EnfantLePlusAgeIn.t) : EnfantLePlusAgeOut.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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=80; start_column=10; end_line=80; end_column=21;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]} ([||])
(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) ->
(let predicate_ : _ =
(fun (potentiel_plus_age_: _) ->
potentiel_plus_age_.Enfant.date_de_naissance)
in
(Array.fold_left
(fun (acc_: _) (item_: _) ->
if ((predicate_ acc_) <@ (predicate_ item_)) then
acc_ else item_)
{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_))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=80; start_column=10; end_line=80; end_column=21;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
{EnfantLePlusAgeOut.le_plus_age_out = le_plus_age_}
let smic (smic_in: SmicIn.t) : SmicOut.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 = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=11; start_column=10; end_line=11; end_column=22;
law_headings=["Prologue";
"Montant du salaire minimum de croissance"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=11; start_column=10;
end_line=11; end_column=22;
law_headings=["Prologue";
"Montant du salaire minimum de croissance"]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=29; start_column=5;
end_line=38; 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"]}
((date_courante_ >=@ (date_of_numbers (2019) (1) (1))) &&
((date_courante_ <=@
(date_of_numbers (2019) (12) (31))) &&
((residence_ = (Collectivite.Metropole ())) ||
((residence_ = (Collectivite.Guadeloupe ())) ||
((residence_ = (Collectivite.Guyane ())) ||
((residence_ =
(Collectivite.Martinique ())) ||
((residence_ =
(Collectivite.LaReunion ())) ||
((residence_ =
(Collectivite.SaintBarthelemy ()))
||
((residence_ =
(Collectivite.SaintMartin ()))
||
(residence_ =
(Collectivite.SaintPierreEtMiquelon
())))))))))))))
(fun (_: unit) -> money_of_cents_string "1003"));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=11; start_column=10;
end_line=11; end_column=22;
law_headings=["Prologue";
"Montant du salaire minimum de croissance"]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=47; start_column=5;
end_line=49; 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"]}
((date_courante_ >=@ (date_of_numbers (2019) (1) (1))) &&
((date_courante_ <=@
(date_of_numbers (2019) (12) (31))) &&
(residence_ = (Collectivite.Mayotte ()))))))
(fun (_: unit) -> money_of_cents_string "757"));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=11; start_column=10;
end_line=11; end_column=22;
law_headings=["Prologue";
"Montant du salaire minimum de croissance"]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=68; start_column=5;
end_line=77; 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"]}
((date_courante_ >=@ (date_of_numbers (2020) (1) (1))) &&
((date_courante_ <=@
(date_of_numbers (2020) (12) (31))) &&
((residence_ = (Collectivite.Metropole ())) ||
((residence_ = (Collectivite.Guadeloupe ())) ||
((residence_ = (Collectivite.Guyane ())) ||
((residence_ =
(Collectivite.Martinique ())) ||
((residence_ =
(Collectivite.LaReunion ())) ||
((residence_ =
(Collectivite.SaintBarthelemy ()))
||
((residence_ =
(Collectivite.SaintMartin ()))
||
(residence_ =
(Collectivite.SaintPierreEtMiquelon
())))))))))))))
(fun (_: unit) -> money_of_cents_string "1015"));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=11; start_column=10;
end_line=11; end_column=22;
law_headings=["Prologue";
"Montant du salaire minimum de croissance"]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=86; start_column=5;
end_line=88; 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"]}
((date_courante_ >=@ (date_of_numbers (2020) (1) (1))) &&
((date_courante_ <=@
(date_of_numbers (2020) (12) (31))) &&
(residence_ = (Collectivite.Mayotte ()))))))
(fun (_: unit) -> money_of_cents_string "766"));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=11; start_column=10;
end_line=11; end_column=22;
law_headings=["Prologue";
"Montant du salaire minimum de croissance"]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=107; start_column=5;
end_line=116; 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"]}
((date_courante_ >=@ (date_of_numbers (2021) (1) (1))) &&
((date_courante_ <=@
(date_of_numbers (2021) (12) (31))) &&
((residence_ = (Collectivite.Metropole ())) ||
((residence_ = (Collectivite.Guadeloupe ())) ||
((residence_ = (Collectivite.Guyane ())) ||
((residence_ =
(Collectivite.Martinique ())) ||
((residence_ =
(Collectivite.LaReunion ())) ||
((residence_ =
(Collectivite.SaintBarthelemy ()))
||
((residence_ =
(Collectivite.SaintMartin ()))
||
(residence_ =
(Collectivite.SaintPierreEtMiquelon
())))))))))))))
(fun (_: unit) -> money_of_cents_string "1025"));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=11; start_column=10;
end_line=11; end_column=22;
law_headings=["Prologue";
"Montant du salaire minimum de croissance"]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=125; start_column=5;
end_line=127; 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"]}
((date_courante_ >=@ (date_of_numbers (2021) (1) (1))) &&
((date_courante_ <=@
(date_of_numbers (2021) (12) (31))) &&
(residence_ = (Collectivite.Mayotte ()))))))
(fun (_: unit) -> money_of_cents_string "774"));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=11; start_column=10;
end_line=11; end_column=22;
law_headings=["Prologue";
"Montant du salaire minimum de croissance"]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=146; start_column=5;
end_line=155; 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"]}
((date_courante_ >=@ (date_of_numbers (2022) (1) (1))) &&
((date_courante_ <=@ (date_of_numbers (2022) (4) (30)))
&&
((residence_ = (Collectivite.Metropole ())) ||
((residence_ = (Collectivite.Guadeloupe ())) ||
((residence_ = (Collectivite.Guyane ())) ||
((residence_ =
(Collectivite.Martinique ())) ||
((residence_ =
(Collectivite.LaReunion ())) ||
((residence_ =
(Collectivite.SaintBarthelemy ()))
||
((residence_ =
(Collectivite.SaintMartin ()))
||
(residence_ =
(Collectivite.SaintPierreEtMiquelon
())))))))))))))
(fun (_: unit) -> money_of_cents_string "1057"));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=11; start_column=10;
end_line=11; end_column=22;
law_headings=["Prologue";
"Montant du salaire minimum de croissance"]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=165; start_column=5;
end_line=167; 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"]}
((date_courante_ >=@ (date_of_numbers (2022) (1) (1))) &&
((date_courante_ <=@ (date_of_numbers (2022) (4) (30)))
&& (residence_ = (Collectivite.Mayotte ()))))))
(fun (_: unit) -> money_of_cents_string "798"));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=11; start_column=10;
end_line=11; end_column=22;
law_headings=["Prologue";
"Montant du salaire minimum de croissance"]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=186; start_column=5;
end_line=195; 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"]}
((date_courante_ >=@ (date_of_numbers (2022) (5) (1))) &&
((date_courante_ <=@
(date_of_numbers (2022) (12) (31))) &&
((residence_ = (Collectivite.Metropole ())) ||
((residence_ = (Collectivite.Guadeloupe ())) ||
((residence_ = (Collectivite.Guyane ())) ||
((residence_ =
(Collectivite.Martinique ())) ||
((residence_ =
(Collectivite.LaReunion ())) ||
((residence_ =
(Collectivite.SaintBarthelemy ()))
||
((residence_ =
(Collectivite.SaintMartin ()))
||
(residence_ =
(Collectivite.SaintPierreEtMiquelon
())))))))))))))
(fun (_: unit) -> money_of_cents_string "1085"));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=11; start_column=10;
end_line=11; end_column=22;
law_headings=["Prologue";
"Montant du salaire minimum de croissance"]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=204; start_column=5;
end_line=206; 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"]}
((date_courante_ >=@ (date_of_numbers (2022) (5) (1))) &&
((date_courante_ <=@
(date_of_numbers (2022) (12) (31))) &&
(residence_ = (Collectivite.Mayotte ()))))))
(fun (_: unit) -> money_of_cents_string "819"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/../smic/smic.catala_fr";
start_line=11; start_column=10; end_line=11; end_column=22;
law_headings=["Prologue"; "Montant du salaire minimum de croissance"]})))) in
{SmicOut.brut_horaire_out = brut_horaire_}
let base_mensuelle_allocations_familiales (base_mensuelle_allocations_familiales_in: BaseMensuelleAllocationsFamilialesIn.t) : BaseMensuelleAllocationsFamilialesOut.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 = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
start_line=6; start_column=10; end_line=6; end_column=17;
law_headings=["Montant de la base mensuelle des allocations familiales"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
start_line=6; start_column=10; end_line=6; end_column=17;
law_headings=["Montant de la base mensuelle des allocations familiales"]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
start_line=28; start_column=5;
end_line=29; end_column=34;
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"]}
((date_courante_ >=@ (date_of_numbers (2019) (4) (1))) &&
(date_courante_ <@ (date_of_numbers (2020) (4) (1))))))
(fun (_: unit) -> money_of_cents_string "41316"));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
start_line=6; start_column=10; end_line=6; end_column=17;
law_headings=["Montant de la base mensuelle des allocations familiales"]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
start_line=48; start_column=5;
end_line=49; end_column=34;
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"]}
((date_courante_ >=@ (date_of_numbers (2020) (4) (1))) &&
(date_courante_ <@ (date_of_numbers (2021) (4) (1))))))
(fun (_: unit) -> money_of_cents_string "41440"));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
start_line=6; start_column=10; end_line=6; end_column=17;
law_headings=["Montant de la base mensuelle des allocations familiales"]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
start_line=64; start_column=5;
end_line=65; end_column=34;
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"]}
((date_courante_ >=@ (date_of_numbers (2021) (4) (1))) &&
(date_courante_ <@ (date_of_numbers (2022) (4) (1))))))
(fun (_: unit) -> money_of_cents_string "41481"));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
start_line=6; start_column=10; end_line=6; end_column=17;
law_headings=["Montant de la base mensuelle des allocations familiales"]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
start_line=82; start_column=5;
end_line=83; 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"]}
((date_courante_ >=@ (date_of_numbers (2022) (4) (1))) &&
(date_courante_ <@ (date_of_numbers (2023) (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=10; end_line=6; end_column=17;
law_headings=["Montant de la base mensuelle des allocations familiales"]})))) in
{BaseMensuelleAllocationsFamilialesOut.montant_out = montant_}
let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t) : PrestationsFamilialesOut.t =
let date_courante_: date = prestations_familiales_in.PrestationsFamilialesIn.date_courante_in in
let prestation_courante_: ElementPrestationsFamiliales.t = prestations_familiales_in.PrestationsFamilialesIn.prestation_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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=60; start_column=10; end_line=60; end_column=22;
law_headings=["Prestations familiales"; "Champs d'applications";
"Prologue"]} ([||])
(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)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=60; start_column=10; end_line=60; end_column=22;
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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=69; start_column=14; end_line=69; end_column=32;
law_headings=["Prestations familiales"; "Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=69; start_column=14; end_line=69; end_column=32;
law_headings=["Prestations familiales";
"Champs d'applications"; "Prologue"]} true))
(fun (_: unit) -> date_courante_))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=69; start_column=14; end_line=69; 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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=68; start_column=14; end_line=68; end_column=28;
law_headings=["Prestations familiales"; "Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=68; start_column=14; end_line=68; end_column=28;
law_headings=["Prestations familiales";
"Champs d'applications"; "Prologue"]} true))
(fun (_: unit) -> residence_))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=68; start_column=14; end_line=68; end_column=28;
law_headings=["Prestations familiales"; "Champs d'applications";
"Prologue"]})) in
let result_: SmicOut.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_.SmicOut.brut_horaire_out in
let regime_outre_mer_l751_1_: bool = (log_variable_definition
["PrestationsFamiliales"; "régime_outre_mer_l751_1"] (embed_bool) (
try
(handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=61; start_column=10; end_line=61; end_column=33;
law_headings=["Prestations familiales"; "Champs d'applications";
"Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=61; start_column=10;
end_line=61; end_column=33;
law_headings=["Prestations familiales";
"Champs d'applications"; "Prologue"]}
([||])
(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"]}
((residence_ = (Collectivite.Guadeloupe ())) ||
((residence_ = (Collectivite.Guyane ())) ||
((residence_ = (Collectivite.Martinique ())) ||
((residence_ = (Collectivite.LaReunion ())) ||
((residence_ =
(Collectivite.SaintBarthelemy ())) ||
(residence_ =
(Collectivite.SaintMartin ())))))))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=61; start_column=10; end_line=61; end_column=33;
law_headings=["Prestations familiales";
"Champs d'applications"; "Prologue"]} true))
(fun (_: unit) -> false))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=61; start_column=10; end_line=61; end_column=33;
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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=59; start_column=11; end_line=59; end_column=27;
law_headings=["Prestations familiales"; "Champs d'applications";
"Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=59; start_column=11;
end_line=59; end_column=27;
law_headings=["Prestations familiales";
"Champs d'applications"; "Prologue"]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_R.catala_fr";
start_line=217; start_column=18;
end_line=217; 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) ->
(smic_dot_brut_horaire_ *$ (decimal_of_string "0.55")) *$
(decimal_of_string "169.")))|])
(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) ->
(smic_dot_brut_horaire_ *$ (decimal_of_string "0.55")) *$
(decimal_of_string "169.")))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=59; start_column=11; end_line=59; 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) (
try
(fun (param_: Enfant.t) ->
try
(handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=58; start_column=10; end_line=58; end_column=29;
law_headings=["Prestations familiales";
"Champs d'applications"; "Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=58; start_column=10;
end_line=58; end_column=29;
law_headings=["Prestations familiales";
"Champs d'applications"; "Prologue"]}
([||])
(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=57;
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"]}
(((match (param_.Enfant.obligation_scolaire)
with
| SituationObligationScolaire.Avant _ -> true
| SituationObligationScolaire.Pendant _ -> false
| SituationObligationScolaire.Apres _ -> false)
||
((match (param_.Enfant.obligation_scolaire)
with
| SituationObligationScolaire.Avant _ -> false
| SituationObligationScolaire.Pendant _ ->
true
| SituationObligationScolaire.Apres _ -> false)
||
(match (param_.Enfant.obligation_scolaire)
with
| SituationObligationScolaire.Avant _ ->
false
| SituationObligationScolaire.Pendant _ ->
false
| SituationObligationScolaire.Apres _ ->
true))) &&
((param_.Enfant.remuneration_mensuelle) <=$
plafond_l512_3_2_)))) (fun (_: unit) -> true))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=58; start_column=10;
end_line=58; end_column=29;
law_headings=["Prestations familiales";
"Champs d'applications"; "Prologue"]} true))
(fun (_: unit) -> false))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=58; start_column=10; end_line=58; end_column=29;
law_headings=["Prestations familiales"; "Champs d'applications";
"Prologue"]})))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=58; start_column=10; end_line=58; end_column=29;
law_headings=["Prestations familiales"; "Champs d'applications";
"Prologue"]})))) in
let droit_ouvert_: Enfant.t -> bool = (log_variable_definition
["PrestationsFamiliales"; "droit_ouvert"] (unembeddable) (
try
(fun (param_: Enfant.t) ->
try
(handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=57; start_column=10; end_line=57; end_column=22;
law_headings=["Prestations familiales";
"Champs d'applications"; "Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=57; start_column=10;
end_line=57; end_column=22;
law_headings=["Prestations familiales";
"Champs d'applications"; "Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=57; start_column=10;
end_line=57; end_column=22;
law_headings=["Prestations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(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"]}
(param_.Enfant.beneficie_titre_personnel_aide_personnelle_logement)))
(fun (_: unit) -> false))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=57; start_column=10;
end_line=57; end_column=22;
law_headings=["Prestations familiales";
"Champs d'applications";
"Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=57; start_column=10;
end_line=57; end_column=22;
law_headings=["Prestations familiales";
"Champs d'applications";
"Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=57; start_column=10;
end_line=57; end_column=22;
law_headings=["Prestations familiales";
"Champs d'applications";
"Prologue"]}
([||])
(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=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"]}
((match
(param_.Enfant.obligation_scolaire)
with
| SituationObligationScolaire.Avant _ ->
false
| SituationObligationScolaire.Pendant _ ->
false
| SituationObligationScolaire.Apres _ ->
true) &&
(((param_.Enfant.remuneration_mensuelle)
<=$ plafond_l512_3_2_)
&&
(((param_.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"]}
((match
(param_.Enfant.obligation_scolaire)
with
| SituationObligationScolaire.Avant _ ->
true
| SituationObligationScolaire.Pendant _ ->
false
| SituationObligationScolaire.Apres _ ->
false) ||
(match
(param_.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) -> (log_decision_taken
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=57; start_column=10;
end_line=57; end_column=22;
law_headings=["Prestations familiales";
"Champs d'applications"; "Prologue"]} true))
(fun (_: unit) -> false))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=57; start_column=10; end_line=57; end_column=22;
law_headings=["Prestations familiales"; "Champs d'applications";
"Prologue"]})))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=57; start_column=10; end_line=57; end_column=22;
law_headings=["Prestations familiales"; "Champs d'applications";
"Prologue"]})))) in
{PrestationsFamilialesOut.droit_ouvert_out = droit_ouvert_;
PrestationsFamilialesOut.conditions_hors_age_out = conditions_hors_age_;
PrestationsFamilialesOut.age_l512_3_2_out = age_l512_3_2_;
PrestationsFamilialesOut.regime_outre_mer_l751_1_out =
regime_outre_mer_l751_1_}
let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t) : AllocationsFamilialesOut.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) (
try
(fun (param_: Enfant.t) ->
try
(handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=97; start_column=11; end_line=97; end_column=26;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=97; start_column=11;
end_line=97; end_column=26;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([||])
(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 (param_.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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=97; start_column=11;
end_line=97; end_column=26;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([||])
(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 (param_.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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=97; start_column=11;
end_line=97; end_column=26;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=97; start_column=11;
end_line=97; end_column=26;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=97; start_column=11;
end_line=97; end_column=26;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} (
[||])
(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
(param_.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 (param_.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 (param_.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=97; start_column=11; end_line=97; end_column=26;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=97; start_column=11; end_line=97; end_column=26;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let versement_: Enfant.t -> VersementAllocations.t = (log_variable_definition
["AllocationsFamiliales"; "versement"] (unembeddable) (
try
(fun (param_: Enfant.t) ->
try
(handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=98; start_column=11; end_line=98; end_column=20;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=98; start_column=11;
end_line=98; end_column=20;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([||])
(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 (param_.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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=98; start_column=11;
end_line=98; end_column=20;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=98; start_column=11;
end_line=98; end_column=20;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=98; start_column=11;
end_line=98; end_column=20;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=98;
start_column=11;
end_line=98; end_column=20;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]}
([||])
(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
(param_.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
(param_.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 (param_.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 (param_.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=98; start_column=11; end_line=98; end_column=20;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=98; start_column=11; end_line=98; end_column=20;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let nombre_enfants_l521_1_: integer = (log_variable_definition
["AllocationsFamiliales"; "nombre_enfants_l521_1"] (embed_integer) (
try
(handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=145; start_column=11; end_line=145; end_column=32;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=293; start_column=14; end_line=293; end_column=35;
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"))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=145; start_column=11; end_line=145; end_column=32;
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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=147; start_column=11; end_line=147; end_column=41;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]} ([||])
(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"))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=147; start_column=11; end_line=147; end_column=41;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let result_: AllocationFamilialesAvril2008Out.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_.AllocationFamilialesAvril2008Out.age_minimum_alinea_1_l521_3_out in
let bmaf_dot_date_courante_: date =
try ((log_variable_definition
["AllocationsFamiliales"; "bmaf.date_courante"] (embed_date)
(handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=159; start_column=14; end_line=159; end_column=32;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=159; start_column=14; end_line=159; end_column=32;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]} true))
(fun (_: unit) -> date_courante_))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=159; start_column=14; end_line=159; end_column=32;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})) in
let result_: BaseMensuelleAllocationsFamilialesOut.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_.BaseMensuelleAllocationsFamilialesOut.montant_out in
let prestations_familiales_dot_date_courante_: date =
try ((log_variable_definition
["AllocationsFamiliales"; "prestations_familiales.date_courante"]
(embed_date)
(handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=155; start_column=14; end_line=155; end_column=50;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=155; start_column=14; end_line=155; end_column=50;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]} true))
(fun (_: unit) -> date_courante_))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=155; start_column=14; end_line=155; end_column=50;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})) in
let prestations_familiales_dot_prestation_courante_: ElementPrestationsFamiliales.t =
try ((log_variable_definition
["AllocationsFamiliales"; "prestations_familiales.prestation_courante"]
(embed_element_prestations_familiales)
(handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=153; start_column=14; end_line=153; end_column=56;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=153; start_column=14; end_line=153; end_column=56;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]} true))
(fun (_: unit) ->
ElementPrestationsFamiliales.AllocationsFamiliales ()))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=153; start_column=14; end_line=153; end_column=56;
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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=157; start_column=14; end_line=157; end_column=46;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=157; start_column=14; end_line=157; end_column=46;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]} true))
(fun (_: unit) -> residence_))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=157; start_column=14; end_line=157; end_column=46;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})) in
let result_: PrestationsFamilialesOut.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.prestation_courante_in =
prestations_familiales_dot_prestation_courante_;
PrestationsFamilialesIn.residence_in =
prestations_familiales_dot_residence_})) in
let prestations_familiales_dot_droit_ouvert_: Enfant.t -> bool = result_.PrestationsFamilialesOut.droit_ouvert_out in
let prestations_familiales_dot_conditions_hors_age_: Enfant.t -> bool = result_.PrestationsFamilialesOut.conditions_hors_age_out in
let prestations_familiales_dot_age_l512_3_2_: duration = result_.PrestationsFamilialesOut.age_l512_3_2_out in
let prestations_familiales_dot_regime_outre_mer_l751_1_: bool = result_.PrestationsFamilialesOut.regime_outre_mer_l751_1_out 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 = "examples/allocations_familiales/epilogue.catala_fr";
start_line=32; start_column=14; end_line=32; end_column=40;
law_headings=["Règles diverses"; "Épilogue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=32; start_column=14; end_line=32; end_column=40;
law_headings=["Règles diverses"; "Épilogue"]} true))
(fun (_: unit) -> enfants_a_charge_))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=32; start_column=14; end_line=32; end_column=40;
law_headings=["Règles diverses"; "Épilogue"]})) in
let result_: EnfantLePlusAgeOut.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_.EnfantLePlusAgeOut.le_plus_age_out in
let age_minimum_alinea_1_l521_3_: Enfant.t -> duration = (log_variable_definition
["AllocationsFamiliales"; "âge_minimum_alinéa_1_l521_3"] (unembeddable)
(
try
(fun (param_: Enfant.t) ->
try
(handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=146; start_column=11; end_line=146; end_column=38;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=146; start_column=11;
end_line=146; end_column=38;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([||])
(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=69;
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"]}
(((param_.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) -> (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)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=146; start_column=11; end_line=146; end_column=38;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=146; start_column=11; end_line=146; 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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=95; start_column=11; end_line=95; end_column=61;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]} ([||])
(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) ->
array_filter
(fun (enfant_: _) -> (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"; "input"]
(embed_enfant) enfant_))))))) enfants_a_charge_))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=95; start_column=11; end_line=95; 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) (
try
(fun (param_: Enfant.t) ->
try
(handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=148; start_column=11; end_line=148; end_column=33;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=33; start_column=14;
end_line=33; end_column=36;
law_headings=["Règles diverses"; "Épilogue"]} true))
(fun (_: unit) -> enfant_le_plus_age_dot_le_plus_age_ = param_))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=148; start_column=11; end_line=148; end_column=33;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=148; start_column=11; end_line=148; 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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=150; start_column=11; end_line=150; end_column=28;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=150; start_column=11;
end_line=150; end_column=28;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=150; start_column=11;
end_line=150; end_column=28;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=30; start_column=5;
end_line=30; end_column=69;
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"]}
((date_courante_ >=@
(date_of_numbers (2018) (1) (1))) &&
(date_courante_ <=@
(date_of_numbers (2018) (12) (31))))))
(fun (_: unit) ->
(money_of_cents_string "7877000") +$
((money_of_cents_string "562800") *$
(decimal_of_integer
(array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)))));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=150; start_column=11;
end_line=150; end_column=28;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=63; start_column=5;
end_line=63; end_column=69;
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"]}
((date_courante_ >=@
(date_of_numbers (2019) (1) (1))) &&
(date_courante_ <=@
(date_of_numbers (2019) (12) (31))))))
(fun (_: unit) ->
(money_of_cents_string "7955800") +$
((money_of_cents_string "568400") *$
(decimal_of_integer
(array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)))));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=150; start_column=11;
end_line=150; end_column=28;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=96; start_column=5;
end_line=96; end_column=69;
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"]}
((date_courante_ >=@
(date_of_numbers (2020) (1) (1))) &&
(date_courante_ <=@
(date_of_numbers (2020) (12) (31))))))
(fun (_: unit) ->
(money_of_cents_string "8083100") +$
((money_of_cents_string "577500") *$
(decimal_of_integer
(array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)))));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=150; start_column=11;
end_line=150; end_column=28;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=132; start_column=5;
end_line=132; end_column=69;
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"]}
((date_courante_ >=@
(date_of_numbers (2021) (1) (1))) &&
(date_courante_ <=@
(date_of_numbers (2021) (12) (31))))))
(fun (_: unit) ->
(money_of_cents_string "8155800") +$
((money_of_cents_string "582700") *$
(decimal_of_integer
(array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=313; start_column=14; end_line=313; 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) ->
(money_of_cents_string "7830000") +$
((money_of_cents_string "559500") *$
(decimal_of_integer
(array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=150; start_column=11; end_line=150; 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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=149; start_column=11; end_line=149; end_column=27;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=149; start_column=11;
end_line=149; end_column=27;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=149; start_column=11;
end_line=149; end_column=27;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=23; start_column=5;
end_line=23; end_column=69;
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"]}
((date_courante_ >=@
(date_of_numbers (2018) (1) (1))) &&
(date_courante_ <=@
(date_of_numbers (2018) (12) (31))))))
(fun (_: unit) ->
(money_of_cents_string "5628600") +$
((money_of_cents_string "562800") *$
(decimal_of_integer
(array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)))));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=149; start_column=11;
end_line=149; end_column=27;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=56; start_column=5;
end_line=56; end_column=69;
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"]}
((date_courante_ >=@
(date_of_numbers (2019) (1) (1))) &&
(date_courante_ <=@
(date_of_numbers (2019) (12) (31))))))
(fun (_: unit) ->
(money_of_cents_string "5684900") +$
((money_of_cents_string "568400") *$
(decimal_of_integer
(array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)))));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=149; start_column=11;
end_line=149; end_column=27;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=89; start_column=5;
end_line=89; end_column=69;
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"]}
((date_courante_ >=@
(date_of_numbers (2020) (1) (1))) &&
(date_courante_ <=@
(date_of_numbers (2020) (12) (31))))))
(fun (_: unit) ->
(money_of_cents_string "5775900") +$
((money_of_cents_string "577500") *$
(decimal_of_integer
(array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)))));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=149; start_column=11;
end_line=149; end_column=27;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=116; start_column=5;
end_line=116; end_column=69;
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"]}
((date_courante_ >=@
(date_of_numbers (2021) (1) (1))) &&
(date_courante_ <=@
(date_of_numbers (2021) (12) (31))))))
(fun (_: unit) ->
(money_of_cents_string "5827900") +$
((money_of_cents_string "582700") *$
(decimal_of_integer
(array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=303; start_column=14; end_line=303; 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) ->
(money_of_cents_string "5595000") +$
((money_of_cents_string "559500") *$
(decimal_of_integer
(array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=149; start_column=11; end_line=149; 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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=132; start_column=11; end_line=132; end_column=34;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=132; start_column=11;
end_line=132; end_column=34;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=132; start_column=11;
end_line=132; end_column=34;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(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"]}
(prestations_familiales_dot_regime_outre_mer_l751_1_
&&
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
= (integer_of_string "1")))))
(fun (_: unit) -> false))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=30; start_column=9;
end_line=30; end_column=32;
law_headings=["Règles diverses"; "Épilogue"]} true))
(fun (_: unit) -> true))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=132; start_column=11; end_line=132; end_column=34;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]} true))
(fun (_: unit) -> false))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=132; start_column=11; end_line=132; 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) (
try
(fun (param_: Enfant.t) ->
try
(handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=120; start_column=11; end_line=120; end_column=35;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=120; start_column=11;
end_line=120; end_column=35;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=120; start_column=11;
end_line=120; end_column=35;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(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"]}
(prestations_familiales_dot_regime_outre_mer_l751_1_
&&
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
= (integer_of_string "1")))))
(fun (_: unit) -> false))|])
(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"]}
(((array_length enfants_a_charge_) >=!
nombre_enfants_alinea_2_l521_3_) &&
(((((param_.Enfant.date_de_naissance) +@
prestations_familiales_dot_age_l512_3_2_)
-@ date_courante_) <^
(duration_of_numbers (0) (0) (365))) &&
((param_.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"; "input"]
(embed_enfant) param_))))))))))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=120; start_column=11;
end_line=120; end_column=35;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]} true))
(fun (_: unit) -> false))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=120; start_column=11; end_line=120; end_column=35;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=120; start_column=11; end_line=120; 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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=117; start_column=11; end_line=117; end_column=64;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]} ([||])
(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
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_) >!
(integer_of_string "3")) then
((bmaf_dot_montant_ *$ (decimal_of_string "0.0463")) *$
(decimal_of_integer
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
-! (integer_of_string "3")))) else
(money_of_cents_string "0")))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=117; start_column=11; end_line=117; 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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=116; start_column=11; end_line=116; end_column=56;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=116; start_column=11;
end_line=116; end_column=56;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=116; start_column=11;
end_line=116; end_column=56;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=431; start_column=5;
end_line=431; end_column=69;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
((residence_ = (Collectivite.Mayotte ())) &&
((date_courante_ >=@
(date_of_numbers (2011) (1) (1))) &&
(date_courante_ <=@
(date_of_numbers (2011) (12) (31)))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "2")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.0463")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=116; start_column=11;
end_line=116; end_column=56;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=439; start_column=5;
end_line=439; end_column=69;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
((residence_ = (Collectivite.Mayotte ())) &&
((date_courante_ >=@
(date_of_numbers (2012) (1) (1))) &&
(date_courante_ <=@
(date_of_numbers (2012) (12) (31)))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "2")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.0539")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=116; start_column=11;
end_line=116; end_column=56;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=447; start_column=5;
end_line=447; end_column=69;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
((residence_ = (Collectivite.Mayotte ())) &&
((date_courante_ >=@
(date_of_numbers (2013) (1) (1))) &&
(date_courante_ <=@
(date_of_numbers (2013) (12) (31)))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "2")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.0615")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=116; start_column=11;
end_line=116; end_column=56;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=455; start_column=5;
end_line=455; end_column=69;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
((residence_ = (Collectivite.Mayotte ())) &&
((date_courante_ >=@
(date_of_numbers (2014) (1) (1))) &&
(date_courante_ <=@
(date_of_numbers (2014) (12) (31)))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "2")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.069")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=116; start_column=11;
end_line=116; end_column=56;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=463; start_column=5;
end_line=463; end_column=69;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
((residence_ = (Collectivite.Mayotte ())) &&
((date_courante_ >=@
(date_of_numbers (2015) (1) (1))) &&
(date_courante_ <=@
(date_of_numbers (2015) (12) (31)))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "2")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.0766")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=116; start_column=11;
end_line=116; end_column=56;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=471; start_column=5;
end_line=471; end_column=69;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
((residence_ = (Collectivite.Mayotte ())) &&
((date_courante_ >=@
(date_of_numbers (2016) (1) (1))) &&
(date_courante_ <=@
(date_of_numbers (2016) (12) (31)))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "2")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.0842")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=116; start_column=11;
end_line=116; end_column=56;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=479; start_column=5;
end_line=479; end_column=69;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
((residence_ = (Collectivite.Mayotte ())) &&
((date_courante_ >=@
(date_of_numbers (2017) (1) (1))) &&
(date_courante_ <=@
(date_of_numbers (2017) (12) (31)))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "2")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.0918")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=116; start_column=11;
end_line=116; end_column=56;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=487; start_column=5;
end_line=487; end_column=69;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
((residence_ = (Collectivite.Mayotte ())) &&
((date_courante_ >=@
(date_of_numbers (2018) (1) (1))) &&
(date_courante_ <=@
(date_of_numbers (2018) (12) (31)))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "2")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.1089")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=116; start_column=11;
end_line=116; end_column=56;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=495; start_column=5;
end_line=495; end_column=69;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
((residence_ = (Collectivite.Mayotte ())) &&
((date_courante_ >=@
(date_of_numbers (2019) (1) (1))) &&
(date_courante_ <=@
(date_of_numbers (2019) (12) (31)))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "2")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.1259")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=116; start_column=11;
end_line=116; end_column=56;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=503; start_column=5;
end_line=503; end_column=69;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
((residence_ = (Collectivite.Mayotte ())) &&
((date_courante_ >=@
(date_of_numbers (2020) (1) (1))) &&
(date_courante_ <=@
(date_of_numbers (2020) (12) (31)))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "2")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.143")) else
(money_of_cents_string "0")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|])
(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
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_) >!
(integer_of_string "2")) then
(bmaf_dot_montant_ *$ (decimal_of_string "0.16")) else
(money_of_cents_string "0")))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=116; start_column=11; end_line=116; 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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=110; start_column=11; end_line=110; end_column=31;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_R.catala_fr";
start_line=162; start_column=14; end_line=162; 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) ->
decimal_of_integer
(array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=110; start_column=11; end_line=110; 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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=109; start_column=11; end_line=109; end_column=31;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]} ([||])
(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) ->
Array.fold_left
(fun (acc_: decimal) (enfant_: _) ->
acc_ +&
(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"; "input"]
(embed_enfant) enfant_)))))))
with
| PriseEnCompte.Complete _ -> (decimal_of_string "1.")
| PriseEnCompte.Partagee _ -> (decimal_of_string "0.5")
| PriseEnCompte.Zero _ -> (decimal_of_string "0.")))
(decimal_of_string "0.")
enfants_a_charge_droit_ouvert_prestation_familiale_))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=109; start_column=11; end_line=109; 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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=105; start_column=11; end_line=105; end_column=46;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=105; start_column=11;
end_line=105; end_column=46;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=105; start_column=11;
end_line=105; end_column=46;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=105; start_column=11;
end_line=105; end_column=46;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(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"]}
((residence_ = (Collectivite.Mayotte ()))
&&
((date_courante_ >=@
(date_of_numbers (2011) (1) (1)))
&&
((date_courante_ <=@
(date_of_numbers (2011) (12) (31)))
&&
(not
avait_enfant_a_charge_avant_1er_janvier_2012_))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "0")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.145")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=105; start_column=11;
end_line=105; end_column=46;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(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"]}
((residence_ = (Collectivite.Mayotte ()))
&&
((date_courante_ >=@
(date_of_numbers (2012) (1) (1)))
&&
((date_courante_ <=@
(date_of_numbers (2012) (12) (31)))
&&
(not
avait_enfant_a_charge_avant_1er_janvier_2012_))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "0")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.1393")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=105; start_column=11;
end_line=105; end_column=46;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(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"]}
((residence_ = (Collectivite.Mayotte ()))
&&
((date_courante_ >=@
(date_of_numbers (2013) (1) (1)))
&&
((date_courante_ <=@
(date_of_numbers (2013) (12) (31)))
&&
(not
avait_enfant_a_charge_avant_1er_janvier_2012_))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "0")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.1335")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=105; start_column=11;
end_line=105; end_column=46;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(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"]}
((residence_ = (Collectivite.Mayotte ()))
&&
((date_courante_ >=@
(date_of_numbers (2014) (1) (1)))
&&
((date_courante_ <=@
(date_of_numbers (2014) (12) (31)))
&&
(not
avait_enfant_a_charge_avant_1er_janvier_2012_))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "0")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.1278")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=105; start_column=11;
end_line=105; end_column=46;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(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"]}
((residence_ = (Collectivite.Mayotte ()))
&&
((date_courante_ >=@
(date_of_numbers (2015) (1) (1)))
&&
((date_courante_ <=@
(date_of_numbers (2015) (12) (31)))
&&
(not
avait_enfant_a_charge_avant_1er_janvier_2012_))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "0")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.122")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=105; start_column=11;
end_line=105; end_column=46;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(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"]}
((residence_ = (Collectivite.Mayotte ()))
&&
((date_courante_ >=@
(date_of_numbers (2016) (1) (1)))
&&
((date_courante_ <=@
(date_of_numbers (2016) (12) (31)))
&&
(not
avait_enfant_a_charge_avant_1er_janvier_2012_))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "0")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.1163")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=105; start_column=11;
end_line=105; end_column=46;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(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"]}
((residence_ = (Collectivite.Mayotte ()))
&&
((date_courante_ >=@
(date_of_numbers (2017) (1) (1)))
&&
((date_courante_ <=@
(date_of_numbers (2017) (12) (31)))
&&
(not
avait_enfant_a_charge_avant_1er_janvier_2012_))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "0")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.1105")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=105; start_column=11;
end_line=105; end_column=46;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(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"]}
((residence_ = (Collectivite.Mayotte ()))
&&
((date_courante_ >=@
(date_of_numbers (2018) (1) (1)))
&&
((date_courante_ <=@
(date_of_numbers (2018) (12) (31)))
&&
(not
avait_enfant_a_charge_avant_1er_janvier_2012_))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "0")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.0976")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=105; start_column=11;
end_line=105; end_column=46;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(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"]}
((residence_ = (Collectivite.Mayotte ()))
&&
((date_courante_ >=@
(date_of_numbers (2019) (1) (1)))
&&
((date_courante_ <=@
(date_of_numbers (2019) (12) (31)))
&&
(not
avait_enfant_a_charge_avant_1er_janvier_2012_))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "0")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.0847")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=105; start_column=11;
end_line=105; end_column=46;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(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"]}
((residence_ = (Collectivite.Mayotte ()))
&&
((date_courante_ >=@
(date_of_numbers (2020) (1) (1)))
&&
((date_courante_ <=@
(date_of_numbers (2020) (12) (31)))
&&
(not
avait_enfant_a_charge_avant_1er_janvier_2012_))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "0")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.0717")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=105; start_column=11;
end_line=105; end_column=46;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(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"]}
((residence_ = (Collectivite.Mayotte ()))
&&
avait_enfant_a_charge_avant_1er_janvier_2012_)))
(fun (_: unit) ->
if
((array_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) -> (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"]}
(residence_ = (Collectivite.Mayotte ()))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "0")) then
(bmaf_dot_montant_ *$ (decimal_of_string "0.0588"))
else (money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=105; start_column=11;
end_line=105; end_column=46;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=364; start_column=5;
end_line=365; 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"]}
(prestations_familiales_dot_regime_outre_mer_l751_1_ &&
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
= (integer_of_string "1")))))
(fun (_: unit) ->
bmaf_dot_montant_ *$ (decimal_of_string "0.0588")))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=361; start_column=29; end_line=361; 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"))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=105; start_column=11; end_line=105; 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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=103; start_column=11; end_line=103; end_column=28;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=103; start_column=11;
end_line=103; end_column=28;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=103; start_column=11;
end_line=103; end_column=28;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=103; start_column=11;
end_line=103; end_column=28;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=103; start_column=11;
end_line=103; end_column=28;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} (
[||])
(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"]}
((residence_ =
(Collectivite.Mayotte ())) &&
((array_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"]}
(prestations_familiales_dot_regime_outre_mer_l751_1_
&&
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>=! (integer_of_string "1")))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError))|])
(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"]}
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>=! (integer_of_string "2")))) (fun (_: unit) -> true))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=103; start_column=11; end_line=103; end_column=28;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]} true))
(fun (_: unit) -> false))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=103; start_column=11; end_line=103; 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) (
try
(fun (param_: Enfant.t) ->
try
(handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=125; start_column=11; end_line=125; end_column=34;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=125; start_column=11;
end_line=125; end_column=34;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=125; start_column=11;
end_line=125; end_column=34;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(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"]}
(((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>=! nombre_enfants_alinea_2_l521_3_) &&
(((param_.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";
"input"] (embed_enfant)
param_)))))))) <=@ date_courante_))))
(fun (_: unit) -> true))|])
(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"]}
((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é"; "input"]
(embed_enfant) param_)))))))) &&
(((param_.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"; "input"]
(embed_enfant) param_)))))))) <=@
date_courante_)))) (fun (_: unit) -> true))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=125; start_column=11;
end_line=125; end_column=34;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]} true))
(fun (_: unit) -> false))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=125; start_column=11; end_line=125; end_column=34;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=125; start_column=11; end_line=125; 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) (
try
(fun (param_: money) ->
try
(handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=134; start_column=11; end_line=134; end_column=31;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=134; start_column=11;
end_line=134; end_column=31;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=134; start_column=11;
end_line=134; end_column=31;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(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=68;
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"]}
((ressources_menage_ >$ plafond__i_d521_3_)
&&
(ressources_menage_ <=$
(plafond__i_d521_3_ +$
(param_ *$
(decimal_of_string "12.")))))))
(fun (_: unit) ->
((plafond__i_d521_3_ +$
(param_ *$ (decimal_of_string "12.")))
-$ ressources_menage_) *$
((decimal_of_string "1.") /&
(decimal_of_string "12."))));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=134; start_column=11;
end_line=134; end_column=31;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(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=68;
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"]}
((ressources_menage_ >$ plafond__i_i_d521_3_)
&&
(ressources_menage_ <=$
(plafond__i_i_d521_3_ +$
(param_ *$
(decimal_of_string "12.")))))))
(fun (_: unit) ->
((plafond__i_i_d521_3_ +$
(param_ *$ (decimal_of_string "12.")))
-$ ressources_menage_) *$
((decimal_of_string "1.") /&
(decimal_of_string "12."))))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError))|])
(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"))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=134; start_column=11; end_line=134; end_column=31;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=134; start_column=11; end_line=134; 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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=121; start_column=11; end_line=121; end_column=47;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=121; start_column=11;
end_line=121; end_column=47;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=220; start_column=5;
end_line=220; end_column=43;
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"]}
(ressources_menage_ <=$ plafond__i_d521_3_)))
(fun (_: unit) ->
bmaf_dot_montant_ *$ (decimal_of_string "0.20234")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=121; start_column=11;
end_line=121; end_column=47;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=234; start_column=5;
end_line=235; end_column=46;
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"]}
((ressources_menage_ >$ plafond__i_d521_3_) &&
(ressources_menage_ <=$ plafond__i_i_d521_3_))))
(fun (_: unit) ->
bmaf_dot_montant_ *$ (decimal_of_string "0.10117")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=121; start_column=11;
end_line=121; end_column=47;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=248; start_column=5;
end_line=248; end_column=43;
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"]}
(ressources_menage_ >$ plafond__i_i_d521_3_)))
(fun (_: unit) ->
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=121; start_column=11; end_line=121; 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 = "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"]}
([|(fun (_: unit) ->
handle_default
{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"]}
([||])
(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"]}
(ressources_menage_ <=$ plafond__i_d521_3_)))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "2")) then
((bmaf_dot_montant_ *$ (decimal_of_string "0.41")) *$
(decimal_of_integer
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
-! (integer_of_string "2")))) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{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"]}
([||])
(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"]}
((ressources_menage_ >$ plafond__i_d521_3_) &&
(ressources_menage_ <=$ plafond__i_i_d521_3_))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "2")) then
((bmaf_dot_montant_ *$ (decimal_of_string "0.205")) *$
(decimal_of_integer
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
-! (integer_of_string "2")))) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{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"]}
([||])
(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"]}
(ressources_menage_ >$ plafond__i_i_d521_3_)))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "2")) then
((bmaf_dot_montant_ *$ (decimal_of_string "0.1025")) *$
(decimal_of_integer
((array_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=107; start_column=11; end_line=107; 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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=106; start_column=11; end_line=106; end_column=47;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=106; start_column=11;
end_line=106; end_column=47;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=106; start_column=11;
end_line=106; end_column=47;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=106; start_column=11;
end_line=106; end_column=47;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=350; start_column=5;
end_line=350; end_column=69;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
((residence_ = (Collectivite.Mayotte ()))
&&
((date_courante_ >=@
(date_of_numbers (2011) (1) (1)))
&&
(date_courante_ <=@
(date_of_numbers (2011) (12) (31)))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "1")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.232")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=106; start_column=11;
end_line=106; end_column=47;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=358; start_column=5;
end_line=358; end_column=69;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
((residence_ = (Collectivite.Mayotte ()))
&&
((date_courante_ >=@
(date_of_numbers (2012) (1) (1)))
&&
(date_courante_ <=@
(date_of_numbers (2012) (12) (31)))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "1")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.2379")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=106; start_column=11;
end_line=106; end_column=47;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=366; start_column=5;
end_line=366; end_column=69;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
((residence_ = (Collectivite.Mayotte ()))
&&
((date_courante_ >=@
(date_of_numbers (2013) (1) (1)))
&&
(date_courante_ <=@
(date_of_numbers (2013) (12) (31)))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "1")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.2437")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=106; start_column=11;
end_line=106; end_column=47;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=374; start_column=5;
end_line=374; end_column=69;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
((residence_ = (Collectivite.Mayotte ()))
&&
((date_courante_ >=@
(date_of_numbers (2014) (1) (1)))
&&
(date_courante_ <=@
(date_of_numbers (2014) (12) (31)))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "1")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.2496")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=106; start_column=11;
end_line=106; end_column=47;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=382; start_column=5;
end_line=382; end_column=69;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
((residence_ = (Collectivite.Mayotte ()))
&&
((date_courante_ >=@
(date_of_numbers (2015) (1) (1)))
&&
(date_courante_ <=@
(date_of_numbers (2015) (12) (31)))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "1")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.2555")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=106; start_column=11;
end_line=106; end_column=47;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=390; start_column=5;
end_line=390; end_column=69;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
((residence_ = (Collectivite.Mayotte ()))
&&
((date_courante_ >=@
(date_of_numbers (2016) (1) (1)))
&&
(date_courante_ <=@
(date_of_numbers (2016) (12) (31)))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "1")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.2613")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=106; start_column=11;
end_line=106; end_column=47;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=398; start_column=5;
end_line=398; end_column=69;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
((residence_ = (Collectivite.Mayotte ()))
&&
((date_courante_ >=@
(date_of_numbers (2017) (1) (1)))
&&
(date_courante_ <=@
(date_of_numbers (2017) (12) (31)))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "1")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.2672")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=106; start_column=11;
end_line=106; end_column=47;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=406; start_column=5;
end_line=406; end_column=69;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
((residence_ = (Collectivite.Mayotte ()))
&&
((date_courante_ >=@
(date_of_numbers (2018) (1) (1)))
&&
(date_courante_ <=@
(date_of_numbers (2018) (12) (31)))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "1")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.2804")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=106; start_column=11;
end_line=106; end_column=47;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=414; start_column=5;
end_line=414; end_column=69;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
((residence_ = (Collectivite.Mayotte ()))
&&
((date_courante_ >=@
(date_of_numbers (2019) (1) (1)))
&&
(date_courante_ <=@
(date_of_numbers (2019) (12) (31)))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "1")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.2936")) else
(money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=106; start_column=11;
end_line=106; end_column=47;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/decrets_divers.catala_fr";
start_line=422; start_column=5;
end_line=422; end_column=69;
law_headings=["Annexe";
"Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte";
"Dispositions spéciales relatives à Mayotte"]}
((residence_ = (Collectivite.Mayotte ()))
&&
((date_courante_ >=@
(date_of_numbers (2020) (1) (1)))
&&
(date_courante_ <=@
(date_of_numbers (2020) (12) (31)))))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "1")) then
(bmaf_dot_montant_ *$
(decimal_of_string "0.3068")) else
(money_of_cents_string "0")))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError))|])
(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"]}
(residence_ = (Collectivite.Mayotte ()))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "1")) then
(bmaf_dot_montant_ *$ (decimal_of_string "0.32")) else
(money_of_cents_string "0")))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=106; start_column=11; end_line=106; end_column=47;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=106; start_column=11;
end_line=106; end_column=47;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([||])
(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"]}
(ressources_menage_ <=$ plafond__i_d521_3_)))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "1")) then
(bmaf_dot_montant_ *$ (decimal_of_string "0.32"))
else (money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=106; start_column=11;
end_line=106; end_column=47;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([||])
(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"]}
((ressources_menage_ >$ plafond__i_d521_3_) &&
(ressources_menage_ <=$ plafond__i_i_d521_3_))))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "1")) then
(bmaf_dot_montant_ *$ (decimal_of_string "0.16"))
else (money_of_cents_string "0")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=106; start_column=11;
end_line=106; end_column=47;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([||])
(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"]}
(ressources_menage_ >$ plafond__i_i_d521_3_)))
(fun (_: unit) ->
if
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
>! (integer_of_string "1")) then
(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=106; start_column=11; end_line=106; 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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=108; start_column=11; end_line=108; end_column=38;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]} ([||])
(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 (nombre_total_enfants_ = (decimal_of_string "0.")) then
(decimal_of_string "0.") else
(nombre_moyen_enfants_ /& nombre_total_enfants_)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=108; start_column=11; end_line=108; 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) (
try
(fun (param_: Enfant.t) ->
try
(handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=126; start_column=11; end_line=126; end_column=47;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=126; start_column=11;
end_line=126; end_column=47;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([||])
(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"]}
((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"; "input"]
(embed_enfant) param_))))))))))
(fun (_: unit) ->
bmaf_dot_montant_ *$ (decimal_of_string "0.16")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=126; start_column=11;
end_line=126; end_column=47;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([||])
(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"]}
(((ressources_menage_ >$ plafond__i_d521_3_) &&
(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"; "input"]
(embed_enfant) param_))))))))))
(fun (_: unit) ->
bmaf_dot_montant_ *$ (decimal_of_string "0.08")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=126; start_column=11;
end_line=126; end_column=47;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([||])
(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"]}
((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"; "input"]
(embed_enfant) param_))))))))))
(fun (_: unit) ->
bmaf_dot_montant_ *$ (decimal_of_string "0.04")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=126; start_column=11;
end_line=126; end_column=47;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=27; start_column=5;
end_line=27; end_column=44;
law_headings=["Règles diverses"; "Épilogue"]}
(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"; "input"]
(embed_enfant) param_))))))))))
(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=126; start_column=11; end_line=126; end_column=47;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=126; start_column=11; end_line=126; 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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=122; start_column=11; end_line=122; end_column=36;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]} ([||])
(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) ->
montant_verse_forfaitaire_par_enfant_ *$
(decimal_of_integer
(Array.fold_left
(fun (acc_: integer) (enfant_: _) ->
if
((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"; "input"]
(embed_enfant) enfant_))))))) then
(acc_ +! (integer_of_string "1")) else acc_)
(integer_of_string "0") enfants_a_charge_))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=122; start_column=11; end_line=122; 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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=104; start_column=11; end_line=104; end_column=31;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=104; start_column=11;
end_line=104; end_column=31;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=104; start_column=11;
end_line=104; end_column=31;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=355; start_column=5;
end_line=356; 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"]}
(prestations_familiales_dot_regime_outre_mer_l751_1_
&&
((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
= (integer_of_string "1")))))
(fun (_: unit) ->
montant_initial_base_premier_enfant_));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=104; start_column=11;
end_line=104; end_column=31;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(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"]}
(residence_ = (Collectivite.Mayotte ()))))
(fun (_: unit) ->
((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) -> (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) ->
montant_initial_base_deuxieme_enfant_ +$
montant_initial_base_troisieme_enfant_et_plus_))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=104; start_column=11; end_line=104; 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) (
try
(fun (param_: Enfant.t) ->
try
(handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=127; start_column=11; end_line=127; end_column=37;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=127; start_column=11;
end_line=127; end_column=37;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=127; start_column=11;
end_line=127; end_column=37;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=378; start_column=5;
end_line=382; end_column=57;
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"]}
(((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"; "input"]
(embed_enfant) param_))))))) &&
(prestations_familiales_dot_regime_outre_mer_l751_1_
&&
(((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
= (integer_of_string "1")) &&
((((param_.Enfant.date_de_naissance)
+@
(duration_of_numbers (11) (0) (0)))
<=@ date_courante_) &&
(((param_.Enfant.date_de_naissance)
+@
(duration_of_numbers (16) (0) (0)))
>@ date_courante_)))))))
(fun (_: unit) ->
bmaf_dot_montant_ *$
(decimal_of_string "0.0369")));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=127; start_column=11;
end_line=127; end_column=37;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=388; start_column=5;
end_line=391; end_column=58;
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"]}
(((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"; "input"]
(embed_enfant) param_))))))) &&
(prestations_familiales_dot_regime_outre_mer_l751_1_
&&
(((array_length
enfants_a_charge_droit_ouvert_prestation_familiale_)
= (integer_of_string "1")) &&
(((param_.Enfant.date_de_naissance)
+@
(duration_of_numbers (16) (0) (0)))
<=@ date_courante_))))))
(fun (_: unit) ->
bmaf_dot_montant_ *$
(decimal_of_string "0.0567")))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError))|])
(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"; "input"]
(embed_enfant) param_))))))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=127; start_column=11; end_line=127; end_column=37;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=127; start_column=11; end_line=127; 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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=136; start_column=11; end_line=136; end_column=52;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=136; start_column=11;
end_line=136; end_column=52;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=136; start_column=11;
end_line=136; end_column=52;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=267; start_column=5;
end_line=269; 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"]}
((ressources_menage_ >$ plafond__i_d521_3_) &&
(ressources_menage_ <=$
(plafond__i_d521_3_ +$
(montant_verse_forfaitaire_ *$
(decimal_of_string "12.")))))))
(fun (_: unit) ->
((plafond__i_d521_3_ +$
(montant_verse_forfaitaire_ *$
(decimal_of_string "12."))) -$
ressources_menage_) *$
((decimal_of_string "1.") /&
(decimal_of_string "12."))));
(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=136; start_column=11;
end_line=136; end_column=52;
law_headings=["Allocations familiales";
"Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=277; start_column=5;
end_line=279; 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"]}
((ressources_menage_ >$ plafond__i_i_d521_3_) &&
(ressources_menage_ <=$
(plafond__i_i_d521_3_ +$
(montant_verse_forfaitaire_ *$
(decimal_of_string "12.")))))))
(fun (_: unit) ->
((plafond__i_i_d521_3_ +$
(montant_verse_forfaitaire_ *$
(decimal_of_string "12."))) -$
ressources_menage_) *$
((decimal_of_string "1.") /&
(decimal_of_string "12."))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_D.catala_fr";
start_line=285; start_column=14; end_line=285; 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"))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=136; start_column=11; end_line=136; 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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=111; start_column=11; end_line=111; end_column=43;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]} ([||])
(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) ->
montant_initial_base_ *$ rapport_enfants_total_moyen_))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=111; start_column=11; end_line=111; 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) (
try
(fun (param_: Enfant.t) ->
try
(handle_default
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=128; start_column=11; end_line=128; end_column=49;
law_headings=["Allocations familiales";
"Champs d'applications"; "Prologue"]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/securite_sociale_R.catala_fr";
start_line=188; start_column=5;
end_line=188; 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) ->
((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";
"input"] (embed_enfant) param_))))))) *$
(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"; "input"]
(embed_enfant) param_)))))))
with
| PriseEnCompte.Complete _ -> (decimal_of_string "1.")
| PriseEnCompte.Partagee _ -> (decimal_of_string "0.5")
| PriseEnCompte.Zero _ -> (decimal_of_string "0."))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=128; start_column=11; end_line=128; end_column=49;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=128; start_column=11; end_line=128; 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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=112; start_column=11; end_line=112; end_column=29;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=36; start_column=14; end_line=36; 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")))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=112; start_column=11; end_line=112; 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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=129; start_column=11; end_line=129; end_column=35;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=38; start_column=14; end_line=38; end_column=38;
law_headings=["Règles diverses"; "Épilogue"]} true))
(fun (_: unit) ->
if droit_ouvert_base_ then
(Array.fold_left
(fun (acc_: money) (enfant_: _) ->
acc_ +$ ((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"; "input"]
(embed_enfant) enfant_)))))))) (money_of_cents_string
"0") enfants_a_charge_) else (money_of_cents_string "0")))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=129; start_column=11; end_line=129; 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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=133; start_column=11; end_line=133; end_column=58;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]} ([||])
(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) -> montant_verse_base_ +$ montant_verse_majoration_))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=133; start_column=11; end_line=133; 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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=135; start_column=11; end_line=135; end_column=59;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]} ([||])
(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"; "input"]
(embed_money)
montant_base_complement_pour_base_et_majoration_))))))) else
(money_of_cents_string "0")))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=135; start_column=11; end_line=135; 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 = "examples/allocations_familiales/prologue.catala_fr";
start_line=100; start_column=10; end_line=100; end_column=23;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=44; start_column=14; end_line=44; end_column=27;
law_headings=["Règles diverses"; "Épilogue"]} true))
(fun (_: unit) ->
if droit_ouvert_base_ then
((((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")))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/prologue.catala_fr";
start_line=100; start_column=10; end_line=100; end_column=23;
law_headings=["Allocations familiales"; "Champs d'applications";
"Prologue"]})))) in
let _: unit = if (
try
(personne_charge_effective_permanente_est_parent_ ||
((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
{AllocationsFamilialesOut.montant_verse_out = montant_verse_}
let interface_allocations_familiales (interface_allocations_familiales_in: InterfaceAllocationsFamilialesIn.t) : InterfaceAllocationsFamilialesOut.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 = "examples/allocations_familiales/epilogue.catala_fr";
start_line=75; start_column=11; end_line=75; end_column=27;
law_headings=["Interface du programme"; "Épilogue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=116; start_column=14; end_line=116; end_column=30;
law_headings=["Article L131-1"; "Interface du programme";
"Épilogue"]} true))
(fun (_: unit) ->
Array.map
(fun (enfant_: _) ->
{Enfant.identifiant = (enfant_.EnfantEntree.d_identifiant);
Enfant.obligation_scolaire =
( if
(((enfant_.EnfantEntree.d_date_de_naissance) +@
(duration_of_numbers (3) (0) (0))) >=@
i_date_courante_) then
(SituationObligationScolaire.Avant ()) else
( if
(((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_))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=75; start_column=11; end_line=75; 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 = "examples/allocations_familiales/epilogue.catala_fr";
start_line=91; start_column=5; end_line=91; end_column=75;
law_headings=["Interface du programme"; "Épilogue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=91; start_column=5; end_line=91; end_column=75;
law_headings=["Interface du programme"; "Épilogue"]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=92; start_column=18;
end_line=92; end_column=67;
law_headings=["Interface du programme"; "Épilogue"]}
i_personne_charge_effective_permanente_est_parent_))
(fun (_: unit) -> true))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=91; start_column=5; end_line=91; end_column=75;
law_headings=["Interface du programme"; "Épilogue"]} true))
(fun (_: unit) -> false))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=91; start_column=5; end_line=91; 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 = "examples/allocations_familiales/epilogue.catala_fr";
start_line=95; start_column=5; end_line=95; end_column=80;
law_headings=["Interface du programme"; "Épilogue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=95; start_column=5; end_line=95; end_column=80;
law_headings=["Interface du programme"; "Épilogue"]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=96; start_column=18;
end_line=96; end_column=72;
law_headings=["Interface du programme"; "Épilogue"]}
i_personne_charge_effective_permanente_remplit_titre__i_))
(fun (_: unit) -> true))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=95; start_column=5; end_line=95; end_column=80;
law_headings=["Interface du programme"; "Épilogue"]} true))
(fun (_: unit) -> false))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=95; start_column=5; end_line=95; 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 = "examples/allocations_familiales/epilogue.catala_fr";
start_line=87; start_column=14; end_line=87; end_column=54;
law_headings=["Interface du programme"; "Épilogue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=87; start_column=14; end_line=87; end_column=54;
law_headings=["Interface du programme"; "Épilogue"]} true))
(fun (_: unit) -> i_ressources_menage_))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=87; start_column=14; end_line=87; 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 = "examples/allocations_familiales/epilogue.catala_fr";
start_line=88; start_column=14; end_line=88; end_column=46;
law_headings=["Interface du programme"; "Épilogue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=88; start_column=14; end_line=88; end_column=46;
law_headings=["Interface du programme"; "Épilogue"]} true))
(fun (_: unit) -> i_residence_))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=88; start_column=14; end_line=88; 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 = "examples/allocations_familiales/epilogue.catala_fr";
start_line=85; start_column=14; end_line=85; end_column=50;
law_headings=["Interface du programme"; "Épilogue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=85; start_column=14; end_line=85; end_column=50;
law_headings=["Interface du programme"; "Épilogue"]} true))
(fun (_: unit) -> i_date_courante_))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=85; start_column=14; end_line=85; 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 = "examples/allocations_familiales/epilogue.catala_fr";
start_line=86; start_column=14; end_line=86; end_column=53;
law_headings=["Interface du programme"; "Épilogue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=86; start_column=14; end_line=86; end_column=53;
law_headings=["Interface du programme"; "Épilogue"]} true))
(fun (_: unit) -> enfants_a_charge_))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=86; start_column=14; end_line=86; 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 = "examples/allocations_familiales/epilogue.catala_fr";
start_line=99; start_column=5; end_line=99; end_column=72;
law_headings=["Interface du programme"; "Épilogue"]}
([|(fun (_: unit) ->
handle_default
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=99; start_column=5; end_line=99; end_column=72;
law_headings=["Interface du programme"; "Épilogue"]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=100; start_column=18;
end_line=100; end_column=64;
law_headings=["Interface du programme"; "Épilogue"]}
i_avait_enfant_a_charge_avant_1er_janvier_2012_))
(fun (_: unit) -> true))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=99; start_column=5; end_line=99; end_column=72;
law_headings=["Interface du programme"; "Épilogue"]} true))
(fun (_: unit) -> false))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=99; start_column=5; end_line=99; end_column=72;
law_headings=["Interface du programme"; "Épilogue"]})) in
let result_: AllocationsFamilialesOut.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_montant_verse_: money = result_.AllocationsFamilialesOut.montant_verse_out in
let i_montant_verse_: money = (log_variable_definition
["InterfaceAllocationsFamiliales"; "i_montant_versé"] (embed_money) (
try
(handle_default
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=79; start_column=10; end_line=79; end_column=25;
law_headings=["Interface du programme"; "Épilogue"]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=89; start_column=14; end_line=89; end_column=29;
law_headings=["Interface du programme"; "Épilogue"]} true))
(fun (_: unit) -> allocations_familiales_dot_montant_verse_))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/allocations_familiales/epilogue.catala_fr";
start_line=79; start_column=10; end_line=79; end_column=25;
law_headings=["Interface du programme"; "Épilogue"]})))) in
{InterfaceAllocationsFamilialesOut.i_montant_verse_out = i_montant_verse_}