PureScript 语言 后端与 API 开发案例

PureScript阿木 发布于 1 天前 2 次阅读


阿木博主一句话概括:PureScript 语言在后端与 API 开发中的应用与实践

阿木博主为你简单介绍:
PureScript 是一种函数式编程语言,它基于 Haskell,旨在提供一种简洁、高效且易于维护的编程方式。本文将探讨 PureScript 在后端与 API 开发中的应用,通过实际案例展示如何使用 PureScript 构建后端服务,并实现高效的 API 接口。

一、
随着互联网技术的不断发展,后端与 API 开发成为了软件开发中的重要环节。PureScript 作为一种新兴的编程语言,凭借其简洁的语法和强大的函数式编程特性,逐渐受到开发者的关注。本文将围绕 PureScript 语言在后端与 API 开发中的应用,进行深入探讨。

二、PureScript 简介
PureScript 是一种函数式编程语言,它旨在提供一种简洁、高效且易于维护的编程方式。PureScript 的语法简洁,易于学习,同时支持类型系统,有助于提高代码的可读性和可维护性。

三、PureScript 在后端开发中的应用
1. 使用 PureScript 构建 Node.js 应用
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时,它允许开发者使用 JavaScript 编写服务器端代码。PureScript 可以通过编译器转换为 JavaScript 代码,从而在 Node.js 环境中运行。

以下是一个使用 PureScript 构建 Node.js 应用的简单示例:

purescript
module Main where

import Node.Http.Server as Http
import Node.Encoding as Encoding
import Node.FS as FS

main = do
server do
let response = "Hello, PureScript!"
resp.setHeader "Content-Type" "text/plain"
resp.setHeader "Content-Length" (toString $ Encoding.size response)
resp.end response)
server.listen 3000
pure unit

2. 使用 PureScript 与 Express.js 集成
Express.js 是一个流行的 Node.js 框架,用于快速构建 Web 应用。PureScript 可以与 Express.js 集成,通过编写 PureScript 代码来处理 HTTP 请求。

以下是一个使用 PureScript 与 Express.js 集成的示例:

purescript
module Server where

import Node.Express as Express
import Node.Http.Server as Http
import Node.Encoding as Encoding
import Node.FS as FS

main = do
app do
let response = "Hello, PureScript!"
resp.send response)
server <- Http.createServer app
server.listen 3000
pure unit

四、PureScript 在 API 开发中的应用
1. 使用 PureScript 构建 RESTful API
RESTful API 是一种流行的 API 设计风格,它通过 HTTP 请求来访问资源。PureScript 可以通过编写函数式代码来构建 RESTful API。

以下是一个使用 PureScript 构建 RESTful API 的示例:

purescript
module Api where

import Node.Express as Express
import Node.Http.Server as Http
import Node.Encoding as Encoding
import Node.FS as FS

-- 定义一个简单的数据结构
type User = { id :: Int, name :: String }

-- 模拟数据库
users :: Array User
users = [{ id: 1, name: "Alice" }, { id: 2, name: "Bob" }]

-- 获取用户列表
getUserList :: Express.Response -> IO Unit
getUserList resp = do
let response = JSON.stringify users
resp.send response

-- 获取单个用户
getUserById :: Int -> Express.Response -> IO Unit
getUserById id resp = do
let user = List.find (u -> u.id == id) users
resp.send $ JSON.stringify user

main = do
app getUserById (readInt (req.params.id) 10) resp)
server <- Http.createServer app
server.listen 3000
pure unit

2. 使用 PureScript 与 JSON Web Tokens (JWT) 集成
JWT 是一种用于在网络上安全传输信息的简洁、自包含的方式。PureScript 可以与 JWT 集成,实现用户认证和授权。

以下是一个使用 PureScript 与 JWT 集成的示例:

```purescript
module Auth where

import Node.Express as Express
import Node.Http.Server as Http
import Node.Encoding as Encoding
import Node.FS as FS
import Data.String as String
import Data.Array as Array
import Data.Int as Int
import Data.Maybe as Maybe
import Data.Either as Either
import Data.Json.Decode as Decode
import Data.Json.Decode.Generic as DecodeGeneric
import Data.Json.Encode as Encode
import Data.Json.Encode.Generic as EncodeGeneric
import Data.Time.Units as Time
import Data.Time.Now as Now
import Data.Time.Duration as Duration
import Data.Time.Clock.POSIX as Posix
import Data.Time.Clock.Instant as Instant
import Data.Time.Clock as Clock
import Data.Time.Format as Format
import Data.Time.Format.Instant as InstantFormat
import Data.Time.Format.DateTime as DateTimeFormat
import Data.Time.Format.DateTimeOptions as DateTimeOptions
import Data.Time.Format.DateTimeFormat as DateTimeFormat
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as DateTimeFormatOptions
import Data.Time.Format.DateTimeFormatOptions as