{-# LANGUAGE OverloadedStrings #-}
module Docs.ExampleDoc (exampleTree) where
import Data.Text (Text, unlines)
import Language.Ltml.Common (Flagged (Flagged))
import Language.Ltml.Tree
( FlaggedInputTree'
, Tree (Leaf, Tree)
, TypedInputTree'
, TypedTree (TypedTree)
)
import Prelude hiding (unlines)
exampleTree :: FlaggedInputTree'
exampleTree :: FlaggedInputTree'
exampleTree =
Bool -> TypedTree Bool (Maybe Text) Text -> FlaggedInputTree'
forall flag a. flag -> a -> Flagged flag a
Flagged Bool
False (TypedTree Bool (Maybe Text) Text -> FlaggedInputTree')
-> TypedTree Bool (Maybe Text) Text -> FlaggedInputTree'
forall a b. (a -> b) -> a -> b
$
KindName
-> TypeName
-> Tree Bool (Maybe Text) Text
-> TypedTree Bool (Maybe Text) Text
forall flag a b.
KindName -> TypeName -> Tree flag a b -> TypedTree flag a b
TypedTree KindName
"document-container" TypeName
"fpo-container" (Tree Bool (Maybe Text) Text -> TypedTree Bool (Maybe Text) Text)
-> Tree Bool (Maybe Text) Text -> TypedTree Bool (Maybe Text) Text
forall a b. (a -> b) -> a -> b
$
Maybe Text -> [FlaggedInputTree'] -> Tree Bool (Maybe Text) Text
forall flag a b. a -> [FlaggedTree flag a b] -> Tree flag a b
Tree (Text -> Maybe Text
forall a. a -> Maybe a
Just Text
header) (FlaggedInputTree'
mainDocTree FlaggedInputTree' -> [FlaggedInputTree'] -> [FlaggedInputTree']
forall a. a -> [a] -> [a]
: [FlaggedInputTree']
appTrees)
where
header :: Text
header :: Text
header =
[Text] -> Text
unlines
[ Text
"// Document container header."
, Text
"// The order of entries is fixed (TODO)."
, Text
""
, Text
"pdf-title: Beispieltitel"
, Text
""
, Text
"// Name of the institution here."
, Text
"header-footer-supertitle: Universität BeispielStadt"
, Text
""
, Text
"header-footer-title: FPO Beispiel 2025"
, Text
""
, Text
"header-footer-date: 2025-08-26"
]
mainDocTree :: FlaggedInputTree'
mainDocTree :: FlaggedInputTree'
mainDocTree =
Bool -> TypedTree Bool (Maybe Text) Text -> FlaggedInputTree'
forall flag a. flag -> a -> Flagged flag a
Flagged Bool
False (TypedTree Bool (Maybe Text) Text -> FlaggedInputTree')
-> TypedTree Bool (Maybe Text) Text -> FlaggedInputTree'
forall a b. (a -> b) -> a -> b
$
KindName
-> TypeName
-> Tree Bool (Maybe Text) Text
-> TypedTree Bool (Maybe Text) Text
forall flag a b.
KindName -> TypeName -> Tree flag a b -> TypedTree flag a b
TypedTree KindName
"document" TypeName
"fpo-maindoc" (Tree Bool (Maybe Text) Text -> TypedTree Bool (Maybe Text) Text)
-> Tree Bool (Maybe Text) Text -> TypedTree Bool (Maybe Text) Text
forall a b. (a -> b) -> a -> b
$
Maybe Text -> [FlaggedInputTree'] -> Tree Bool (Maybe Text) Text
forall flag a b. a -> [FlaggedTree flag a b] -> Tree flag a b
Tree
(Text -> Maybe Text
forall a. a -> Maybe a
Just Text
heading)
[FlaggedInputTree'
forall {flag} {a}. Flagged Bool (TypedTree flag a Text)
introTree, FlaggedInputTree'
mainBodyTree, FlaggedInputTree'
forall {flag} {a}. Flagged Bool (TypedTree flag a Text)
extroTree]
where
heading :: Text
heading =
[Text] -> Text
unlines
[ Text
"// Only the document's heading is permitted here."
, Text
"! Beispiel-Überschrift"
]
introTree :: Flagged Bool (TypedTree flag a Text)
introTree =
Bool
-> TypedTree flag a Text -> Flagged Bool (TypedTree flag a Text)
forall flag a. flag -> a -> Flagged flag a
Flagged Bool
False (TypedTree flag a Text -> Flagged Bool (TypedTree flag a Text))
-> TypedTree flag a Text -> Flagged Bool (TypedTree flag a Text)
forall a b. (a -> b) -> a -> b
$
KindName -> TypeName -> Tree flag a Text -> TypedTree flag a Text
forall flag a b.
KindName -> TypeName -> Tree flag a b -> TypedTree flag a b
TypedTree KindName
"document-intro" TypeName
"" (Tree flag a Text -> TypedTree flag a Text)
-> Tree flag a Text -> TypedTree flag a Text
forall a b. (a -> b) -> a -> b
$
Text -> Tree flag a Text
forall flag a b. b -> Tree flag a b
Leaf Text
introText
mainBodyTree :: FlaggedInputTree'
mainBodyTree =
Bool -> TypedTree Bool (Maybe Text) Text -> FlaggedInputTree'
forall flag a. flag -> a -> Flagged flag a
Flagged Bool
False (TypedTree Bool (Maybe Text) Text -> FlaggedInputTree')
-> TypedTree Bool (Maybe Text) Text -> FlaggedInputTree'
forall a b. (a -> b) -> a -> b
$
KindName
-> TypeName
-> Tree Bool (Maybe Text) Text
-> TypedTree Bool (Maybe Text) Text
forall flag a b.
KindName -> TypeName -> Tree flag a b -> TypedTree flag a b
TypedTree KindName
"document-mainbody" TypeName
"fpo-mainbody-simple" (Tree Bool (Maybe Text) Text -> TypedTree Bool (Maybe Text) Text)
-> Tree Bool (Maybe Text) Text -> TypedTree Bool (Maybe Text) Text
forall a b. (a -> b) -> a -> b
$
Maybe Text -> [FlaggedInputTree'] -> Tree Bool (Maybe Text) Text
forall flag a b. a -> [FlaggedTree flag a b] -> Tree flag a b
Tree
Maybe Text
forall a. Maybe a
Nothing
[ Bool -> TypedTree Bool (Maybe Text) Text -> FlaggedInputTree'
forall flag a. flag -> a -> Flagged flag a
Flagged Bool
True TypedTree Bool (Maybe Text) Text
sectionOne
, Bool -> TypedTree Bool (Maybe Text) Text -> FlaggedInputTree'
forall flag a. flag -> a -> Flagged flag a
Flagged Bool
True TypedTree Bool (Maybe Text) Text
sectionTwo
, Bool -> TypedTree Bool (Maybe Text) Text -> FlaggedInputTree'
forall flag a. flag -> a -> Flagged flag a
Flagged Bool
True TypedTree Bool (Maybe Text) Text
sectionThree
]
extroTree :: Flagged Bool (TypedTree flag a Text)
extroTree =
Bool
-> TypedTree flag a Text -> Flagged Bool (TypedTree flag a Text)
forall flag a. flag -> a -> Flagged flag a
Flagged Bool
False (TypedTree flag a Text -> Flagged Bool (TypedTree flag a Text))
-> TypedTree flag a Text -> Flagged Bool (TypedTree flag a Text)
forall a b. (a -> b) -> a -> b
$
KindName -> TypeName -> Tree flag a Text -> TypedTree flag a Text
forall flag a b.
KindName -> TypeName -> Tree flag a b -> TypedTree flag a b
TypedTree KindName
"document-extro" TypeName
"" (Tree flag a Text -> TypedTree flag a Text)
-> Tree flag a Text -> TypedTree flag a Text
forall a b. (a -> b) -> a -> b
$
Text -> Tree flag a Text
forall flag a b. b -> Tree flag a b
Leaf Text
extroText
appTrees :: [FlaggedInputTree']
appTrees :: [FlaggedInputTree']
appTrees = [FlaggedInputTree'
appendixTree, FlaggedInputTree'
attachmentsTree]
appendixTree :: FlaggedInputTree'
appendixTree :: FlaggedInputTree'
appendixTree =
Bool -> TypedTree Bool (Maybe Text) Text -> FlaggedInputTree'
forall flag a. flag -> a -> Flagged flag a
Flagged Bool
False (TypedTree Bool (Maybe Text) Text -> FlaggedInputTree')
-> TypedTree Bool (Maybe Text) Text -> FlaggedInputTree'
forall a b. (a -> b) -> a -> b
$
KindName
-> TypeName
-> Tree Bool (Maybe Text) Text
-> TypedTree Bool (Maybe Text) Text
forall flag a b.
KindName -> TypeName -> Tree flag a b -> TypedTree flag a b
TypedTree KindName
"appendix-section" TypeName
"appendix" (Tree Bool (Maybe Text) Text -> TypedTree Bool (Maybe Text) Text)
-> Tree Bool (Maybe Text) Text -> TypedTree Bool (Maybe Text) Text
forall a b. (a -> b) -> a -> b
$
Maybe Text -> [FlaggedInputTree'] -> Tree Bool (Maybe Text) Text
forall flag a b. a -> [FlaggedTree flag a b] -> Tree flag a b
Tree Maybe Text
forall a. Maybe a
Nothing []
attachmentsTree :: FlaggedInputTree'
attachmentsTree :: FlaggedInputTree'
attachmentsTree =
Bool -> TypedTree Bool (Maybe Text) Text -> FlaggedInputTree'
forall flag a. flag -> a -> Flagged flag a
Flagged Bool
False (TypedTree Bool (Maybe Text) Text -> FlaggedInputTree')
-> TypedTree Bool (Maybe Text) Text -> FlaggedInputTree'
forall a b. (a -> b) -> a -> b
$
KindName
-> TypeName
-> Tree Bool (Maybe Text) Text
-> TypedTree Bool (Maybe Text) Text
forall flag a b.
KindName -> TypeName -> Tree flag a b -> TypedTree flag a b
TypedTree KindName
"appendix-section" TypeName
"attachments" (Tree Bool (Maybe Text) Text -> TypedTree Bool (Maybe Text) Text)
-> Tree Bool (Maybe Text) Text -> TypedTree Bool (Maybe Text) Text
forall a b. (a -> b) -> a -> b
$
Maybe Text -> [FlaggedInputTree'] -> Tree Bool (Maybe Text) Text
forall flag a b. a -> [FlaggedTree flag a b] -> Tree flag a b
Tree Maybe Text
forall a. Maybe a
Nothing []
introText :: Text
introText :: Text
introText =
[Text] -> Text
unlines
[ Text
"[date]"
, Text
""
, Text
"// Insert correct date here; displayed at the very top."
, Text
"Vom 19. Januar 2038"
, Text
""
, Text
""
, Text
"[publ_log]"
, Text
""
, Text
"// Publication log; typically one paragraph (i.e., no empty lines)"
, Text
"// with many comma-separated \"Veröffentlichung vom ...\""
, Text
""
, Text
""
, Text
"[intro]"
, Text
""
, Text
"// Intro; typically one paragraph à la:"
, Text
"// \"Aufgrund ... wird ... erlassen:\""
]
mkSection :: Text -> TypedInputTree'
mkSection :: Text -> TypedTree Bool (Maybe Text) Text
mkSection = KindName
-> TypeName
-> Tree Bool (Maybe Text) Text
-> TypedTree Bool (Maybe Text) Text
forall flag a b.
KindName -> TypeName -> Tree flag a b -> TypedTree flag a b
TypedTree KindName
"section" TypeName
"section" (Tree Bool (Maybe Text) Text -> TypedTree Bool (Maybe Text) Text)
-> (Text -> Tree Bool (Maybe Text) Text)
-> Text
-> TypedTree Bool (Maybe Text) Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> Tree Bool (Maybe Text) Text
forall flag a b. b -> Tree flag a b
Leaf
sectionOne :: TypedInputTree'
sectionOne :: TypedTree Bool (Maybe Text) Text
sectionOne =
Text -> TypedTree Bool (Maybe Text) Text
mkSection (Text -> TypedTree Bool (Maybe Text) Text)
-> Text -> TypedTree Bool (Maybe Text) Text
forall a b. (a -> b) -> a -> b
$
[Text] -> Text
unlines
[ Text
"§ Zugang zum Masterstudium"
, Text
""
, Text
"Der Zugang zum Studiengang setzt voraus, dass die Bewerberin oder der Bewerber"
, Text
"einen anerkannten, qualifizierten Bachelor of Science in Informatik oder einer"
, Text
"verwandten Disziplin besitzt. Der Zugang kann nur erfolgen, wenn"
, Text
" # mit diesem Abschluss dieselben Lernziele erreicht werden, die"
, Text
" mit dem Bachelor of Science Informatik der Christian-Albrechts-Universität"
, Text
" zu Kiel erreicht werden, oder"
, Text
" # gemäß der Satzung zur Feststellung der Eignung für den 1-Fach-Masterstudiengang"
, Text
" Informatik die Eignung festgestellt wurde."
, Text
""
, Text
"Die Feststellung, ob die Zugangsvoraussetzungen erfüllt sind, insbesondere, ob ein"
, Text
"qualifizierter Abschluss vorliegt, trifft der Prüfungsausschuss Informatik."
, Text
"Erfüllt die Studiengangskoordinatorin, der Studiengangskoordinator oder eine"
, Text
"andere vom Prüfungsausschuss beauftragte Person die in der Anerkennungssatzung"
, Text
"für eine Feststellung genannten Voraussetzungen, entscheidet diese oder dieser"
, Text
"über das Vorliegen der Zugangsvoraussetzungen."
, Text
""
, Text
"Der Zugang zum Studiengang Informatik mit dem Abschluss Master of Science setzt"
, Text
"weiter den Nachweis von Englischkenntnissen voraus durch"
, Text
" # eine allgemeine Hochschulreife oder"
, Text
" # eine fachgebundene Hochschulreife mit mindestens drei Jahren Englisch auf"
, Text
" grundlegendem Niveau (Grundkursniveau) oder"
, Text
" # entsprechende Sprachnachweise auf dem Niveau B1 des Gemeinsamen Europäischen"
, Text
" Referenzrahmens für Sprachen (GER) oder"
, Text
" # ein Ergebnis von mindestens 145 Punkten im Abschnitt „Verbal Reasoning“"
, Text
" eines GRE®revised General Tests."
, Text
"Absolventinnen und Absolventen des CAU-Bachelorstudiengangs, auf dem dieser"
, Text
"Master aufbaut und für den die geforderten Voraussetzungen bereits nachzuweisen"
, Text
"waren, müssen diese Voraussetzungen nicht erneut nachweisen."
]
sectionTwo :: TypedInputTree'
sectionTwo :: TypedTree Bool (Maybe Text) Text
sectionTwo =
Text -> TypedTree Bool (Maybe Text) Text
mkSection (Text -> TypedTree Bool (Maybe Text) Text)
-> Text -> TypedTree Bool (Maybe Text) Text
forall a b. (a -> b) -> a -> b
$
[Text] -> Text
unlines
[ Text
"§{label:} Studienaufbau"
, Text
""
, Text
"Das Masterstudium hat eine Regelstudienzeit von vier Semestern."
, Text
"Das Studienvolumen umfasst 120 LP und etwa 80 Semesterwochenstunden."
, Text
""
, Text
"Es müssen Wahlpflichtmodule im Umfang von insgesamt 90 LP erfolgreich abgeschlossen werden."
, Text
" # Informatikmodule im Gesamtumfang von 75 bis 80 LP aus den folgenden Bereichen:"
, Text
" # Wahlpflichtmodule Informatik (Msc-Inf-WP): Es müssen mindestens 12 LP"
, Text
" aus dem Bereich Theoretische Informatik (MSc-Inf-Theo) erbracht werden."
, Text
" Über die Zuordnung von Modulen zu diesem Bereich entscheidet der"
, Text
" Prüfungsausschuss nach Rücksprache mit den Dozentinnen und Dozenten des"
, Text
" Bereichs und macht diese in geeigneter Weise bekannt."
, Text
" #{numb:} Masterseminare zur Informatik (Msc-Inf-Sem) im Umfang von 5 LP: Ziel"
, Text
" eines Masterseminars ist eine eigenständige Auseinandersetzung mit"
, Text
" wissenschaftlichen Themen der Informatik, dem Schreiben wissenschaftlicher"
, Text
" Texte und dem Präsentieren wissenschaftlicher Ergebnisse."
, Text
" # Masterprojekte zur Informatik (Msc-Inf-Proj) im Umfang von 10 LP: Ziel"
, Text
" eines Masterprojekts ist die intensive, praktische Auseinandersetzung mit"
, Text
" einem aktuellen Thema der Informatik. Inhalt sollen insbesondere die"
, Text
" Bereiche Problemanalyse, Spezifikation und Implementierung sein."
, Text
" Das Masterprojekt soll in der Regel als Gruppenarbeit erfolgen,"
, Text
" so dass neben den fachlichen Inhalten auch Aspekte der Gruppen-"
, Text
" und Projektarbeit erlernt werden. Die Ergebnisse des Masterprojekts"
, Text
" werden im Rahmen eines Vortrags präsentiert."
, Text
" # Projektgruppen (Msc-Winf-PrGrp) im Umfang von 15 bis 20 LP:"
, Text
" Die Projektgruppe verfolgt dieselben Ziele wie ein Masterprojekt in"
, Text
" einem größeren Rahmen."
, Text
" #{nume:} Forschungsprojekte (MSc-WInf-FoPro, Mitarbeit in einer Arbeitsgruppe),"
, Text
" jeweils im Umfang von bis zu 10 LP."
, Text
"Es müssen die folgenden Bedingungen bei den Modulen gemäß den Buchstaben {:numb})"
, Text
"bis {:nume}) eingehalten werden:"
, Text
" # 1"
, Text
" # a"
, Text
" # Ein oder zwei Masterseminare."
, Text
" # Ein oder zwei Masterprojekte oder eine Projektgruppe."
, Text
" # Höchstens ein Forschungsprojekt."
, Text
" # Der Gesamtumfang der Module gemäß den Buchstaben {:numb}) bis {:nume}) ist höchstens 25 LP."
, Text
" #{num2:} Außerfachlicher Wahlbereich im Umfang von 10 bis 15 LP: In diesem Bereich können"
, Text
" Studierende Module aus dem Angebot der Christian-Albrechts-Universität zu Kiel"
, Text
" wählen, welche nicht auch in einem anderen Bereich dieses Studiengangs belegt"
, Text
" werden können. Sprachkurse, welche nicht über das Niveau der gymnasialen Oberstufe"
, Text
" hinausgehen, oder die Muttersprache betreffen, sowie Module mit informatischem"
, Text
" beziehungsweise wirtschaftsinformatischem Inhalt, gehören nicht zu diesem Bereich."
, Text
" Bei der Wahl außerfachlicher Module müssen die Kapazitätsbeschränkungen anderer"
, Text
" Fächer gemäß § 9 Absatz 3 PVO beachtet werden."
, Text
" # Neben der Wahl von Modulen gemäß Nummer {:num2} ist im außerfachlichen Wahlbereich auch"
, Text
" die Wahl eines koordinierten Nebenfachs möglich. Das Nebenfach kann sowohl"
, Text
" konsekutiven Charakter haben und das gleiche Nebenfach aus dem Bachelorstudiengang"
, Text
" fortsetzen als auch ein neues einführendes Nebenfach sein. Die möglichen Nebenfächer"
, Text
" mit den zu absolvierenden Modulen werden zum Studienbeginn in geeigneter Weise durch"
, Text
" das Institut für Informatik bekannt gemacht. Dabei kann es in einzelnen Nebenfächern"
, Text
" erforderlich sein, mehr als 10 LP zu erreichen. Weitere Nebenfächer können in"
, Text
" Absprache mit den beteiligten Fächern und dem Prüfungsausschuss Informatik, bestimmt"
, Text
" werden. Das Nebenfach wird auf dem Zeugnis ausgewiesen."
, Text
""
, Text
"Im Rahmen des Masterstudiums ist eine Masterarbeit im Umfang von 30 LP anzufertigen."
, Text
"Näheres regelt § {:par6}. Die Masterarbeit erfolgt in der Regel als Abschluss des Masterstudiums."
, Text
""
, Text
"Aktualisierungen der Wahlpflichtbereiche nimmt der Prüfungsausschuss vor;"
, Text
"vor Einführung eines neuen Moduls werden die durchführenden Lehrpersonen und"
, Text
"die Studiengangskoordinatorin oder der Studiengangskoordinator gehört."
, Text
""
, Text
"Bereits für einen Bachelorabschluss verwendete Wahlpflichtmodule können"
, Text
"nicht erneut eingebracht werden."
]
sectionThree :: TypedInputTree'
sectionThree :: TypedTree Bool (Maybe Text) Text
sectionThree =
Text -> TypedTree Bool (Maybe Text) Text
mkSection (Text -> TypedTree Bool (Maybe Text) Text)
-> Text -> TypedTree Bool (Maybe Text) Text
forall a b. (a -> b) -> a -> b
$
[Text] -> Text
unlines
[ Text
"§ Studienaufbau"
, Text
""
, Text
"Die Regelstudienzeit und das Studienvolumen betragen drei Jahre beziehungsweise"
, Text
"180 Leistungspunkte und circa 120 Semesterwochenstunden."
, Text
""
, Text
"Der Bachelorstudiengang Wirtschaftsinformatik (Studienverlaufsplan siehe Anlage {:verlaufsplan},"
, Text
"Module mit Prüfungsleistungen siehe Anlage {:anlage11} und {:anlage12}) setzt sich aus folgenden"
, Text
"Bereichen zusammen:"
, Text
" # Grundmodule (Pflicht, BSc-WInf-G) im Umfang von 46 LP:"
, Text
" - infEWInf-01a: Einführung in die Wirtschaftsinformatik (7 LP)"
, Text
" - infEInf-01a: Einführung in die Informatik (8 LP)"
, Text
" - Inf-InfRecht: Informatikrecht (2 LP)"
, Text
" # Aufbaumodule (Pflicht, BSc-WInf-A) im Umfang von 32 LP:"
, Text
" - VWL-STATWX: Statistische Methoden (10 LP)"
, Text
" - infST-01a: Softwaretechnik (7 LP)"
, Text
" - infEthik-01a: Ethik in der Informatik (2 LP)"
, Text
" # Wahlpflichtmodule (BSc-WInf-WP-WInf und BSc-WInf-WP-Inf) im Umfang von 37 LP."
, Text
" Weitere Informationen sind in Anlage {:anlage12} aufgeführt. Diese Module bestehen in der"
, Text
" Regel aus einer Vorlesung mit einer begleitenden Übung."
, Text
" Bei der Wahl der Module müssen die Studierenden mindestens 23 LP aus dem Bereich"
, Text
" Wahlpflichtmodule BSc-WInf-WP-WInf und mindestens 7 LP aus dem Bereich"
, Text
" Wahlpflichtmodule BSc-WInf-WP-Inf wählen."
, Text
" # ein Projekt Wirtschaftsinformatik (BSc-WInf-Proj) im Umfang von 6 LP."
, Text
" # ein Seminarmodul zur Wirtschaftsinformatik (BSc-WInf-Sem) im Umfang von 7 LP,"
, Text
" gemäß Anlage {:anlage12}."
, Text
" # Studienangebote BWL oder VWL im Umfang von 40 LP:"
, Text
" Die Studienangebote BWL und VWL sind Alternativen. Mit der Wahl des ersten Moduls,"
, Text
" welches nicht in beiden Varianten vorkommt, legen Studierende fest, welche"
, Text
" Variante sie wählen. Ein Wechsel zu dem jeweils anderen Studienangebot ist"
, Text
" jederzeit möglich. Zum Erreichen des Bachelorabschlusses müssen alle Module"
, Text
" eines der beiden Studienangebote erfolgreich absolviert werden."
, Text
" # Studienangebot BWL, gemäß Anlage {:anlage6}:"
, Text
" # BWL-EinfBWL: Einführung in die Betriebswirtschaftslehre (5 LP)"
, Text
" # BWL-ERW: Externes Rechnungswesen (5 LP)"
, Text
" # BWL-ER: Entscheidungsrechnungen (5 LP)"
, Text
" # VWL-EVWL: Einführung in die Volkswirtschaftslehre"
, Text
" # BWL-InnoMProz: Innovationsmanagement: Prozesse und Methoden (5 LP)"
, Text
" # Zwei Module des Wahlpflichtbereichs BWL (zusammen 10 LP):"
, Text
" - BWL-Ent: Decision Analysis I (5 LP)"
, Text
" - BWL-RDM: Decision Analysis II (5 LP)"
, Text
" - BWL-ProdLog: Produktion und Logistik (5 LP)"
, Text
" - BWL-Mark: Marketing (5 LP)"
, Text
" Wurde ein Wahlpflichtmodul erfolgreich abgeschlossen, darf dieses"
, Text
" nicht durch ein anderes Wahlpflichtmodul (zum Beispiel zur"
, Text
" Notenverbesserung) ersetzt werden."
, Text
" # Studienangebot VWL, gemäß Anlage {:anlage6}:"
, Text
" # BWL-EinfBWL: Einführung in die Betriebswirtschaftslehre (5 LP)"
, Text
" # VWL-EVWL: Einführung in die Volkswirtschaftslehre (10 LP)"
, Text
" # VWLvwlMikro1-01a: Grundzüge der mikroökonomischen Theorie I (5 LP)"
, Text
" # Bachelorarbeit, individuell oder im Abschlussprojekt, im Umfang von 12 LP gemäß § {:abschluss}."
]
extroText :: Text
extroText :: Text
extroText =
[Text] -> Text
unlines
[ Text
"[extro]"
, Text
""
, Text
"// Here goes some text that goes at the end of the document."
, Text
""
, Text
"// In particular, there should be the date and name of the"
, Text
"// signatory, with space for the actual signature."
, Text
"// - Vertical space can be inserted as {nl}."
, Text
""
, Text
""
, Text
"[legal_log]"
, Text
""
, Text
"// Here, a sequence of paragraphs like the following should go."
, Text
""
, Text
"<*Artikel 42 der Änderungssatzung vom 19. Januar 2038:>"
, Text
"Diese Satzung tritt am Tag nach ihrer Bekanntmachung in Kraft."
]