iconv-typed: Type safe iconv wrapper

[ bsd3, library, web ] [ Propose Tags ]
iconv-typed

An experiment in bringing type safety to the iconv package.

Usage Example
This is _almost_ a drop-in replacement. Compare the original code from iconv:
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE OverloadedStrings #-}
module Main where

import Codec.Text.IConv

main :: IO ()
main = print $ convert "UTF-8" "LATIN1" "hello"

With the equivalent in `iconv-typed`:

{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE OverloadedStrings #-}
module Main where

import Codec.Text.IConv.Typed

main :: IO ()
main = print $ convert (E :: E "UTF-8") (E :: E "LATIN1") "hello"

As a result, this code will compile and run only if the passed encoding resolves to a supported encoding (as retrieved at compile time by calling `iconv -l`). For example, the following won't compile:

main = print $ convert (E :: E "UFT-8") (E :: E "LATIN1") "hello"

As UFT is mispelled.

Modules

  • Codec
    • Text
      • IConv
        • Codec.Text.IConv.Typed
          • Codec.Text.IConv.Typed.TH

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0.0, 0.1.0.1, 0.2.0.0
Dependencies base (>=4.7 && <5), bytestring, iconv (<0.5), shelly (<1.8.0.0), template-haskell (<3.0.0.0), text (<1.4.0.0) [details]
License BSD-3-Clause
Copyright 2016 Alfredo Di Napoli
Author Alfredo Di Napoli
Maintainer alfredo.dinapoli@gmail.com
Category Web
Home page https://github.com/adinapoli/iconv-typed#readme
Source repo head: git clone https://github.com/adinapoli/iconv-typed
Uploaded by AlfredoDiNapoli at 2016-10-23T12:33:20Z
Distributions
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 1839 total (8 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2016-11-14 [all 8 reports]