1,223 research outputs found

    Noninnocence in Metal Complexes: A Dithiolene Dawn

    Get PDF
    Noninnocence in inorganic chemistry traces its roots back half a century to work that was done on metal complexes containing unsaturated dithiolate ligands. In a flurry of activity in the early 1960s by three different research groups, homoleptic bis and tris complexes of these ligands, which came to be known as dithiolenes, were synthesized, and their structural, electrochemical, spectroscopic, and magnetic properties were investigated. The complexes were notable for facile one-electron transfers and intense colors in solution, and conventional oxidation-state descriptions could not account for their electronic structures. The bis complexes were, in general, found to be square-planar, including the first examples of this geometry for paramagnetic complexes and different formal dn configurations. Several of the neutral and monoanionic tris complexes were found to have trigonal-prismatic coordination, the first time that this geometry had been observed in molecular metal complexes. Electronic structural calculations employing extended Hückel and other semiempirical computational methods revealed extensive ligand–metal mixing in the frontier orbitals of these systems, including the observation of structures in which filled metal-based orbitals were more stable than ligand-based orbitals of the same type, suggesting that the one-electron changes upon oxidation or reduction were occurring on the ligand rather than on the metal center. A summary of this early work is followed with a brief section on the current interpretations of these systems based on more advanced spectroscopic and computational methods. The take home message is that the early work did indeed provide a solid foundation for what was to follow in investigations of metal complexes containing redox-active ligands

    Dependent Types In Haskell: Theory And Practice

    Get PDF
    Haskell, as implemented in the Glasgow Haskell Compiler (GHC), has been adding new type-level programming features for some time. Many of these features---generalized algebraic datatypes (GADTs), type families, kind polymorphism, and promoted datatypes---have brought Haskell to the doorstep of dependent types. Many dependently typed programs can even currently be encoded, but often the constructions are painful. In this dissertation, I describe Dependent Haskell, which supports full dependent types via a backward-compatible extension to today\u27s Haskell. An important contribution of this work is an implementation, in GHC, of a portion of Dependent Haskell, with the rest to follow. The features I have implemented are already released, in GHC 8.0. This dissertation contains several practical examples of Dependent Haskell code, a full description of the differences between Dependent Haskell and today\u27s Haskell, a novel dependently typed lambda-calculus (called Pico) suitable for use as an intermediate language for compiling Dependent Haskell, and a type inference and elaboration algorithm, Bake, that translates Dependent Haskell to type-correct Pico. Full proofs of type safety of Pico and the soundness of Bake are included in the appendix

    System FC, as implemented in GHC

    Get PDF

    An Overabundance of Equality: Implementing Kind Equalities into Haskell

    Get PDF
    Haskell, as embodied by version 7.10.1 of the Glasgow Haskell Compiler (GHC), supports reasoning about equality among types, via generalized algebraic datatypes (GADTs) and type families. However, these features are not available among the kinds that clas- sify the types. Motivated by a concrete example of how kind equali- ties can help programmers today, this paper presents the challenges and solutions encountered in integrating kind equalities into GHC, an industrial-strength compiler. The challenges addressed here all surround the many notions of type equality that exist in GHC to- day, and in particular around GHC’s role mechanism. These many different relations on types complicate the theory considerably An update of GHC supporting reasoning about kind equalities is a key part of this work

    An Overabundance of Equality: Implementing Kind Equalities into Haskell

    Get PDF
    Haskell, as embodied by version 7.10.1 of the Glasgow Haskell Compiler (GHC), supports reasoning about equality among types, via generalized algebraic datatypes (GADTs) and type families. However, these features are not available among the kinds that clas- sify the types. Motivated by a concrete example of how kind equali- ties can help programmers today, this paper presents the challenges and solutions encountered in integrating kind equalities into GHC, an industrial-strength compiler. The challenges addressed here all surround the many notions of type equality that exist in GHC to- day, and in particular around GHC’s role mechanism. These many different relations on types complicate the theory considerably An update of GHC supporting reasoning about kind equalities is a key part of this work

    System FC, as implemented in GHC

    Get PDF

    Promoting Functions to Type Families in Haskell (extended version)

    Get PDF
    Haskell, as implemented in the Glasgow Haskell Compiler (GHC), is enriched with many extensions that support type-level programming, such as promoted datatypes, kind polymorphism, and type families. Yet, the expressiveness of the type-level language remains limited. It is missing many features present at the term level, including case expressions, anonymous functions, partially-applied functions, and let expressions. In this paper, we present an algorithm – with a proof of correctness – to encode these term-level constructs at the type level. Our approach is automated and capable of promoting a wide array of functions to type families.We also highlight and discuss those term-level features that are not promotable. In so doing, we offer a critique on GHC’s existing type system, showing what it is already capable of and where it may want improvement. We believe that delineating the mismatch between GHC’s term level and its type level is a key step toward supporting dependently typed programming. We have implemented our approach as part of the singletons package, available online

    Promoting Functions to Type Families in Haskell (extended version)

    Get PDF
    Haskell, as implemented in the Glasgow Haskell Compiler (GHC), is enriched with many extensions that support type-level programming, such as promoted datatypes, kind polymorphism, and type families. Yet, the expressiveness of the type-level language remains limited. It is missing many features present at the term level, including case expressions, anonymous functions, partially-applied functions, and let expressions. In this paper, we present an algorithm – with a proof of correctness – to encode these term-level constructs at the type level. Our approach is automated and capable of promoting a wide array of functions to type families.We also highlight and discuss those term-level features that are not promotable. In so doing, we offer a critique on GHC’s existing type system, showing what it is already capable of and where it may want improvement. We believe that delineating the mismatch between GHC’s term level and its type level is a key step toward supporting dependently typed programming. We have implemented our approach as part of the singletons package, available online

    State Attorney General Actions, the Tobacco Litigation, and the Doctrine of Parens Patriae

    Get PDF
    On November 23, 1998, a master settlement agreement settled the lawsuits of forty-six states against the tobacco industry. The settlement brings about historic public health initiatives, such as the end to outdoor advertising, the ban on using cartoon characters in advertisements, and the creation of public education trusts. It also provides that the settling tobacco manufacturers will pay over $200 billion over the next twenty-five years. Some of the legal theories upon which states relied have implications beyond the tobacco litigation. Of particular importance is the application of the theory of parens patriae in the tobacco litigation. That theory may prove useful and important in the other kinds of attorney general actions discussed in this Article and in actions not yet contemplated. Parens patriae is a theory that plainly concerned the tobacco industry because the settlement agreement between the industry and the states expressly covers parens patriae actions. But the principles developed and precedents considered in shaping the parens patriae doctrine for the tobacco litigation have important implications for other potential actions by attorneys general, such as the gun and lead paint litigations. This Article briefly overviews the doctrine of parens patriae and then discusses its doctrinal background and scope in great detail. The Article shows that parens patriae principles are accepted by state courts and addresses the specific benefits and limitations on uses of the doctrine

    The Thoralf Plugin: For Your Fancy Type Needs

    Get PDF
    Many fancy types (e.g., generalized algebraic data types, type families) require a type checker plugin. These fancy types have a type index (e.g., type level natural numbers) with an equality relation that is difficult or impossible to represent using GHC’s built-in type equality. The most practical way to represent these equality relations is through a plugin that asserts equality constraints. However, such plugins are difficult to write and reason about. In this paper, we (1) present a formal theory of reasoning about the correctness of type checker plugins for type indices, and, (2) apply this theory in creating Thoralf, a generic and extensible plugin for type indices that translates GHC constraint problems to queries to an external SMT solver. By “generic and extensible”, we mean the restrictions on extending Thoralf are slight, and, if some type index could be encoded as an SMT sort, then a programmer could extend Thoralf by providing this encoding function
    • …
    corecore