{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell #-}

-- | This module defines vocabulary for the course.
module Study.Courses.English.Grammar.Crash.Vocabulary where

import Core
import Study.Framework.Lojban.VocabularyLoaders (loadVocabularyFromYamlCode)
import Data.FileEmbed (embedStringFile)

-- | Vocabulary for the first lesson.
vocabulary01 :: Vocabulary
vocabulary01 :: Vocabulary
vocabulary01 = Text -> Vocabulary
loadVocabularyFromYamlCode $(embedStringFile "resources/courses/english/grammar/crash/vocabulary/01.yaml")

-- | Cumulative vocabulary up to the first lesson.
vocabulary01_cumulative :: Vocabulary
vocabulary01_cumulative :: Vocabulary
vocabulary01_cumulative = Vocabulary
vocabulary01

-- | Vocabulary for the second lesson.
vocabulary02 :: Vocabulary
vocabulary02 :: Vocabulary
vocabulary02 = Text -> Vocabulary
loadVocabularyFromYamlCode $(embedStringFile "resources/courses/english/grammar/crash/vocabulary/02.yaml")

-- | Cumulative vocabulary up to the second lesson.
vocabulary02_cumulative :: Vocabulary
vocabulary02_cumulative :: Vocabulary
vocabulary02_cumulative = Vocabulary
vocabulary01_cumulative Vocabulary -> Vocabulary -> Vocabulary
forall a. Semigroup a => a -> a -> a
<> Vocabulary
vocabulary02

-- | Vocabulary for the third lesson.
vocabulary03 :: Vocabulary
vocabulary03 :: Vocabulary
vocabulary03 = Text -> Vocabulary
loadVocabularyFromYamlCode $(embedStringFile "resources/courses/english/grammar/crash/vocabulary/03.yaml")

-- | Cumulative vocabulary up to the third lesson.
vocabulary03_cumulative :: Vocabulary
vocabulary03_cumulative :: Vocabulary
vocabulary03_cumulative = Vocabulary
vocabulary02_cumulative Vocabulary -> Vocabulary -> Vocabulary
forall a. Semigroup a => a -> a -> a
<> Vocabulary
vocabulary03