

* | ImplicitParams - | Relax some restrictions on the form of the context of a type - signature. | PatternSignatures - | Enable implicit function parameters with dynamic scope. * | ScopedTypeVariables - | Deprecated, use 'ScopedTypeVariables' instead. * | ExistentialQuantification - | Cause a type variable in a signature, which has an explicit - quantifier, to scope over the definition of the - accompanying value declaration. * | PolymorphicComponents - | Allow existentially-quantified data constructors. Unlike - 'RankNTypes', does not allow this for ordinary functions. * | RankNTypes - | Allow data constructors to have polymorphic arguments. * | Rank2Types - | Allow a universally-quantified type to occur on the left of a - function arrow. * | FunctionalDependencies - | Like 'RankNTypes' but does not allow a higher-rank type to - itself appear on the left of a function arrow. The implementation will check that this property holds - for the declared instances, and will use this property to reduce - ambiguity in instance resolution. * | MonomorphismRestriction - | Allow a specification attached to a multi-parameter type class - which indicates that some parameters are entirely determined by - others. * | MultiParamTypeClasses - | Enable the dreaded monomorphism restriction. * | ParallelListComp - | Allow multiple parameters in a type class. * | RecursiveDo - | Provide syntax for writing list comprehensions which iterate - over several lists together, like the 'zipWith' family of - functions. | DoRec - | Allow recursive bindings using a variant of - provides a different, preferred syntax.

* | IncoherentInstances - | /(deprecated)/ Allow recursive bindings in blocks, using the - keyword. Allow the implementation to - choose an instance even when it is possible that further - instantiation of types will lead to a more specific instance - being applicable. * | UndecidableInstances - | Implies 'OverlappingInstances'. Termination is guaranteed by a fixed-depth - recursion stack, and compilation may fail if this depth is - exceeded. text ( show other ) parse = do lang Language classifyLanguage = \ str -> case lookup str langTable of Just lang -> lang Nothing -> UnknownLanguage str where langTable = [ ( show lang, lang ) | lang OverlappingInstances - | Ignore structural rules guaranteeing the termination of class - instance resolution. | UnknownLanguage String deriving ( Generic, Show, Read, Eq, Typeable, Data ) instance Binary Language knownLanguages :: knownLanguages = instance Text Language where disp ( UnknownLanguage other ) = Disp. | Haskell2010 - | An unknown language, identified by its name. Haskell98 - | The Haskell 2010 language as defined by the Haskell 2010 report. data Language = - | The Haskell 98 language as defined by the Haskell 98 report. Language 'Extension's are interpreted relative to one of these base - languages. Generics ( Generic ) - * Language - | This represents a Haskell language dialect. Array ( Array, accumArray, bounds, Ix ( inRange ), ( ! ) ) import Data. PrettyPrint as Disp import qualified Data. ), knownExtensions, deprecatedExtensions ) where import Distribution.
#HASKELL LANGUAGE PORTABLE#
Language/Haskell/Extension.hs - | - Module : - Copyright : Isaac Jones 2003-2004 - License : BSD3 - Maintainer : - Portability : portable - Haskell language dialects and extensions module Language.
