car = l => Array.isArray(l) ? l[0] : undefined

assertEqual(car(['A', 'B']),
            'A')
assertEqual(car(['A', ['B1', 'B2']]),
            'A')
assertEqual(car([['A1', 'A2'], 'B']),
            ['A1', 'A2'])
assertEqual(car('A'),
            undefined)

cdr = l => Array.isArray(l) ? l[1] : undefined

assertEqual(cdr(['A', 'B']),
            'B')
assertEqual(cdr(['A', ['B1', 'B2']]),
            ['B1', 'B2'])
assertEqual(cdr([['A1', 'A2'], 'B']),
            'B')
assertEqual(cdr('A'),
            undefined)
assertEqual(car(cdr(['A', ['B1', 'B2']])),
            'B1')
assertEqual(car(cdr(['A', 'B'])),
            undefined)
assertEqual(car(cons('A', 'B')),
            'A')
