Haskell 语言 搜索引擎Elasticsearch DSL查询实战

Haskell阿木 发布于 22 天前 5 次阅读


Elasticsearch DSL 查询实战:Haskell 语言下的搜索引擎应用

Elasticsearch 是一个基于 Lucene 的开源搜索引擎,它提供了强大的全文搜索功能,并且可以通过 Elasticsearch DSL(Domain Specific Language)进行复杂的查询操作。Haskell 是一种纯函数编程语言,以其强大的类型系统和并发特性而闻名。本文将探讨如何在 Haskell 中使用 Elasticsearch DSL 进行查询,并通过实际案例展示其应用。

环境准备

在开始之前,我们需要准备以下环境:

1. 安装 Elasticsearch:可以从 [Elasticsearch 官网](https://www.elastic.co/cn/elasticsearch/) 下载并安装。

2. 安装 Haskell:可以从 [Haskell 官网](https://www.haskell.org/) 下载并安装。

3. 安装 Elasticsearch Haskell 客户端库:可以使用 `cabal` 或 `stack` 来安装 `elasticsearch` 包。

bash

cabal install elasticsearch


bash

stack build


Elasticsearch DSL 简介

Elasticsearch DSL 允许用户使用类似 SQL 的语法来构建查询。它支持多种查询类型,包括:

- Term 查询:基于精确值进行搜索。

- 短语查询:基于短语进行搜索。

- 全文查询:基于全文进行搜索。

- 范围查询:基于数值范围进行搜索。

- 复合查询:组合多个查询。

Haskell 中的 Elasticsearch DSL

在 Haskell 中,我们可以使用 `elasticsearch` 包来构建和执行 Elasticsearch DSL 查询。以下是一个简单的示例,展示如何在 Haskell 中构建一个基本的查询:

```haskell

import qualified Data.Aeson as Aeson

import qualified Data.Text as Text

import qualified Network.HTTP.Client as HTTP

import qualified Network.HTTP.Client.TLS as TLS

import qualified Data.ByteString.Lazy as BL

import qualified Data.Either as Either

import qualified Data.List as List

import qualified Data.Map as Map

import qualified Data.Set as Set

import qualified Data.Time as Time

import qualified Data.Time.Clock as Time

import qualified Data.Time.Clock.POSIX as Time.POSIX

import qualified Data.Time.Format as Time.Format

import qualified Data.Time.LocalTime as Time.LocalTime

import qualified Data.Time.LocalTime.TimeZone as Time.TimeZone

import qualified Data.Time.LocalTime.TimeZoneDB as Time.TimeZoneDB

import qualified Data.Time.LocalTime.TimeZoneInfo as Time.TimeZoneInfo

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZone as Time.TimeZoneInfo.TimeZone

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneName as Time.TimeZoneInfo.TimeZoneName

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB as Time.TimeZoneInfo.TimeZoneNameDB

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDB as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDB

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry as Time.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry

import qualified Data.Time.LocalTime.TimeZoneInfo.TimeZoneNameDB.TimeZoneNameDBEntryEntryEntryEntryEntryEntryEntryEntryEntryEntry