[Haskell-cafe] Overlapping/Incoherent instances

Don Stewart dons at galois.com
Sun Oct 12 17:12:48 EDT 2008


jgmorris:
> Hello everyone,
> 
> As part of a project to formalize the theory of overlapping instances,
> I'm looking for examples of overlapping and incoherent instances and
> their usage.  One such example would be the old version of the Monad
> Transformer Library, which used overlapping instances together with
> MonadTrans.  Any other examples or suggestions would be greatly
> appreciated!

Though I note mtl doesn't actually list OverlappingInstances in its
.cabal file,

    MultiParamTypeClasses, FunctionalDependencies, FlexibleInstances, TypeSynonymInstances

Now, this is *exactly* why having 'haskell prime' flags for this pays
off. Researches can now go and inspect all of http://hackage.haskell.org
for particular language features.

A quick, ad hoc search reveals, for the "OverlappingInstances" flag,
(some of these may only mention it in docs or in test suites),

    anydbm-1.0.5
    AutoForms-0.4.2
    cedict-0.2.5
    cgi-undecidable-3000.0.0
    ConfigFile-1.0.4
    conjure-0.1
    darcs-buildpackage-0.5.12
    datapacker-1.0.1
    DBus-0.4
    dfsbuild-1.0.2
    emgm-0.1
    fgl-5.4.1.1
    ForSyDe-3.0
    ftphs-1.0.4
    generic-xml-0.1
    gopherbot-0.1.0
    Graphalyze-0.3
    HAppS-Data-0.9.2.1
    HAppS-IxSet-0.9.2.1
    HAppS-Util-0.9.2.1
    haskeline-0.3.2
    haxr-3000.1.1.1
    haxr-th-3000.0.0
    HDBC-1.1.5
    HDBC-postgresql-1.1.4.0
    HDBC-sqlite3-1.1.4.0
    hgalib-0.2
    hg-buildpackage-1.0.4
    hjs-0.2.1
    HJScript-0.4.4
    HList-0.1
    hoogle-4.0.0.5
    hpodder-1.1.5
    HSH-1.2.6
    HsJudy-0.2
    hslogger-1.0.6
    hsp-0.4.4
    HsParrot-0.0.2
    HsPerl5-0.0.6
    hstidy-0.2
    HStringTemplate-0.4
    hsx-0.4.4
    hsx-xhtml-0.4.4
    ivor-0.1.5
    libGenI-0.16.1
    ListLike-1.0.1
    logfloat-0.9.1
    microbench-0.1
    MissingH-1.0.2.1
    monad-param-0.0.2
    parsely-0.1
    PostgreSQL-0.2
    pugs-compat-0.0.5
    pugs-DrIFT-2.2.3.0
    RJson-0.3.5
    scenegraph-0.1
    sessions-2008.7.18
    srcinst-0.8.10
    StrategyLib-4.0.0.0
    syb-with-class-0.4
    Takusen-0.8.3
    TV-0.4
    twidge-0.99.3
    TypeCompose-0.5
    uvector-0.1.0.3
    Wired-0.1.1

For IncoherentInstances, we have a fair few less,

    hjs-0.2.1
    HsJudy-0.2
    hgalib-0.2
    TV-0.4
    AutoForms-0.4.2
    HsPerl5-0.0.6
    IOR-0.1
    hoogle-4.0.0.5
    hstidy-0.2
    uvector-0.1.0.3
    pugs-DrIFT-2.2.3.0

Note that at least for 'uvector' the flags are used in the testsuite. 

Also, packages may well use these extensions, but only implicitly (if
they're enabled by more general flags, like -fglasgow-exts)

-- Don


More information about the Haskell-Cafe mailing list