1 (* Copyright (C) 2009 Matthew Fluet.
2 * Copyright (C) 1999-2007 Henry Cejtin, Matthew Fluet, Suresh
3 * Jagannathan, and Stephen Weeks.
4 * Copyright (C) 1997-2000 NEC Research Institute.
6 * MLton is released under a BSD-style license.
7 * See the file MLton-LICENSE for details.
10 signature ANALYZE2_STRUCTS =
17 include ANALYZE2_STRUCTS
20 {base: 'a Base.t -> 'a,
24 (* In filter, the variant is an 'a option because the targets of Case
25 * branches may ignore the test (by taking 0 args).
29 variant: 'a option} -> unit,
30 filterWord: 'a * WordSize.t -> unit,
31 fromType: Type.t -> 'a,
32 inject: {sum: Tycon.t, variant: 'a} -> 'a,
33 layout: 'a -> Layout.t,
34 object: {args: 'a Prod.t,
36 resultType: Type.t} -> 'a,
37 primApp: {args: 'a vector,
40 resultVar: Var.t option} -> 'a,
44 resultType: Type.t} -> 'a,
48 useFromTypeOnBinds: bool}
49 -> {func: Func.t -> {args: 'a vector,
50 raises: 'a vector option,
51 returns: 'a vector option},
52 label: Label.t -> 'a vector,