template :: ModelTemplate
template = ModelTemplate {
    mtBranchNames = ["EUR", "SEA", "SIB", "FAM"],
    mtEvents = [
        MTPopSizeChange (ParamFixed 0.0) "EUR" (ParamVariable "p_EUR"),
        MTPopSizeChange (ParamFixed 0.0) "SEA" (ParamVariable "p_SEA"),
        MTPopSizeChange (ParamFixed 0.0) "SIB" (ParamVariable "p_SIB"),
        MTPopSizeChange (ParamFixed 0.0) "FAM" (ParamVariable "p_FAM"),
        MTJoinPopSizeChange (ParamVariable "t_EUR_SIB") "EUR" "SIB" (ParamVariable "p_EUR_SIB"),
        MTJoinPopSizeChange (ParamVariable "t_SEA_FAM") "SEA" "FAM" (ParamVariable "p_SEA_FAM"),
        MTJoinPopSizeChange (ParamVariable "t_EUR_SEA") "EUR" "SEA" (ParamVariable "p_EUR_SEA"),
        MTSplit (ParamVariable "tAdm_FAM_SIB") "FAM" "SIB" (ParamVariable "adm_FAM_SIB"),
        MTPopSizeChange (ParamVariable "tAdm_FAM_SIB") "FAM" (ParamVariable "pAdm_FAM_SIB"),
        MTSplit (ParamVariable "tAdm_SEA_SIB") "SEA" "SIB" (ParamVariable "adm_SEA_SIB"),
        MTPopSizeChange (ParamVariable "tAdm_SEA_SIB") "SEA" (ParamVariable "pAdm_SEA_SIB"),
        MTSplit (ParamFixed 0.00022) "EUR" "FAM" (ParamVariable "adm_EUR_FAM")
    ],
    mtConstraints = [
        MTConstraint (ParamVariable "tAdm_FAM_SIB") (ParamFixed 0.00022) ConstraintOpGreater
    ]
}
template :: ModelTemplate
template = ModelTemplate {
    mtBranchNames = ["EUR", "SEA", "SIB", "FAM"],
    mtEvents = [
        MTPopSizeChange (ParamFixed 0.0) "EUR" (ParamVariable "p_EUR"),
        MTPopSizeChange (ParamFixed 0.0) "SEA" (ParamVariable "p_SEA"),
        MTPopSizeChange (ParamFixed 0.0) "SIB" (ParamVariable "p_SIB"),
        MTPopSizeChange (ParamFixed 0.0) "FAM" (ParamVariable "p_FAM"),
        MTJoinPopSizeChange (ParamVariable "t_EUR_SIB") "EUR" "SIB" (ParamVariable "p_EUR_SIB"),
        MTJoinPopSizeChange (ParamVariable "t_SEA_FAM") "SEA" "FAM" (ParamVariable "p_SEA_FAM"),
        MTJoinPopSizeChange (ParamVariable "t_EUR_SEA") "EUR" "SEA" (ParamVariable "p_EUR_SEA"),
        MTSplit (ParamVariable "tAdm_FAM_SIB") "FAM" "SIB" (ParamVariable "adm_FAM_SIB"),
        MTPopSizeChange (ParamVariable "tAdm_FAM_SIB") "FAM" (ParamVariable "pAdm_FAM_SIB"),
        MTSplit (ParamVariable "tAdm_SEA_SIB") "SEA" "SIB" (ParamVariable "adm_SEA_SIB"),
        MTPopSizeChange (ParamVariable "tAdm_SEA_SIB") "SEA" (ParamVariable "pAdm_SEA_SIB"),
        MTSplit (ParamFixed 0.00022) "EUR" "FAM" (ParamVariable "adm_EUR_FAM")
    ],
    mtConstraints = [
        MTConstraint (ParamVariable "tAdm_FAM_SIB") (ParamFixed 0.00022) ConstraintOpGreater
    ]
}
template = ModelTemplate {
    mtBranchNames = ["EUR", "SEA", "SIB", "FAM"],
    mtEvents = [
        MTPopSizeChange (ParamFixed 0.0) "EUR" (ParamVariable "p_EUR"),
        MTPopSizeChange (ParamFixed 0.0) "SEA" (ParamVariable "p_SEA"),
        MTPopSizeChange (ParamFixed 0.0) "SIB" (ParamVariable "p_SIB"),
        MTPopSizeChange (ParamFixed 0.0) "FAM" (ParamVariable "p_FAM"),
        MTJoinPopSizeChange (ParamVariable "t_EUR_SIB") "EUR" "SIB" (ParamVariable "p_EUR_SIB"),
        MTJoinPopSizeChange (ParamVariable "t_SEA_FAM") "SEA" "FAM" (ParamVariable "p_SEA_FAM"),
        MTJoinPopSizeChange (ParamVariable "t_EUR_SEA") "EUR" "SEA" (ParamVariable "p_EUR_SEA"),
        MTSplit (ParamVariable "tAdm_FAM_SIB") "FAM" "SIB" (ParamVariable "adm_FAM_SIB"),
        MTPopSizeChange (ParamVariable "tAdm_FAM_SIB") "FAM" (ParamVariable "pAdm_FAM_SIB"),
        MTSplit (ParamVariable "tAdm_SEA_SIB") "SEA" "SIB" (ParamVariable "adm_SEA_SIB"),
        MTPopSizeChange (ParamVariable "tAdm_SEA_SIB") "SEA" (ParamVariable "pAdm_SEA_SIB"),
        MTSplit (ParamFixed 0.00022) "EUR" "FAM" (ParamVariable "adm_EUR_FAM")
    ],
    mtConstraints = [
        MTConstraint (ParamVariable "tAdm_FAM_SIB") (ParamFixed 0.00022) ConstraintOpGreater
    ]
}