textbooks = {
    'Programming in Scala, First Edition': [
        'algebraic data type',
        'alternative',
        'annotation',
        'anonymous class',
        'anonymous function',
        'apply',
        'argument',
        'assign',
        'auxiliary constructor',
        'block',
        'bound variable',
        'by-name parameter',
        'by-value parameter',
        'class',
        'closure',
        'companion class',
        'companion object',
        'contravariant',
        'covariant',
        'currying',
        'declare',
        'define',
        'direct subclass',
        'direct superclass',
        'equality',
        'existential type',
        'expression',
        'filter',
        'filter expression',
        'first-class function',
        'for comprehension',
        'free variable',
        'function',
        'function literal',
        'function value',
        'functional style',
        'generator',
        'generator expression',
        'generic class',
        'generic trait',
        'helper function',
        'helper method',
        'immutable',
        'imperative style',
        'initialize',
        'instance',
        'instantiate',
        'invariant',
        'invoke',
        'JVM',
        'literal',
        'local function',
        'local variable',
        'member',
        'message',
        'meta-programming',
        'method',
        'mixin',
        'mixin composition',
        'modifier',
        'multiple definitions',
        'nonvariant',
        'operation',
        'parameter',
        'parameterless function',
        'parameterless method',
        'parametric field',
        'partially applied function',
        'path-dependent type',
        'pattern',
        'pattern guard',
        'predicate',
        'primary constructor',
        'procedure',
        'reassignable',
        'recursive',
        'reference',
        'reference equality',
        'reference type',
        'referential transparency',
        'refers',
        'result',
        'result type',
        'return',
        'runtime',
        'runtime type',
        'script',
        'selector',
        'self type',
        'semi-structured data',
        'serialization',
        'shadow',
        'signature',
        'singleton object',
        'standalone object',
        'statement',
        'static type',
        'subclass',
        'subtrait',
        'subtype',
        'superclass',
        'supertrait',
        'supertype',
        'synthetic class',
        'tail recursive',
        'target typing',
        'template',
        'trait',
        'type',
        'type constraint',
        'type constructor',
        'type parameter',
        'type signature',
        'uniform access principle',
        'unreachable',
        'unreferenced',
        'value',
        'value type',
        'variable',
        'variance',
        'yield',
    ],
}

