th-orphans-0.7.0.1/0000755000000000000000000000000012170674470012136 5ustar0000000000000000th-orphans-0.7.0.1/th-orphans.cabal0000644000000000000000000000234212170674470015206 0ustar0000000000000000name: th-orphans version: 0.7.0.1 cabal-version: >= 1.6 build-type: Simple license: BSD3 license-file: LICENSE category: Template Haskell author: Matt Morrow copyright: (c) Matt Morrow maintainer: Michael Sloan bug-reports: https://github.com/mgsloan/th-orphans/issues stability: experimental tested-with: GHC == 6.12.3, GHC == 7.0.4, GHC == 7.2.2, GHC == 7.4.1 synopsis: Orphan instances for TH datatypes description: Orphan instances for TH datatypes. In particular, instances for Ord and Lift, as well as a few missing Show / Eq. These instances used to live in haskell-src-meta, and that's where the version number started. library build-depends: base >= 4.2 && < 4.8, th-lift == 0.5.* if impl(ghc >= 7.4) Build-depends: template-haskell >= 2.7 && < 2.10 else Build-depends: template-haskell >= 2.4 && < 2.7 hs-source-dirs: src exposed-modules: Language.Haskell.TH.Instances source-repository head type: git location: git://github.com/mgsloan/th-orphans.git th-orphans-0.7.0.1/LICENSE0000644000000000000000000001744012170674470013151 0ustar0000000000000000----------------------------------------------------------------------------- ----------------------------------------------------------------------------- metaquote Copyright (c) Matt Morrow. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. The names of the author may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- th-lift Copyright (c) Ian Lynagh. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. The names of the author may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- haskell-src-exts This library (Haskell Source eXtensions) is derived from code from several sources: * Code from the GHC project which is largely (c) The University of Glasgow, and distributable under a BSD-style license (see below), * Code from the Haskell 98 Report which is (c) Simon Peyton Jones and freely redistributable (but see the full license for restrictions). The full text of these licenses is reproduced below. All of the licenses are BSD-style or compatible. ----------------------------------------------------------------------------- The haskell-src-exts package itself is distributable under the modified BSD license: Copyright (c) 2005, Niklas Broberg All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * The names of its contributors may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- The Glasgow Haskell Compiler License Copyright 2004, The University Court of the University of Glasgow. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- Code derived from the document "Report on the Programming Language Haskell 98", is distributed under the following license: Copyright (c) 2002 Simon Peyton Jones The authors intend this Report to belong to the entire Haskell community, and so we grant permission to copy and distribute it for any purpose, provided that it is reproduced in its entirety, including this Notice. Modified versions of this Report may also be copied and distributed for any purpose, provided that the modified version is clearly presented as such, and that it does not claim to be a definition of the Haskell 98 Language. ----------------------------------------------------------------------------- th-orphans-0.7.0.1/Setup.hs0000644000000000000000000000007412170674470013573 0ustar0000000000000000import Distribution.Simple main :: IO () main = defaultMain th-orphans-0.7.0.1/src/0000755000000000000000000000000012170674470012725 5ustar0000000000000000th-orphans-0.7.0.1/src/Language/0000755000000000000000000000000012170674470014450 5ustar0000000000000000th-orphans-0.7.0.1/src/Language/Haskell/0000755000000000000000000000000012170674470016033 5ustar0000000000000000th-orphans-0.7.0.1/src/Language/Haskell/TH/0000755000000000000000000000000012170674470016346 5ustar0000000000000000th-orphans-0.7.0.1/src/Language/Haskell/TH/Instances.hs0000644000000000000000000000746012170674470020640 0ustar0000000000000000{-# LANGUAGE CPP #-} {-# LANGUAGE StandaloneDeriving, DeriveGeneric, TypeSynonymInstances, TemplateHaskell #-} {- | Module : Language.Haskell.TH.Instances.Lift Copyright : (c) Matt Morrow 2008 License : BSD3 Maintainer : Michael Sloan Stability : experimental Portability : portable (template-haskell) Provides Ord and Lift instances for the TH datatypes. Also provides Show / Eq for Loc, and Ppr for Loc / Lit. -} module Language.Haskell.TH.Instances () where import Language.Haskell.TH.Syntax import Language.Haskell.TH.Ppr import Language.Haskell.TH.Lift (deriveLiftMany) import GHC.Word ( Word8 ) -- Orphan Show instances deriving instance Show Loc -- Orphan Eq instances deriving instance Eq Loc deriving instance Eq Info -- Orphan Ord instances instance Ord FixityDirection where (<=) InfixL _ = True (<=) _ InfixR = True (<=) InfixN InfixN = True (<=) _ _ = False deriving instance Ord Info deriving instance Ord Fixity deriving instance Ord Exp deriving instance Ord Dec deriving instance Ord Stmt deriving instance Ord Type deriving instance Ord Foreign deriving instance Ord FunDep deriving instance Ord Con deriving instance Ord Body deriving instance Ord Clause deriving instance Ord Strict deriving instance Ord Safety deriving instance Ord Callconv deriving instance Ord Guard deriving instance Ord Range deriving instance Ord Match deriving instance Ord Pat deriving instance Ord Lit #if MIN_VERSION_template_haskell(2,4,0) deriving instance Ord FamFlavour deriving instance Ord Pragma deriving instance Ord Pred deriving instance Ord TyVarBndr #endif #if MIN_VERSION_template_haskell(2,4,0) && !(MIN_VERSION_template_haskell(2,8,0)) deriving instance Ord InlineSpec deriving instance Ord Kind #endif #if MIN_VERSION_template_haskell(2,5,0) && !(MIN_VERSION_template_haskell(2,7,0)) deriving instance Eq ClassInstance deriving instance Ord ClassInstance #endif #if MIN_VERSION_template_haskell(2,8,0) deriving instance Ord Inline deriving instance Ord Phases deriving instance Ord RuleBndr deriving instance Ord RuleMatch deriving instance Ord TyLit #endif #if MIN_VERSION_template_haskell(2,9,0) deriving instance Ord TySynEqn #endif -- Orphan Ppr instances -- TODO: make this better instance Ppr Loc where ppr = showtextl . show instance Ppr Lit where ppr l = ppr (LitE l) -- Orphan Lift instances (for when your TH generates TH!) -- This follows the pattern of the Lift instances for Int / Integer. instance Lift Word8 where lift w = [e| fromIntegral $(lift (fromIntegral w :: Int)) |] $(deriveLiftMany [ ''Body , ''Callconv , ''Clause , ''Con , ''Dec , ''Exp , ''Fixity , ''FixityDirection , ''Foreign , ''FunDep , ''Guard , ''Info , ''Lit , ''Match , ''Pat , ''Range , ''Safety , ''Stmt , ''Strict , ''Type #if MIN_VERSION_template_haskell(2,4,0) , ''FamFlavour , ''Pragma , ''Pred , ''TyVarBndr #endif #if MIN_VERSION_template_haskell(2,5,0) && !(MIN_VERSION_template_haskell(2,7,0)) , ''ClassInstance #endif #if MIN_VERSION_template_haskell(2,4,0) && !(MIN_VERSION_template_haskell(2,8,0)) , ''InlineSpec , ''Kind #endif #if MIN_VERSION_template_haskell(2,8,0) , ''Inline , ''Phases , ''RuleBndr , ''RuleMatch , ''TyLit #endif #if MIN_VERSION_template_haskell(2,9,0) , ''TySynEqn #endif ])