diff --git a/COPYING b/COPYING
new file mode 100644
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,28 @@
+<!-- -*- xml -*-
+
+convertible-ascii is in the public domain.
+
+See http://creativecommons.org/licenses/publicdomain/
+
+-->
+
+<rdf:RDF xmlns="http://web.resource.org/cc/"
+	     xmlns:dc="http://purl.org/dc/elements/1.1/"
+	     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <Work rdf:about="http://cielonegro.org/Convertible-Ascii">
+	<dc:title>convertible-ascii</dc:title>
+	<dc:rights>
+      <Agent>
+	    <dc:title>PHO</dc:title>
+	  </Agent>
+    </dc:rights>
+	<license rdf:resource="http://web.resource.org/cc/PublicDomain" />
+  </Work>
+      
+  <License rdf:about="http://web.resource.org/cc/PublicDomain">
+	<permits rdf:resource="http://web.resource.org/cc/Reproduction" />
+	<permits rdf:resource="http://web.resource.org/cc/Distribution" />
+	<permits rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+  </License>
+
+</rdf:RDF>
diff --git a/Data/Convertible/Instances/Ascii.hs b/Data/Convertible/Instances/Ascii.hs
new file mode 100644
--- /dev/null
+++ b/Data/Convertible/Instances/Ascii.hs
@@ -0,0 +1,161 @@
+{-# LANGUAGE
+    FlexibleContexts
+  , MultiParamTypeClasses
+  , TemplateHaskell
+  , TypeSynonymInstances
+  , UnicodeSyntax
+  #-}
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+-- |Instances to convert amongst 'Ascii' strings and other things.
+--
+-- Note that data types are re-exported only for the documentation
+-- purpose. They'll disappear as soon as Haddock's issue #54
+-- (<http://trac.haskell.org/haddock/ticket/54>) gets resolved. So you
+-- should always import this module as:
+--
+-- > import Data.Convertible.Instances.Ascii ()
+module Data.Convertible.Instances.Ascii
+    ( Ascii
+    , CIAscii
+    , AsciiBuilder
+    ) where
+import Blaze.ByteString.Builder (Builder)
+import Control.Failure
+import Data.Ascii (Ascii, CIAscii, AsciiBuilder)
+import qualified Data.Ascii as A
+import Data.ByteString (ByteString)
+import Data.Convertible.Base
+import Data.Convertible.Utils
+import Data.Text (Text)
+import Prelude.Unicode
+
+instance ConvertSuccess Ascii AsciiBuilder where
+    {-# INLINE convertSuccess #-}
+    convertSuccess = A.toAsciiBuilder
+
+instance ConvertSuccess Ascii ByteString where
+    {-# INLINE convertSuccess #-}
+    convertSuccess = A.toByteString
+
+instance ConvertSuccess Ascii CIAscii where
+    {-# INLINE convertSuccess #-}
+    convertSuccess = A.toCIAscii
+
+instance ConvertSuccess Ascii String where
+    {-# INLINE convertSuccess #-}
+    convertSuccess = A.toString
+
+instance ConvertSuccess Ascii Text where
+    {-# INLINE convertSuccess #-}
+    convertSuccess = A.toText
+
+instance ConvertSuccess AsciiBuilder Ascii where
+    {-# INLINE convertSuccess #-}
+    convertSuccess = A.fromAsciiBuilder
+
+instance ConvertSuccess AsciiBuilder Builder where
+    {-# INLINE convertSuccess #-}
+    convertSuccess = A.toBuilder
+
+instance ConvertSuccess AsciiBuilder ByteString where
+    {-# INLINE convertSuccess #-}
+    convertSuccess = convertSuccessVia ((⊥) ∷ Ascii)
+
+instance ConvertSuccess AsciiBuilder CIAscii where
+    {-# INLINE convertSuccess #-}
+    convertSuccess = convertSuccessVia ((⊥) ∷ Ascii)
+
+instance ConvertSuccess AsciiBuilder String where
+    {-# INLINE convertSuccess #-}
+    convertSuccess = convertSuccessVia ((⊥) ∷ Ascii)
+
+instance ConvertSuccess AsciiBuilder Text where
+    {-# INLINE convertSuccess #-}
+    convertSuccess = convertSuccessVia ((⊥) ∷ Ascii)
+
+instance ConvertAttempt ByteString Ascii where
+    {-# INLINEABLE convertAttempt #-}
+    convertAttempt bs
+        = case A.fromByteString bs of
+            Just a  → return a
+            Nothing → nonAscii bs
+
+instance ConvertAttempt ByteString AsciiBuilder where
+    {-# INLINEABLE convertAttempt #-}
+    convertAttempt = convertAttemptVia ((⊥) ∷ Ascii)
+
+instance ConvertAttempt ByteString CIAscii where
+    {-# INLINEABLE convertAttempt #-}
+    convertAttempt = convertAttemptVia ((⊥) ∷ Ascii)
+
+instance ConvertSuccess CIAscii Ascii where
+    {-# INLINE convertSuccess #-}
+    convertSuccess = A.fromCIAscii
+
+instance ConvertSuccess CIAscii AsciiBuilder where
+    {-# INLINE convertSuccess #-}
+    convertSuccess = convertSuccessVia ((⊥) ∷ Ascii)
+
+instance ConvertSuccess CIAscii ByteString where
+    {-# INLINE convertSuccess #-}
+    convertSuccess = convertSuccessVia ((⊥) ∷ Ascii)
+
+instance ConvertSuccess CIAscii String where
+    {-# INLINE convertSuccess #-}
+    convertSuccess = convertSuccessVia ((⊥) ∷ Ascii)
+
+instance ConvertSuccess CIAscii Text where
+    {-# INLINE convertSuccess #-}
+    convertSuccess = convertSuccessVia ((⊥) ∷ Ascii)
+
+instance ConvertAttempt String Ascii where
+    {-# INLINEABLE convertAttempt #-}
+    convertAttempt s
+        = case A.fromChars s of
+            Just a  → return a
+            Nothing → nonAscii s
+
+instance ConvertAttempt String AsciiBuilder where
+    {-# INLINEABLE convertAttempt #-}
+    convertAttempt = convertAttemptVia ((⊥) ∷ Ascii)
+
+instance ConvertAttempt String CIAscii where
+    {-# INLINEABLE convertAttempt #-}
+    convertAttempt = convertAttemptVia ((⊥) ∷ Ascii)
+
+instance ConvertAttempt Text Ascii where
+    {-# INLINEABLE convertAttempt #-}
+    convertAttempt t
+        = case A.fromText t of
+            Just a  → return a
+            Nothing → nonAscii t
+
+instance ConvertAttempt Text AsciiBuilder where
+    {-# INLINEABLE convertAttempt #-}
+    convertAttempt = convertAttemptVia ((⊥) ∷ Ascii)
+
+instance ConvertAttempt Text CIAscii where
+    {-# INLINEABLE convertAttempt #-}
+    convertAttempt = convertAttemptVia ((⊥) ∷ Ascii)
+
+nonAscii ∷ Failure (ConvertBoundsException Char α) f ⇒ α → f β
+{-# INLINE nonAscii #-}
+nonAscii = failure ∘ ConvertBoundsException '\0' '\x7F'
+
+deriveAttempts [ ([t| Ascii        |], [t| AsciiBuilder |])
+               , ([t| Ascii        |], [t| ByteString   |])
+               , ([t| Ascii        |], [t| CIAscii      |])
+               , ([t| Ascii        |], [t| String       |])
+               , ([t| Ascii        |], [t| Text         |])
+               , ([t| AsciiBuilder |], [t| Ascii        |])
+               , ([t| AsciiBuilder |], [t| Builder      |])
+               , ([t| AsciiBuilder |], [t| ByteString   |])
+               , ([t| AsciiBuilder |], [t| CIAscii      |])
+               , ([t| AsciiBuilder |], [t| String       |])
+               , ([t| AsciiBuilder |], [t| Text         |])
+               , ([t| CIAscii      |], [t| Ascii        |])
+               , ([t| CIAscii      |], [t| AsciiBuilder |])
+               , ([t| CIAscii      |], [t| ByteString   |])
+               , ([t| CIAscii      |], [t| String       |])
+               , ([t| CIAscii      |], [t| Text         |])
+               ]
diff --git a/README.rst b/README.rst
new file mode 100644
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,8 @@
+======
+README
+======
+
+This package provides `convertible`_ instances for `ascii`_.
+
+.. _convertible: http://hackage.haskell.org/package/convertible-text
+.. _ascii: http://hackage.haskell.org/package/ascii
diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,4 @@
+#!/usr/bin/env runghc
+
+import Distribution.Simple
+main = defaultMain
diff --git a/convertible-ascii.cabal b/convertible-ascii.cabal
new file mode 100644
--- /dev/null
+++ b/convertible-ascii.cabal
@@ -0,0 +1,45 @@
+Name:          convertible-ascii
+Synopsis:      convertible instances for ascii
+Description:
+    .
+    This package provides convertible instances for ascii:
+    .
+      * <http://hackage.haskell.org/package/convertible-text>
+    .
+      * <http://hackage.haskell.org/package/ascii>
+    .
+Version:       0.1
+License:       PublicDomain
+License-File:  COPYING
+Author:        PHO <pho at cielonegro dot org>
+Maintainer:    PHO <pho at cielonegro dot org>
+Stability:     experimental
+Homepage:      https://github.com/phonohawk/convertible-ascii
+Bug-Reports:   https://github.com/phonohawk/convertible-ascii/issues
+Category:      Data, Failure
+Tested-With:   GHC == 7.0.3
+Cabal-Version: >= 1.6
+Build-Type:    Simple
+Extra-Source-Files:
+    README.rst
+
+Source-Repository head
+    Type: git
+    Location: git://github.com/phonohawk/convertible-ascii.git
+
+Library
+    Build-Depends:
+        ascii                == 0.0.*,
+        base                 == 4.*,
+        base-unicode-symbols == 0.2.*,
+        blaze-builder        == 0.3.*,
+        bytestring           == 0.9.*,
+        convertible-text     == 0.4.*,
+        failure              == 0.1.*,
+        text                 == 0.11.*
+
+    Exposed-Modules:
+        Data.Convertible.Instances.Ascii
+
+    ghc-options:
+        -Wall
