92,102 research outputs found
Allozyme Variation in a Rare Plant Species, Pediomelum piedmontanum (Fabaceae), from the Lower Piedmont Plateau of Georgia
A single population of Pediomelum piedmontanum (Fabaceae) occurs in Columbia County, Georgia. We examined allozyme variation in this population for 20 loci in eleven enzyme systems. Genetic diversity was low (P = 20.0%; A = 1.20; overall average HO= 0.038). Allelic frequencies in a large sample from one of two subpopulations predicted a significant deficiency of heterozygotes for all polymorphic loci (P \u3c 0.001), inconsistent with Hardy-Weinberg expectations. Allelic frequencies for a smaller sample from the other subpopulation predicted a significant deficiency of heterozygotes for one polymorphic locus (P \u3c 0.025) and nonsignificant excesses of heterozygotes for two others. Genetic differentiation among subpopulations was low (FST = 0.0142). Factors responsible for the extreme rarity of P. piedmontanum are unknown, but low genetic variation in the small, isolated Georgia population is most likely due to historical factors, genetic drift, and perhaps inbreeding
Compositional Explanation of Types and Algorithmic Debugging of Type Errors
The type systems of most typed functional programming languages are based on the Hindley-Milner type system. A practical problem with these type systems is that it is often hard to understand why a program is not type correct or a function does not have the intended type. We suggest that at the core of this problem is the difficulty of explaining why a given expression has a certain type. The type system is not defined compositionally. We propose to explain types using a variant of the Hindley-Milner type system that defines a compositional type explanation graph of principal typings. We describe how the programmer understands types by interactive navigation through the explanation graph. Furthermore, the explanation graph can be the foundation for algorithmic debugging of type errors, that is, semi-automatic localisation of the source of a type error without even having to understand the type inference steps. We implemented a prototype of a tool to explore the usefulness of the proposed methods
Koka: Programming with Row Polymorphic Effect Types
We propose a programming model where effects are treated in a disciplined
way, and where the potential side-effects of a function are apparent in its
type signature. The type and effect of expressions can also be inferred
automatically, and we describe a polymorphic type inference system based on
Hindley-Milner style inference. A novel feature is that we support polymorphic
effects through row-polymorphism using duplicate labels. Moreover, we show that
our effects are not just syntactic labels but have a deep semantic connection
to the program. For example, if an expression can be typed without an exn
effect, then it will never throw an unhandled exception. Similar to Haskell's
`runST` we show how we can safely encapsulate stateful operations. Through the
state effect, we can also safely combine state with let-polymorphism without
needing either imperative type variables or a syntactic value restriction.
Finally, our system is implemented fully in a new language called Koka and has
been used successfully on various small to medium-sized sample programs ranging
from a Markdown processor to a tier-splitted chat application. You can try out
Koka live at www.rise4fun.com/koka/tutorial.Comment: In Proceedings MSFP 2014, arXiv:1406.153
- …