adam@1723: (* Copyright (c) 2008, 2012, Adam Chlipala adamc@2: * All rights reserved. adamc@2: * adamc@2: * Redistribution and use in source and binary forms, with or without adamc@2: * modification, are permitted provided that the following conditions are met: adamc@2: * adamc@2: * - Redistributions of source code must retain the above copyright notice, adamc@2: * this list of conditions and the following disclaimer. adamc@2: * - Redistributions in binary form must reproduce the above copyright notice, adamc@2: * this list of conditions and the following disclaimer in the documentation adamc@2: * and/or other materials provided with the distribution. adamc@2: * - The names of contributors may not be used to endorse or promote products adamc@2: * derived from this software without specific prior written permission. adamc@2: * adamc@2: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" adamc@2: * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE adamc@2: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE adamc@2: * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE adamc@2: * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR adamc@2: * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF adamc@2: * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS adamc@2: * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN adamc@2: * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) adamc@2: * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE adamc@2: * POSSIBILITY OF SUCH DAMAGE. adamc@2: *) adamc@2: adamc@2: signature ELABORATE = sig adamc@2: adam@1732: val elabFile : Source.sgn_item list -> Time.time adam@1732: -> Source.decl list -> Source.sgn_item list -> Time.time adamc@325: -> ElabEnv.env -> Source.file -> Elab.file adamc@2: adamc@833: val resolveClass : ElabEnv.env -> Elab.con -> Elab.exp option adamc@833: adam@1531: val dumpTypes : bool ref adam@1531: (* After elaboration (successful or failed), should I output a mapping from adam@1531: * all identifiers to their kinds/types? *) adam@1531: adam@1745: val dumpTypesOnError : bool ref adam@1745: (* Like above, but only used if there are compile errors. *) adam@1745: adam@1723: val unifyMore : bool ref adam@1723: (* Run all phases of type inference, even if an error is detected by an adam@1723: * early phase. *) adam@1723: adam@1733: val incremental : bool ref adam@1744: val verbose : bool ref adam@1733: adamc@2: end