diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,20 +1,6 @@
-Copyright 2004-2008 by Audrey Tang
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
+To the extent possible under law, 唐鳳 has waived all copyright and
+related or neighboring rights to OpenAFP.
 
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
+This work is published from Taiwan.
 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+<http://creativecommons.org/publicdomain/zero/1.0>
diff --git a/OpenAFP.cabal b/OpenAFP.cabal
--- a/OpenAFP.cabal
+++ b/OpenAFP.cabal
@@ -1,101 +1,108 @@
-Name:               OpenAFP
-Version:            1.2
-License:            BSD3
+name:               OpenAFP
+version:            1.3
+license:            PublicDomain
 License-file:       LICENSE
-Author:             Audrey Tang
-Maintainer:         audreyt@audreyt.org
-Synopsis:           IBM AFP document format parser and generator
-Description:        IBM AFP document format parser and generator
-Category:           Data
-Build-type:         Simple
+cabal-version:      >= 1.6
+author:             Audrey Tang
+Tested-With:        GHC==6.10.1, GHC==6.12.1, GHC==7.0.1, GHC==7.2.1
+maintainer:         audreyt@audreyt.org
+homepage:           https://github.com/audreyt/openafp/
+synopsis:           IBM AFP document format parser and generator
+description:        IBM AFP document format parser and generator
+category:           Data
+build-type:         Simple
+library
+    build-depends:      base >= 2 && < 5, mtl, regex-compat, directory, process,
+                        array, containers, binary, bytestring
+    hs-source-dirs:     src
+    ghc-options:        -funbox-strict-fields -fno-warn-missing-signatures
+    extensions:         MagicHash, DeriveDataTypeable, GeneralizedNewtypeDeriving,
+                        RankNTypes, TypeFamilies, FlexibleContexts, TypeSynonymInstances,
+                        ScopedTypeVariables, MultiParamTypeClasses
+    exposed-modules:    OpenAFP.Internals.Binary OpenAFP.Internals.Ebc2Asc
+                        OpenAFP.Prelude.Utils OpenAFP.Prelude.Instances OpenAFP.Prelude.InstanceT
+                        OpenAFP.Prelude.Lookups
+                        OpenAFP.Prelude.InstanceAFP OpenAFP.Prelude.InstancePTX
+                        OpenAFP.Records.T.LDOPM OpenAFP.Records.T.OSFO OpenAFP.Records.T.FRMT
+                        OpenAFP.Records.T.OCH OpenAFP.Records.T.MO OpenAFP.Records.T.T2FRMT
+                        OpenAFP.Records.T.FDS OpenAFP.Records.T.OCL OpenAFP.Records.T.OO
+                        OpenAFP.Records.T.CGCSGI OpenAFP.Records.T.PSRM OpenAFP.Records.T.TO
+                        OpenAFP.Records.T.AD OpenAFP.Records.T.RLI OpenAFP.Records.T.TS
+                        OpenAFP.Records.T.RUA OpenAFP.Records.T.CF OpenAFP.Records.T.PPI
+                        OpenAFP.Records.T.ROI OpenAFP.Records.T.EF OpenAFP.Records.T.ERLI
+                        OpenAFP.Records.T.FF OpenAFP.Records.T.MOR OpenAFP.Records.T.FCGCSGI
+                        OpenAFP.Records.T.POCP OpenAFP.Records.T.MF OpenAFP.Records.T.DP
+                        OpenAFP.Records.T.MEC OpenAFP.Records.T.CR OpenAFP.Records.T.OBE
+                        OpenAFP.Records.T.T1CRMT OpenAFP.Records.T.LDTS OpenAFP.Records.T.AV
+                        OpenAFP.Records.T.MMPN OpenAFP.Records.T.OFSS OpenAFP.Records.T.OBO
+                        OpenAFP.Records.T.UDTS OpenAFP.Records.T.ESI OpenAFP.Records.T.OCO
+                        OpenAFP.Records.T.PSMR OpenAFP.Records.T.OAS OpenAFP.Records.T.C
+                        OpenAFP.Records.T.FQN OpenAFP.Records.T.PV OpenAFP.Records.T.FHSF
+                        OpenAFP.Records.T.OOI OpenAFP.Records.T.MIS OpenAFP.Records.T.OSFE
+                        OpenAFP.Records.T.MA OpenAFP.Records.T.OAMU OpenAFP.Records.T.II
+                        OpenAFP.Records.T.AQ OpenAFP.Records.T.PC OpenAFP.Records.T.RSN
+                        OpenAFP.Records.T.FO OpenAFP.Records.T.ROT OpenAFP.Records.T.CS
+                        OpenAFP.Records.MCF.T OpenAFP.Records.AFP.ECP OpenAFP.Records.AFP.BIM
+                        OpenAFP.Records.AFP.PFC OpenAFP.Records.AFP.PTD1 OpenAFP.Records.AFP.IEL
+                        OpenAFP.Records.AFP.BMM OpenAFP.Records.AFP.ICP OpenAFP.Records.AFP.PTX
+                        OpenAFP.Records.AFP.EDT OpenAFP.Records.AFP.FNI OpenAFP.Records.AFP.IPD
+                        OpenAFP.Records.AFP.LNC OpenAFP.Records.AFP.BPM OpenAFP.Records.AFP.IRD
+                        OpenAFP.Records.AFP.PMC OpenAFP.Records.AFP.EDX OpenAFP.Records.AFP.FNM
+                        OpenAFP.Records.AFP.MCF1 OpenAFP.Records.AFP.EPT OpenAFP.Records.AFP.EBC
+                        OpenAFP.Records.AFP.BDD OpenAFP.Records.AFP.EAG OpenAFP.Records.AFP.MMT
+                        OpenAFP.Records.AFP.EDG OpenAFP.Records.AFP.FGD OpenAFP.Records.AFP.EFG
+                        OpenAFP.Records.AFP.CFI OpenAFP.Records.AFP.MBC OpenAFP.Records.AFP.MCC
+                        OpenAFP.Records.AFP.BCP OpenAFP.Records.AFP.MFC OpenAFP.Records.AFP.EOC
+                        OpenAFP.Records.AFP.FND OpenAFP.Records.AFP.ENG OpenAFP.Records.AFP.BDT
+                        OpenAFP.Records.AFP.EOG OpenAFP.Records.AFP.IOC OpenAFP.Records.AFP.EPG
+                        OpenAFP.Records.AFP.CPI OpenAFP.Records.AFP.MMC OpenAFP.Records.AFP.BDX
+                        OpenAFP.Records.AFP.ERG OpenAFP.Records.AFP.ESG OpenAFP.Records.AFP.IPG
+                        OpenAFP.Records.AFP.EMO OpenAFP.Records.AFP.MGO OpenAFP.Records.AFP.FNP
+                        OpenAFP.Records.AFP.MPG OpenAFP.Records.AFP.MIO OpenAFP.Records.AFP.BPT
+                        OpenAFP.Records.AFP.BBC OpenAFP.Records.AFP.EPS OpenAFP.Records.AFP.IPO
+                        OpenAFP.Records.AFP.MMO OpenAFP.Records.AFP.BAG OpenAFP.Records.AFP.CDD
+                        OpenAFP.Records.AFP.GAD OpenAFP.Records.AFP.IPS OpenAFP.Records.AFP.MPO
+                        OpenAFP.Records.AFP.BDG OpenAFP.Records.AFP.NOP OpenAFP.Records.AFP.ECF
+                        OpenAFP.Records.AFP.BFG OpenAFP.Records.AFP.GDD OpenAFP.Records.AFP.MPS
+                        OpenAFP.Records.AFP.BOC OpenAFP.Records.AFP.OBD OpenAFP.Records.AFP.MCF
+                        OpenAFP.Records.AFP.OCD OpenAFP.Records.AFP.CPD OpenAFP.Records.AFP.BNG
+                        OpenAFP.Records.AFP.FNC OpenAFP.Records.AFP.BOG OpenAFP.Records.AFP.CAT
+                        OpenAFP.Records.AFP.EFN OpenAFP.Records.AFP.BPG OpenAFP.Records.AFP.IOB
+                        OpenAFP.Records.AFP.BRG OpenAFP.Records.AFP.FNG OpenAFP.Records.AFP.BSG
+                        OpenAFP.Records.AFP.LLE OpenAFP.Records.AFP.EGR OpenAFP.Records.AFP.BMO
+                        OpenAFP.Records.AFP.OBP OpenAFP.Records.AFP.FNO OpenAFP.Records.AFP.MDR
+                        OpenAFP.Records.AFP.BPS OpenAFP.Records.AFP.TLE OpenAFP.Records.AFP.ECA
+                        OpenAFP.Records.AFP.BCF OpenAFP.Records.AFP.CFC OpenAFP.Records.AFP.MCA
+                        OpenAFP.Records.AFP.EDI OpenAFP.Records.AFP.BR OpenAFP.Records.AFP.EDM
+                        OpenAFP.Records.AFP.CPC OpenAFP.Records.AFP.BFN OpenAFP.Records.AFP.EII
+                        OpenAFP.Records.AFP.ER OpenAFP.Records.AFP.EFM OpenAFP.Records.AFP.PGP1
+                        OpenAFP.Records.AFP.CTC OpenAFP.Records.AFP.EIM OpenAFP.Records.AFP.BGR
+                        OpenAFP.Records.AFP.PGD OpenAFP.Records.AFP.LND OpenAFP.Records.AFP.EMM
+                        OpenAFP.Records.AFP.DXD OpenAFP.Records.AFP.EPM OpenAFP.Records.AFP.FNN
+                        OpenAFP.Records.AFP.IMM OpenAFP.Records.AFP.BCA OpenAFP.Records.AFP.BDA
+                        OpenAFP.Records.AFP.PGP OpenAFP.Records.AFP.PTD OpenAFP.Records.AFP.BDI
+                        OpenAFP.Records.AFP.IDD OpenAFP.Records.AFP.BDM OpenAFP.Records.AFP.BII
+                        OpenAFP.Records.AFP.MCD OpenAFP.Records.AFP.BFM OpenAFP.Records.AFP.MDD
+                        OpenAFP.Records.AFP.MSU OpenAFP.Records.AFP.IID OpenAFP.Records.PTX.AMI
+                        OpenAFP.Records.PTX.DBR OpenAFP.Records.PTX.BLN OpenAFP.Records.PTX.SIA
+                        OpenAFP.Records.PTX.SBI OpenAFP.Records.PTX.DIR OpenAFP.Records.PTX.RMB
+                        OpenAFP.Records.PTX.SCFL OpenAFP.Records.PTX.RMI OpenAFP.Records.PTX.SIM
+                        OpenAFP.Records.PTX.STC OpenAFP.Records.PTX.BSU OpenAFP.Records.PTX.NOP
+                        OpenAFP.Records.PTX.ESU OpenAFP.Records.PTX.AMB OpenAFP.Records.PTX.SVI
+                        OpenAFP.Records.PTX.TRN OpenAFP.Records.PTX.RPS OpenAFP.Records.PTX.STO
+                        OpenAFP.Records.AFP OpenAFP.Records.PTX OpenAFP.Records.T OpenAFP.Records.MCF
+                        OpenAFP.Types.Chunk OpenAFP.Types.Buffer OpenAFP.Types.View
+                        OpenAFP.Types.Record OpenAFP.Internals OpenAFP.Records OpenAFP.Types OpenAFP 
+                        OpenAFP.Prelude.InstanceAFP.B
+                        OpenAFP.Prelude.InstanceAFP.C
+                        OpenAFP.Prelude.InstanceAFP.D
+                        OpenAFP.Prelude.InstanceAFP.E
+                        OpenAFP.Prelude.InstanceAFP.F
+                        OpenAFP.Prelude.InstanceAFP.G
+                        OpenAFP.Prelude.InstanceAFP.I
+                        OpenAFP.Prelude.InstanceAFP.L
+                        OpenAFP.Prelude.InstanceAFP.M
 
-Exposed-modules:    OpenAFP.Internals.Binary OpenAFP.Internals.Ebc2Asc
-                    OpenAFP.Prelude.Utils OpenAFP.Prelude.Instances OpenAFP.Prelude.InstanceT
-                    OpenAFP.Prelude.Lookups
-                    OpenAFP.Prelude.InstanceAFP OpenAFP.Prelude.InstancePTX
-                    OpenAFP.Records.T.LDOPM OpenAFP.Records.T.OSFO OpenAFP.Records.T.FRMT
-                    OpenAFP.Records.T.OCH OpenAFP.Records.T.MO OpenAFP.Records.T.T2FRMT
-                    OpenAFP.Records.T.FDS OpenAFP.Records.T.OCL OpenAFP.Records.T.OO
-                    OpenAFP.Records.T.CGCSGI OpenAFP.Records.T.PSRM OpenAFP.Records.T.TO
-                    OpenAFP.Records.T.AD OpenAFP.Records.T.RLI OpenAFP.Records.T.TS
-                    OpenAFP.Records.T.RUA OpenAFP.Records.T.CF OpenAFP.Records.T.PPI
-                    OpenAFP.Records.T.ROI OpenAFP.Records.T.EF OpenAFP.Records.T.ERLI
-                    OpenAFP.Records.T.FF OpenAFP.Records.T.MOR OpenAFP.Records.T.FCGCSGI
-                    OpenAFP.Records.T.POCP OpenAFP.Records.T.MF OpenAFP.Records.T.DP
-                    OpenAFP.Records.T.MEC OpenAFP.Records.T.CR OpenAFP.Records.T.OBE
-                    OpenAFP.Records.T.T1CRMT OpenAFP.Records.T.LDTS OpenAFP.Records.T.AV
-                    OpenAFP.Records.T.MMPN OpenAFP.Records.T.OFSS OpenAFP.Records.T.OBO
-                    OpenAFP.Records.T.UDTS OpenAFP.Records.T.ESI OpenAFP.Records.T.OCO
-                    OpenAFP.Records.T.PSMR OpenAFP.Records.T.OAS OpenAFP.Records.T.C
-                    OpenAFP.Records.T.FQN OpenAFP.Records.T.PV OpenAFP.Records.T.FHSF
-                    OpenAFP.Records.T.OOI OpenAFP.Records.T.MIS OpenAFP.Records.T.OSFE
-                    OpenAFP.Records.T.MA OpenAFP.Records.T.OAMU OpenAFP.Records.T.II
-                    OpenAFP.Records.T.AQ OpenAFP.Records.T.PC OpenAFP.Records.T.RSN
-                    OpenAFP.Records.T.FO OpenAFP.Records.T.ROT OpenAFP.Records.T.CS
-                    OpenAFP.Records.MCF.T OpenAFP.Records.AFP.ECP OpenAFP.Records.AFP.BIM
-                    OpenAFP.Records.AFP.PFC OpenAFP.Records.AFP.PTD1 OpenAFP.Records.AFP.IEL
-                    OpenAFP.Records.AFP.BMM OpenAFP.Records.AFP.ICP OpenAFP.Records.AFP.PTX
-                    OpenAFP.Records.AFP.EDT OpenAFP.Records.AFP.FNI OpenAFP.Records.AFP.IPD
-                    OpenAFP.Records.AFP.LNC OpenAFP.Records.AFP.BPM OpenAFP.Records.AFP.IRD
-                    OpenAFP.Records.AFP.PMC OpenAFP.Records.AFP.EDX OpenAFP.Records.AFP.FNM
-                    OpenAFP.Records.AFP.MCF1 OpenAFP.Records.AFP.EPT OpenAFP.Records.AFP.EBC
-                    OpenAFP.Records.AFP.BDD OpenAFP.Records.AFP.EAG OpenAFP.Records.AFP.MMT
-                    OpenAFP.Records.AFP.EDG OpenAFP.Records.AFP.FGD OpenAFP.Records.AFP.EFG
-                    OpenAFP.Records.AFP.CFI OpenAFP.Records.AFP.MBC OpenAFP.Records.AFP.MCC
-                    OpenAFP.Records.AFP.BCP OpenAFP.Records.AFP.MFC OpenAFP.Records.AFP.EOC
-                    OpenAFP.Records.AFP.FND OpenAFP.Records.AFP.ENG OpenAFP.Records.AFP.BDT
-                    OpenAFP.Records.AFP.EOG OpenAFP.Records.AFP.IOC OpenAFP.Records.AFP.EPG
-                    OpenAFP.Records.AFP.CPI OpenAFP.Records.AFP.MMC OpenAFP.Records.AFP.BDX
-                    OpenAFP.Records.AFP.ERG OpenAFP.Records.AFP.ESG OpenAFP.Records.AFP.IPG
-                    OpenAFP.Records.AFP.EMO OpenAFP.Records.AFP.MGO OpenAFP.Records.AFP.FNP
-                    OpenAFP.Records.AFP.MPG OpenAFP.Records.AFP.MIO OpenAFP.Records.AFP.BPT
-                    OpenAFP.Records.AFP.BBC OpenAFP.Records.AFP.EPS OpenAFP.Records.AFP.IPO
-                    OpenAFP.Records.AFP.MMO OpenAFP.Records.AFP.BAG OpenAFP.Records.AFP.CDD
-                    OpenAFP.Records.AFP.GAD OpenAFP.Records.AFP.IPS OpenAFP.Records.AFP.MPO
-                    OpenAFP.Records.AFP.BDG OpenAFP.Records.AFP.NOP OpenAFP.Records.AFP.ECF
-                    OpenAFP.Records.AFP.BFG OpenAFP.Records.AFP.GDD OpenAFP.Records.AFP.MPS
-                    OpenAFP.Records.AFP.BOC OpenAFP.Records.AFP.OBD OpenAFP.Records.AFP.MCF
-                    OpenAFP.Records.AFP.OCD OpenAFP.Records.AFP.CPD OpenAFP.Records.AFP.BNG
-                    OpenAFP.Records.AFP.FNC OpenAFP.Records.AFP.BOG OpenAFP.Records.AFP.CAT
-                    OpenAFP.Records.AFP.EFN OpenAFP.Records.AFP.BPG OpenAFP.Records.AFP.IOB
-                    OpenAFP.Records.AFP.BRG OpenAFP.Records.AFP.FNG OpenAFP.Records.AFP.BSG
-                    OpenAFP.Records.AFP.LLE OpenAFP.Records.AFP.EGR OpenAFP.Records.AFP.BMO
-                    OpenAFP.Records.AFP.OBP OpenAFP.Records.AFP.FNO OpenAFP.Records.AFP.MDR
-                    OpenAFP.Records.AFP.BPS OpenAFP.Records.AFP.TLE OpenAFP.Records.AFP.ECA
-                    OpenAFP.Records.AFP.BCF OpenAFP.Records.AFP.CFC OpenAFP.Records.AFP.MCA
-                    OpenAFP.Records.AFP.EDI OpenAFP.Records.AFP.BR OpenAFP.Records.AFP.EDM
-                    OpenAFP.Records.AFP.CPC OpenAFP.Records.AFP.BFN OpenAFP.Records.AFP.EII
-                    OpenAFP.Records.AFP.ER OpenAFP.Records.AFP.EFM OpenAFP.Records.AFP.PGP1
-                    OpenAFP.Records.AFP.CTC OpenAFP.Records.AFP.EIM OpenAFP.Records.AFP.BGR
-                    OpenAFP.Records.AFP.PGD OpenAFP.Records.AFP.LND OpenAFP.Records.AFP.EMM
-                    OpenAFP.Records.AFP.DXD OpenAFP.Records.AFP.EPM OpenAFP.Records.AFP.FNN
-                    OpenAFP.Records.AFP.IMM OpenAFP.Records.AFP.BCA OpenAFP.Records.AFP.BDA
-                    OpenAFP.Records.AFP.PGP OpenAFP.Records.AFP.PTD OpenAFP.Records.AFP.BDI
-                    OpenAFP.Records.AFP.IDD OpenAFP.Records.AFP.BDM OpenAFP.Records.AFP.BII
-                    OpenAFP.Records.AFP.MCD OpenAFP.Records.AFP.BFM OpenAFP.Records.AFP.MDD
-                    OpenAFP.Records.AFP.MSU OpenAFP.Records.AFP.IID OpenAFP.Records.PTX.AMI
-                    OpenAFP.Records.PTX.DBR OpenAFP.Records.PTX.BLN OpenAFP.Records.PTX.SIA
-                    OpenAFP.Records.PTX.SBI OpenAFP.Records.PTX.DIR OpenAFP.Records.PTX.RMB
-                    OpenAFP.Records.PTX.SCFL OpenAFP.Records.PTX.RMI OpenAFP.Records.PTX.SIM
-                    OpenAFP.Records.PTX.STC OpenAFP.Records.PTX.BSU OpenAFP.Records.PTX.NOP
-                    OpenAFP.Records.PTX.ESU OpenAFP.Records.PTX.AMB OpenAFP.Records.PTX.SVI
-                    OpenAFP.Records.PTX.TRN OpenAFP.Records.PTX.RPS OpenAFP.Records.PTX.STO
-                    OpenAFP.Records.AFP OpenAFP.Records.PTX OpenAFP.Records.T OpenAFP.Records.MCF
-                    OpenAFP.Types.Chunk OpenAFP.Types.Buffer OpenAFP.Types.View
-                    OpenAFP.Types.Record OpenAFP.Internals OpenAFP.Records OpenAFP.Types OpenAFP 
-                    OpenAFP.Prelude.InstanceAFP.B
-                    OpenAFP.Prelude.InstanceAFP.C
-                    OpenAFP.Prelude.InstanceAFP.D
-                    OpenAFP.Prelude.InstanceAFP.E
-                    OpenAFP.Prelude.InstanceAFP.F
-                    OpenAFP.Prelude.InstanceAFP.G
-                    OpenAFP.Prelude.InstanceAFP.I
-                    OpenAFP.Prelude.InstanceAFP.L
-                    OpenAFP.Prelude.InstanceAFP.M
-Extensions:         MagicHash, DeriveDataTypeable, GeneralizedNewtypeDeriving,
-                    RankNTypes, TypeFamilies, FlexibleContexts, TypeSynonymInstances,
-                    ScopedTypeVariables, MultiParamTypeClasses
-Build-depends:      base, mtl, haskell98, regex-compat, directory, process,
-                    array, containers, binary, bytestring
-Ghc-options:        -funbox-strict-fields -fno-warn-missing-signatures
-Hs-source-dirs:     src
+source-repository head
+  type:     git
+  location: git://github.com/audreyt/openafp.git
diff --git a/src/OpenAFP.hs b/src/OpenAFP.hs
--- a/src/OpenAFP.hs
+++ b/src/OpenAFP.hs
@@ -1,8 +1,9 @@
+{-# LANGUAGE FlexibleInstances #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  OpenAFP
--- Copyright   :  (c) Audrey Tang 2004, 2006
--- License     :  BSD-style
+-- Copyright   :  (c) Audrey Tang 2004-2011
+-- License     :  PublicDomain
 -- 
 -- Maintainer  :  audreyt@audreyt.org
 -- Stability   :  experimental
diff --git a/src/OpenAFP/Internals.hs b/src/OpenAFP/Internals.hs
--- a/src/OpenAFP/Internals.hs
+++ b/src/OpenAFP/Internals.hs
@@ -1,8 +1,8 @@
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  OpenAFP.Internals
--- Copyright   :  (c) Audrey Tang 2004, 2006
--- License     :  BSD-style
+-- Copyright   :  (c) Audrey Tang 2004-2011
+-- License     :  PublicDomain
 -- 
 -- Maintainer  :  audreyt@audreyt.org
 -- Stability   :  experimental
diff --git a/src/OpenAFP/Prelude/Utils.hs b/src/OpenAFP/Prelude/Utils.hs
--- a/src/OpenAFP/Prelude/Utils.hs
+++ b/src/OpenAFP/Prelude/Utils.hs
@@ -1,8 +1,8 @@
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  OpenAFP.Prelude.Utils
--- Copyright   :  (c) Audrey Tang 2004, 2006
--- License     :  BSD-style
+-- Copyright   :  (c) Audrey Tang 2004-2011
+-- License     :  PublicDomain
 -- 
 -- Maintainer  :  audreyt@audreyt.org
 -- Stability   :  experimental
diff --git a/src/OpenAFP/Records.hs b/src/OpenAFP/Records.hs
--- a/src/OpenAFP/Records.hs
+++ b/src/OpenAFP/Records.hs
@@ -2,8 +2,8 @@
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  OpenAFP.Records
--- Copyright   :  (c) Audrey Tang 2004, 2006
--- License     :  BSD-style
+-- Copyright   :  (c) Audrey Tang 2004-2011
+-- License     :  PublicDomain
 -- 
 -- Maintainer  :  audreyt@audreyt.org
 -- Stability   :  experimental
diff --git a/src/OpenAFP/Types.hs b/src/OpenAFP/Types.hs
--- a/src/OpenAFP/Types.hs
+++ b/src/OpenAFP/Types.hs
@@ -2,8 +2,8 @@
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  OpenAFP.Types
--- Copyright   :  (c) Audrey Tang 2004, 2006
--- License     :  BSD-style
+-- Copyright   :  (c) Audrey Tang 2004-2011
+-- License     :  PublicDomain
 -- 
 -- Maintainer  :  audreyt@audreyt.org
 -- Stability   :  experimental
diff --git a/src/OpenAFP/Types/Buffer.hs b/src/OpenAFP/Types/Buffer.hs
--- a/src/OpenAFP/Types/Buffer.hs
+++ b/src/OpenAFP/Types/Buffer.hs
@@ -2,8 +2,8 @@
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  OpenAFP.Types.Buffer
--- Copyright   :  (c) Audrey Tang 2004, 2006
--- License     :  BSD-style
+-- Copyright   :  (c) Audrey Tang 2004-2011
+-- License     :  PublicDomain
 -- 
 -- Maintainer  :  audreyt@audreyt.org
 -- Stability   :  experimental
@@ -23,13 +23,7 @@
 -- | The Buf class represents buffers, with the leading bytes
 --   representing its length.
 class (Show a, Typeable a) => Buf a where
-    {-# SPECIALIZE mkBuf :: BS -> Buffer0 #-}
-    {-# SPECIALIZE mkBuf :: BS -> Buffer1 #-}
-    {-# SPECIALIZE mkBuf :: BS -> Buffer2 #-}
     mkBuf :: BS -> a
-    {-# SPECIALIZE packBuf :: Buffer0 -> BS #-}
-    {-# SPECIALIZE packBuf :: Buffer1 -> BS #-}
-    {-# SPECIALIZE packBuf :: Buffer2 -> BS #-}
     packBuf :: a -> BS
 
 -- | Buffer0, being a simple BS, is of unlimited length.
diff --git a/src/OpenAFP/Types/Chunk.hs b/src/OpenAFP/Types/Chunk.hs
--- a/src/OpenAFP/Types/Chunk.hs
+++ b/src/OpenAFP/Types/Chunk.hs
@@ -1,9 +1,9 @@
-
+{-# LANGUAGE CPP #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  OpenAFP.Types.Chunk
--- Copyright   :  (c) Audrey Tang 2004, 2006
--- License     :  BSD-style
+-- Copyright   :  (c) Audrey Tang 2004-2011
+-- License     :  PublicDomain
 -- 
 -- Maintainer  :  audreyt@audreyt.org
 -- Stability   :  experimental
@@ -21,6 +21,9 @@
 import qualified Data.ByteString as S
 import qualified Data.ByteString.Lazy as L
 import qualified Data.ByteString.Char8 as C
+#if (__GLASGOW_HASKELL__ >= 700)
+import Unsafe.Coerce (unsafeCoerce)
+#endif
 
 infixl 4 ~~
 infixl 4 <~~
@@ -67,14 +70,30 @@
 toNStr :: [N1] -> NStr
 toNStr = mkBuf . S.pack . map fromN1
 
+#if (__GLASGOW_HASKELL__ >= 700)
+newtype ChunkType = MkChunkType TypeRep
+    deriving (Show, Eq, Typeable, Ord)
+
+mkChunkType :: TypeRep -> ChunkType
+mkChunkType = MkChunkType
+
+typeInt :: TypeRep -> Int
+typeInt x = unsafeCoerce (unsafePerformIO (typeRepKey x))
+
+#else
 newtype ChunkType = MkChunkType Int
     deriving (Show, Eq, Typeable, Ord)
 
+mkChunkType :: TypeRep -> ChunkType
+mkChunkType = MkChunkType . typeInt
+
 typeInt :: TypeRep -> Int
 typeInt x = unsafePerformIO (typeRepKey x)
 
+#endif
+
 chunkTypeOf :: Typeable a => a -> ChunkType
-chunkTypeOf = MkChunkType . typeInt . typeOf
+chunkTypeOf = mkChunkType . typeOf
 
 -- | The Chunk class represents non-parsed chunks, constructed from a
 --   (ChunkType, Buffer) tuple.
diff --git a/src/OpenAFP/Types/Record.hs b/src/OpenAFP/Types/Record.hs
--- a/src/OpenAFP/Types/Record.hs
+++ b/src/OpenAFP/Types/Record.hs
@@ -1,8 +1,8 @@
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  OpenAFP.Types.Record
--- Copyright   :  (c) Audrey Tang 2004, 2006
--- License     :  BSD-style
+-- Copyright   :  (c) Audrey Tang 2004-2011
+-- License     :  PublicDomain
 -- 
 -- Maintainer  :  audreyt@audreyt.org
 -- Stability   :  experimental
diff --git a/src/OpenAFP/Types/View.hs b/src/OpenAFP/Types/View.hs
--- a/src/OpenAFP/Types/View.hs
+++ b/src/OpenAFP/Types/View.hs
@@ -2,8 +2,8 @@
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  OpenAFP.Types.View
--- Copyright   :  (c) Audrey Tang 2004, 2006
--- License     :  BSD-style
+-- Copyright   :  (c) Audrey Tang 2004-2011
+-- License     :  PublicDomain
 -- 
 -- Maintainer  :  audreyt@audreyt.org
 -- Stability   :  experimental
