ghc-experimental 9.1204.0 → 9.1401.0
raw patch · 9 files changed
+354/−40 lines, 9 filesdep −ghc-primdep ~basedep ~ghc-internalPVP ok
version bump matches the API change (PVP)
Dependencies removed: ghc-prim
Dependency ranges changed: base, ghc-internal
API changes (from Hackage documentation)
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j) => CTuple10 a b c d e f g h i j
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k) => CTuple11 a b c d e f g h i j k
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l) => CTuple12 a b c d e f g h i j k l
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m) => CTuple13 a b c d e f g h i j k l m
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n) => CTuple14 a b c d e f g h i j k l m n
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) => CTuple15 a b c d e f g h i j k l m n o
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) => CTuple16 a b c d e f g h i j k l m n o p
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) => CTuple17 a b c d e f g h i j k l m n o p q
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) => CTuple18 a b c d e f g h i j k l m n o p q r
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) => CTuple19 a b c d e f g h i j k l m n o p q r s
- Data.Tuple.Experimental: class (a, b) => CTuple2 a b
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) => CTuple20 a b c d e f g h i j k l m n o p q r s t
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) => CTuple21 a b c d e f g h i j k l m n o p q r s t u
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) => CTuple22 a b c d e f g h i j k l m n o p q r s t u v
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) => CTuple23 a b c d e f g h i j k l m n o p q r s t u v w
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) => CTuple24 a b c d e f g h i j k l m n o p q r s t u v w x
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) => CTuple25 a b c d e f g h i j k l m n o p q r s t u v w x y
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z) => CTuple26 a b c d e f g h i j k l m n o p q r s t u v w x y z
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26) => CTuple27 a b c d e f g h i j k l m n o p q r s t u v w x y z t26
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27) => CTuple28 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28) => CTuple29 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28
- Data.Tuple.Experimental: class (a, b, c) => CTuple3 a b c
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29) => CTuple30 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30) => CTuple31 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31) => CTuple32 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32) => CTuple33 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33) => CTuple34 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34) => CTuple35 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35) => CTuple36 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36) => CTuple37 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37) => CTuple38 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38) => CTuple39 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38
- Data.Tuple.Experimental: class (a, b, c, d) => CTuple4 a b c d
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39) => CTuple40 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40) => CTuple41 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41) => CTuple42 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42) => CTuple43 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43) => CTuple44 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44) => CTuple45 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45) => CTuple46 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46) => CTuple47 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47) => CTuple48 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48) => CTuple49 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48
- Data.Tuple.Experimental: class (a, b, c, d, e) => CTuple5 a b c d e
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48, t49) => CTuple50 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50) => CTuple51 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51) => CTuple52 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52) => CTuple53 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53) => CTuple54 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54) => CTuple55 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55) => CTuple56 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56) => CTuple57 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56, t57) => CTuple58 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56, t57, t58) => CTuple59 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58
- Data.Tuple.Experimental: class (a, b, c, d, e, f) => CTuple6 a b c d e f
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56, t57, t58, t59) => CTuple60 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56, t57, t58, t59, t60) => CTuple61 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56, t57, t58, t59, t60, t61) => CTuple62 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56, t57, t58, t59, t60, t61, t62) => CTuple63 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56, t57, t58, t59, t60, t61, t62, t63) => CTuple64 a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g) => CTuple7 a b c d e f g
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h) => CTuple8 a b c d e f g h
- Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i) => CTuple9 a b c d e f g h i
- Data.Tuple.Experimental: class CUnit
- GHC.Exception.Backtrace.Experimental: Backtraces :: Maybe (Ptr CostCentreStack) -> Maybe CallStack -> Maybe StackTrace -> Maybe StackSnapshot -> Backtraces
- GHC.Exception.Backtrace.Experimental: CostCentreBacktrace :: BacktraceMechanism
- GHC.Exception.Backtrace.Experimental: ExecutionBacktrace :: BacktraceMechanism
- GHC.Exception.Backtrace.Experimental: HasCallStackBacktrace :: BacktraceMechanism
- GHC.Exception.Backtrace.Experimental: IPEBacktrace :: BacktraceMechanism
- GHC.Exception.Backtrace.Experimental: [btrCostCentre] :: Backtraces -> Maybe (Ptr CostCentreStack)
- GHC.Exception.Backtrace.Experimental: [btrExecutionStack] :: Backtraces -> Maybe StackTrace
- GHC.Exception.Backtrace.Experimental: [btrHasCallStack] :: Backtraces -> Maybe CallStack
- GHC.Exception.Backtrace.Experimental: [btrIpe] :: Backtraces -> Maybe StackSnapshot
- GHC.Exception.Backtrace.Experimental: collectBacktraces :: (?callStack :: CallStack) => IO Backtraces
- GHC.Exception.Backtrace.Experimental: collectExceptionAnnotation :: HasCallStack => IO SomeExceptionAnnotation
- GHC.Exception.Backtrace.Experimental: data BacktraceMechanism
- GHC.Exception.Backtrace.Experimental: data Backtraces
- GHC.Exception.Backtrace.Experimental: data CollectExceptionAnnotationMechanism
- GHC.Exception.Backtrace.Experimental: displayBacktraces :: Backtraces -> String
- GHC.Exception.Backtrace.Experimental: getBacktraceMechanismState :: BacktraceMechanism -> IO Bool
- GHC.Exception.Backtrace.Experimental: getCollectExceptionAnnotationMechanism :: IO CollectExceptionAnnotationMechanism
- GHC.Exception.Backtrace.Experimental: setBacktraceMechanismState :: BacktraceMechanism -> Bool -> IO ()
- GHC.Exception.Backtrace.Experimental: setCollectExceptionAnnotation :: ExceptionAnnotation a => (HasCallStack => IO a) -> IO ()
+ Data.Tuple.Experimental: class (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56, t57, t58, t59, t60, t61, t62, t63) => (,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,) a b c d e f g h i j k l m n o p q r s t u v w x y z t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63
+ GHC.RTS.Flags.Experimental: CCFlags :: DoCostCentres -> Int -> Int -> CCFlags
+ GHC.RTS.Flags.Experimental: CollectGCStats :: GiveGCStats
+ GHC.RTS.Flags.Experimental: ConcFlags :: RtsTime -> Int -> ConcFlags
+ GHC.RTS.Flags.Experimental: CostCentresAll :: DoCostCentres
+ GHC.RTS.Flags.Experimental: CostCentresJSON :: DoCostCentres
+ GHC.RTS.Flags.Experimental: CostCentresNone :: DoCostCentres
+ GHC.RTS.Flags.Experimental: CostCentresSummary :: DoCostCentres
+ GHC.RTS.Flags.Experimental: CostCentresVerbose :: DoCostCentres
+ GHC.RTS.Flags.Experimental: DebugFlags :: Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> DebugFlags
+ GHC.RTS.Flags.Experimental: GCFlags :: Maybe FilePath -> GiveGCStats -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Bool -> Double -> Double -> Double -> Word32 -> Bool -> Bool -> Double -> Bool -> Bool -> RtsTime -> Bool -> Word -> Word -> Bool -> Word -> GCFlags
+ GHC.RTS.Flags.Experimental: HeapByCCS :: DoHeapProfile
+ GHC.RTS.Flags.Experimental: HeapByClosureType :: DoHeapProfile
+ GHC.RTS.Flags.Experimental: HeapByDescr :: DoHeapProfile
+ GHC.RTS.Flags.Experimental: HeapByEra :: DoHeapProfile
+ GHC.RTS.Flags.Experimental: HeapByInfoTable :: DoHeapProfile
+ GHC.RTS.Flags.Experimental: HeapByLDV :: DoHeapProfile
+ GHC.RTS.Flags.Experimental: HeapByMod :: DoHeapProfile
+ GHC.RTS.Flags.Experimental: HeapByRetainer :: DoHeapProfile
+ GHC.RTS.Flags.Experimental: HeapByType :: DoHeapProfile
+ GHC.RTS.Flags.Experimental: HpcFlags :: Bool -> Bool -> HpcFlags
+ GHC.RTS.Flags.Experimental: IoManagerFlagAuto :: IoManagerFlag
+ GHC.RTS.Flags.Experimental: IoManagerFlagMIO :: IoManagerFlag
+ GHC.RTS.Flags.Experimental: IoManagerFlagSelect :: IoManagerFlag
+ GHC.RTS.Flags.Experimental: IoManagerFlagWin32Legacy :: IoManagerFlag
+ GHC.RTS.Flags.Experimental: IoManagerFlagWinIO :: IoManagerFlag
+ GHC.RTS.Flags.Experimental: IoNative :: IoSubSystem
+ GHC.RTS.Flags.Experimental: IoPOSIX :: IoSubSystem
+ GHC.RTS.Flags.Experimental: MiscFlags :: RtsTime -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Word -> IoManagerFlag -> Word32 -> MiscFlags
+ GHC.RTS.Flags.Experimental: NoGCStats :: GiveGCStats
+ GHC.RTS.Flags.Experimental: NoHeapProfiling :: DoHeapProfile
+ GHC.RTS.Flags.Experimental: OneLineGCStats :: GiveGCStats
+ GHC.RTS.Flags.Experimental: ParFlags :: Word32 -> Bool -> Word32 -> Bool -> Word32 -> Bool -> Word32 -> Word32 -> Word32 -> Bool -> ParFlags
+ GHC.RTS.Flags.Experimental: ProfFlags :: DoHeapProfile -> RtsTime -> Word -> Bool -> Bool -> Bool -> Bool -> Word -> Word -> Maybe String -> Maybe String -> Maybe String -> Maybe String -> Maybe String -> Maybe String -> Maybe String -> Word -> ProfFlags
+ GHC.RTS.Flags.Experimental: RTSFlags :: GCFlags -> ConcFlags -> MiscFlags -> DebugFlags -> CCFlags -> ProfFlags -> TraceFlags -> TickyFlags -> ParFlags -> HpcFlags -> RTSFlags
+ GHC.RTS.Flags.Experimental: SummaryGCStats :: GiveGCStats
+ GHC.RTS.Flags.Experimental: TickyFlags :: Bool -> Maybe FilePath -> TickyFlags
+ GHC.RTS.Flags.Experimental: TraceEventLog :: DoTrace
+ GHC.RTS.Flags.Experimental: TraceFlags :: DoTrace -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> TraceFlags
+ GHC.RTS.Flags.Experimental: TraceNone :: DoTrace
+ GHC.RTS.Flags.Experimental: TraceStderr :: DoTrace
+ GHC.RTS.Flags.Experimental: VerboseGCStats :: GiveGCStats
+ GHC.RTS.Flags.Experimental: [allocLimitGrace] :: GCFlags -> Word
+ GHC.RTS.Flags.Experimental: [apply] :: DebugFlags -> Bool
+ GHC.RTS.Flags.Experimental: [automaticEraIncrement] :: ProfFlags -> Bool
+ GHC.RTS.Flags.Experimental: [bioSelector] :: ProfFlags -> Maybe String
+ GHC.RTS.Flags.Experimental: [block_alloc] :: DebugFlags -> Bool
+ GHC.RTS.Flags.Experimental: [ccSelector] :: ProfFlags -> Maybe String
+ GHC.RTS.Flags.Experimental: [ccsLength] :: ProfFlags -> Word
+ GHC.RTS.Flags.Experimental: [ccsSelector] :: ProfFlags -> Maybe String
+ GHC.RTS.Flags.Experimental: [compactThreshold] :: GCFlags -> Double
+ GHC.RTS.Flags.Experimental: [compact] :: GCFlags -> Bool
+ GHC.RTS.Flags.Experimental: [concurrentFlags] :: RTSFlags -> ConcFlags
+ GHC.RTS.Flags.Experimental: [costCentreFlags] :: RTSFlags -> CCFlags
+ GHC.RTS.Flags.Experimental: [ctxtSwitchTicks] :: ConcFlags -> Int
+ GHC.RTS.Flags.Experimental: [ctxtSwitchTime] :: ConcFlags -> RtsTime
+ GHC.RTS.Flags.Experimental: [debugFlags] :: RTSFlags -> DebugFlags
+ GHC.RTS.Flags.Experimental: [descrSelector] :: ProfFlags -> Maybe String
+ GHC.RTS.Flags.Experimental: [disableDelayedOsMemoryReturn] :: MiscFlags -> Bool
+ GHC.RTS.Flags.Experimental: [doCostCentres] :: CCFlags -> DoCostCentres
+ GHC.RTS.Flags.Experimental: [doHeapProfile] :: ProfFlags -> DoHeapProfile
+ GHC.RTS.Flags.Experimental: [doIdleGC] :: GCFlags -> Bool
+ GHC.RTS.Flags.Experimental: [eraSelector] :: ProfFlags -> Word
+ GHC.RTS.Flags.Experimental: [gcFlags] :: RTSFlags -> GCFlags
+ GHC.RTS.Flags.Experimental: [gc] :: DebugFlags -> Bool
+ GHC.RTS.Flags.Experimental: [gccafs] :: DebugFlags -> Bool
+ GHC.RTS.Flags.Experimental: [generateCrashDumpFile] :: MiscFlags -> Bool
+ GHC.RTS.Flags.Experimental: [generateStackTrace] :: MiscFlags -> Bool
+ GHC.RTS.Flags.Experimental: [generations] :: GCFlags -> Word32
+ GHC.RTS.Flags.Experimental: [giveStats] :: GCFlags -> GiveGCStats
+ GHC.RTS.Flags.Experimental: [heapBase] :: GCFlags -> Word
+ GHC.RTS.Flags.Experimental: [heapProfileIntervalTicks] :: ProfFlags -> Word
+ GHC.RTS.Flags.Experimental: [heapProfileInterval] :: ProfFlags -> RtsTime
+ GHC.RTS.Flags.Experimental: [heapSizeSuggestionAuto] :: GCFlags -> Bool
+ GHC.RTS.Flags.Experimental: [heapSizeSuggestion] :: GCFlags -> Word32
+ GHC.RTS.Flags.Experimental: [hpcFlags] :: RTSFlags -> HpcFlags
+ GHC.RTS.Flags.Experimental: [hpc] :: DebugFlags -> Bool
+ GHC.RTS.Flags.Experimental: [idleGCDelayTime] :: GCFlags -> RtsTime
+ GHC.RTS.Flags.Experimental: [initialStkSize] :: GCFlags -> Word32
+ GHC.RTS.Flags.Experimental: [installSEHHandlers] :: MiscFlags -> Bool
+ GHC.RTS.Flags.Experimental: [installSignalHandlers] :: MiscFlags -> Bool
+ GHC.RTS.Flags.Experimental: [internalCounters] :: MiscFlags -> Bool
+ GHC.RTS.Flags.Experimental: [interpreter] :: DebugFlags -> Bool
+ GHC.RTS.Flags.Experimental: [ioManager] :: MiscFlags -> IoManagerFlag
+ GHC.RTS.Flags.Experimental: [largeAllocLim] :: GCFlags -> Word32
+ GHC.RTS.Flags.Experimental: [linkerAlwaysPic] :: MiscFlags -> Bool
+ GHC.RTS.Flags.Experimental: [linkerMemBase] :: MiscFlags -> Word
+ GHC.RTS.Flags.Experimental: [linker] :: DebugFlags -> Bool
+ GHC.RTS.Flags.Experimental: [machineReadable] :: MiscFlags -> Bool
+ GHC.RTS.Flags.Experimental: [maxHeapSize] :: GCFlags -> Word32
+ GHC.RTS.Flags.Experimental: [maxLocalSparks] :: ParFlags -> Word32
+ GHC.RTS.Flags.Experimental: [maxRetainerSetSize] :: ProfFlags -> Word
+ GHC.RTS.Flags.Experimental: [maxStkSize] :: GCFlags -> Word32
+ GHC.RTS.Flags.Experimental: [migrate] :: ParFlags -> Bool
+ GHC.RTS.Flags.Experimental: [minAllocAreaSize] :: GCFlags -> Word32
+ GHC.RTS.Flags.Experimental: [minOldGenSize] :: GCFlags -> Word32
+ GHC.RTS.Flags.Experimental: [miscFlags] :: RTSFlags -> MiscFlags
+ GHC.RTS.Flags.Experimental: [modSelector] :: ProfFlags -> Maybe String
+ GHC.RTS.Flags.Experimental: [msecsPerTick] :: CCFlags -> Int
+ GHC.RTS.Flags.Experimental: [nCapabilities] :: ParFlags -> Word32
+ GHC.RTS.Flags.Experimental: [nonmoving_gc] :: DebugFlags -> Bool
+ GHC.RTS.Flags.Experimental: [numIoWorkerThreads] :: MiscFlags -> Word32
+ GHC.RTS.Flags.Experimental: [numaMask] :: GCFlags -> Word
+ GHC.RTS.Flags.Experimental: [numa] :: GCFlags -> Bool
+ GHC.RTS.Flags.Experimental: [nurseryChunkSize] :: GCFlags -> Word32
+ GHC.RTS.Flags.Experimental: [oldGenFactor] :: GCFlags -> Double
+ GHC.RTS.Flags.Experimental: [parFlags] :: RTSFlags -> ParFlags
+ GHC.RTS.Flags.Experimental: [parGcEnabled] :: ParFlags -> Bool
+ GHC.RTS.Flags.Experimental: [parGcGen] :: ParFlags -> Word32
+ GHC.RTS.Flags.Experimental: [parGcLoadBalancingEnabled] :: ParFlags -> Bool
+ GHC.RTS.Flags.Experimental: [parGcLoadBalancingGen] :: ParFlags -> Word32
+ GHC.RTS.Flags.Experimental: [parGcNoSyncWithIdle] :: ParFlags -> Word32
+ GHC.RTS.Flags.Experimental: [parGcThreads] :: ParFlags -> Word32
+ GHC.RTS.Flags.Experimental: [pcFreeHeap] :: GCFlags -> Double
+ GHC.RTS.Flags.Experimental: [prof] :: DebugFlags -> Bool
+ GHC.RTS.Flags.Experimental: [profilerTicks] :: CCFlags -> Int
+ GHC.RTS.Flags.Experimental: [profilingFlags] :: RTSFlags -> ProfFlags
+ GHC.RTS.Flags.Experimental: [readTixFile] :: HpcFlags -> Bool
+ GHC.RTS.Flags.Experimental: [retainerSelector] :: ProfFlags -> Maybe String
+ GHC.RTS.Flags.Experimental: [returnDecayFactor] :: GCFlags -> Double
+ GHC.RTS.Flags.Experimental: [ringBell] :: GCFlags -> Bool
+ GHC.RTS.Flags.Experimental: [sanity] :: DebugFlags -> Bool
+ GHC.RTS.Flags.Experimental: [scheduler] :: DebugFlags -> Bool
+ GHC.RTS.Flags.Experimental: [setAffinity] :: ParFlags -> Bool
+ GHC.RTS.Flags.Experimental: [showCCSOnException] :: ProfFlags -> Bool
+ GHC.RTS.Flags.Experimental: [showTickyStats] :: TickyFlags -> Bool
+ GHC.RTS.Flags.Experimental: [sparksFull] :: TraceFlags -> Bool
+ GHC.RTS.Flags.Experimental: [sparksSampled] :: TraceFlags -> Bool
+ GHC.RTS.Flags.Experimental: [sparks] :: DebugFlags -> Bool
+ GHC.RTS.Flags.Experimental: [squeezeUpdFrames] :: GCFlags -> Bool
+ GHC.RTS.Flags.Experimental: [squeeze] :: DebugFlags -> Bool
+ GHC.RTS.Flags.Experimental: [stable] :: DebugFlags -> Bool
+ GHC.RTS.Flags.Experimental: [startHeapProfileAtStartup] :: ProfFlags -> Bool
+ GHC.RTS.Flags.Experimental: [startTimeProfileAtStartup] :: ProfFlags -> Bool
+ GHC.RTS.Flags.Experimental: [statsFile] :: GCFlags -> Maybe FilePath
+ GHC.RTS.Flags.Experimental: [stkChunkBufferSize] :: GCFlags -> Word32
+ GHC.RTS.Flags.Experimental: [stkChunkSize] :: GCFlags -> Word32
+ GHC.RTS.Flags.Experimental: [stm] :: DebugFlags -> Bool
+ GHC.RTS.Flags.Experimental: [sweep] :: GCFlags -> Bool
+ GHC.RTS.Flags.Experimental: [tickInterval] :: MiscFlags -> RtsTime
+ GHC.RTS.Flags.Experimental: [tickyFile] :: TickyFlags -> Maybe FilePath
+ GHC.RTS.Flags.Experimental: [tickyFlags] :: RTSFlags -> TickyFlags
+ GHC.RTS.Flags.Experimental: [timestamp] :: TraceFlags -> Bool
+ GHC.RTS.Flags.Experimental: [traceFlags] :: RTSFlags -> TraceFlags
+ GHC.RTS.Flags.Experimental: [traceGc] :: TraceFlags -> Bool
+ GHC.RTS.Flags.Experimental: [traceNonmovingGc] :: TraceFlags -> Bool
+ GHC.RTS.Flags.Experimental: [traceScheduler] :: TraceFlags -> Bool
+ GHC.RTS.Flags.Experimental: [tracing] :: TraceFlags -> DoTrace
+ GHC.RTS.Flags.Experimental: [typeSelector] :: ProfFlags -> Maybe String
+ GHC.RTS.Flags.Experimental: [user] :: TraceFlags -> Bool
+ GHC.RTS.Flags.Experimental: [weak] :: DebugFlags -> Bool
+ GHC.RTS.Flags.Experimental: [writeTixFile] :: HpcFlags -> Bool
+ GHC.RTS.Flags.Experimental: data CCFlags
+ GHC.RTS.Flags.Experimental: data ConcFlags
+ GHC.RTS.Flags.Experimental: data DebugFlags
+ GHC.RTS.Flags.Experimental: data DoCostCentres
+ GHC.RTS.Flags.Experimental: data DoHeapProfile
+ GHC.RTS.Flags.Experimental: data DoTrace
+ GHC.RTS.Flags.Experimental: data GCFlags
+ GHC.RTS.Flags.Experimental: data GiveGCStats
+ GHC.RTS.Flags.Experimental: data HpcFlags
+ GHC.RTS.Flags.Experimental: data IoManagerFlag
+ GHC.RTS.Flags.Experimental: data IoSubSystem
+ GHC.RTS.Flags.Experimental: data MiscFlags
+ GHC.RTS.Flags.Experimental: data ParFlags
+ GHC.RTS.Flags.Experimental: data ProfFlags
+ GHC.RTS.Flags.Experimental: data RTSFlags
+ GHC.RTS.Flags.Experimental: data TickyFlags
+ GHC.RTS.Flags.Experimental: data TraceFlags
+ GHC.RTS.Flags.Experimental: getCCFlags :: IO CCFlags
+ GHC.RTS.Flags.Experimental: getConcFlags :: IO ConcFlags
+ GHC.RTS.Flags.Experimental: getDebugFlags :: IO DebugFlags
+ GHC.RTS.Flags.Experimental: getGCFlags :: IO GCFlags
+ GHC.RTS.Flags.Experimental: getHpcFlags :: IO HpcFlags
+ GHC.RTS.Flags.Experimental: getMiscFlags :: IO MiscFlags
+ GHC.RTS.Flags.Experimental: getParFlags :: IO ParFlags
+ GHC.RTS.Flags.Experimental: getProfFlags :: IO ProfFlags
+ GHC.RTS.Flags.Experimental: getRTSFlags :: IO RTSFlags
+ GHC.RTS.Flags.Experimental: getTickyFlags :: IO TickyFlags
+ GHC.RTS.Flags.Experimental: getTraceFlags :: IO TraceFlags
+ GHC.RTS.Flags.Experimental: type RtsTime = Word64
+ GHC.Stack.Annotation.Experimental: CallStackAnnotation :: CallStack -> CallStackAnnotation
+ GHC.Stack.Annotation.Experimental: [ShowAnnotation] :: forall a. Show a => a -> ShowAnnotation
+ GHC.Stack.Annotation.Experimental: [SomeStackAnnotation] :: forall a. (Typeable a, StackAnnotation a) => a -> SomeStackAnnotation
+ GHC.Stack.Annotation.Experimental: [StringAnnotation] :: String -> StringAnnotation
+ GHC.Stack.Annotation.Experimental: annotateCallStack :: HasCallStack => b -> b
+ GHC.Stack.Annotation.Experimental: annotateCallStackIO :: HasCallStack => IO a -> IO a
+ GHC.Stack.Annotation.Experimental: annotateStack :: (Typeable a, StackAnnotation a) => a -> b -> b
+ GHC.Stack.Annotation.Experimental: annotateStackIO :: (Typeable a, StackAnnotation a) => a -> IO b -> IO b
+ GHC.Stack.Annotation.Experimental: annotateStackShow :: (Typeable a, Show a) => a -> b -> b
+ GHC.Stack.Annotation.Experimental: annotateStackShowIO :: Show a => a -> IO b -> IO b
+ GHC.Stack.Annotation.Experimental: annotateStackString :: String -> b -> b
+ GHC.Stack.Annotation.Experimental: annotateStackStringIO :: String -> IO b -> IO b
+ GHC.Stack.Annotation.Experimental: class StackAnnotation a
+ GHC.Stack.Annotation.Experimental: data ShowAnnotation
+ GHC.Stack.Annotation.Experimental: data SomeStackAnnotation
+ GHC.Stack.Annotation.Experimental: data StringAnnotation
+ GHC.Stack.Annotation.Experimental: displayStackAnnotation :: StackAnnotation a => a -> String
+ GHC.Stack.Annotation.Experimental: instance GHC.Internal.Show.Show GHC.Stack.Annotation.Experimental.CallStackAnnotation
+ GHC.Stack.Annotation.Experimental: instance GHC.Internal.Stack.Annotation.StackAnnotation GHC.Stack.Annotation.Experimental.CallStackAnnotation
+ GHC.Stack.Annotation.Experimental: instance GHC.Internal.Stack.Annotation.StackAnnotation GHC.Stack.Annotation.Experimental.ShowAnnotation
+ GHC.Stack.Annotation.Experimental: instance GHC.Internal.Stack.Annotation.StackAnnotation GHC.Stack.Annotation.Experimental.StringAnnotation
+ GHC.Stack.Annotation.Experimental: newtype CallStackAnnotation
+ GHC.Stats.Experimental: GCDetails :: Word32 -> Word32 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> GCDetails
+ GHC.Stats.Experimental: RTSStats :: Word32 -> Word32 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> GCDetails -> RTSStats
+ GHC.Stats.Experimental: [allocated_bytes] :: RTSStats -> Word64
+ GHC.Stats.Experimental: [copied_bytes] :: RTSStats -> Word64
+ GHC.Stats.Experimental: [cpu_ns] :: RTSStats -> RtsTime
+ GHC.Stats.Experimental: [cumulative_live_bytes] :: RTSStats -> Word64
+ GHC.Stats.Experimental: [cumulative_par_balanced_copied_bytes] :: RTSStats -> Word64
+ GHC.Stats.Experimental: [cumulative_par_max_copied_bytes] :: RTSStats -> Word64
+ GHC.Stats.Experimental: [elapsed_ns] :: RTSStats -> RtsTime
+ GHC.Stats.Experimental: [gc] :: RTSStats -> GCDetails
+ GHC.Stats.Experimental: [gc_cpu_ns] :: RTSStats -> RtsTime
+ GHC.Stats.Experimental: [gc_elapsed_ns] :: RTSStats -> RtsTime
+ GHC.Stats.Experimental: [gcdetails_allocated_bytes] :: GCDetails -> Word64
+ GHC.Stats.Experimental: [gcdetails_block_fragmentation_bytes] :: GCDetails -> Word64
+ GHC.Stats.Experimental: [gcdetails_compact_bytes] :: GCDetails -> Word64
+ GHC.Stats.Experimental: [gcdetails_copied_bytes] :: GCDetails -> Word64
+ GHC.Stats.Experimental: [gcdetails_cpu_ns] :: GCDetails -> RtsTime
+ GHC.Stats.Experimental: [gcdetails_elapsed_ns] :: GCDetails -> RtsTime
+ GHC.Stats.Experimental: [gcdetails_gen] :: GCDetails -> Word32
+ GHC.Stats.Experimental: [gcdetails_large_objects_bytes] :: GCDetails -> Word64
+ GHC.Stats.Experimental: [gcdetails_live_bytes] :: GCDetails -> Word64
+ GHC.Stats.Experimental: [gcdetails_mem_in_use_bytes] :: GCDetails -> Word64
+ GHC.Stats.Experimental: [gcdetails_nonmoving_gc_sync_cpu_ns] :: GCDetails -> RtsTime
+ GHC.Stats.Experimental: [gcdetails_nonmoving_gc_sync_elapsed_ns] :: GCDetails -> RtsTime
+ GHC.Stats.Experimental: [gcdetails_par_balanced_copied_bytes] :: GCDetails -> Word64
+ GHC.Stats.Experimental: [gcdetails_par_max_copied_bytes] :: GCDetails -> Word64
+ GHC.Stats.Experimental: [gcdetails_slop_bytes] :: GCDetails -> Word64
+ GHC.Stats.Experimental: [gcdetails_sync_elapsed_ns] :: GCDetails -> RtsTime
+ GHC.Stats.Experimental: [gcdetails_threads] :: GCDetails -> Word32
+ GHC.Stats.Experimental: [gcs] :: RTSStats -> Word32
+ GHC.Stats.Experimental: [init_cpu_ns] :: RTSStats -> RtsTime
+ GHC.Stats.Experimental: [init_elapsed_ns] :: RTSStats -> RtsTime
+ GHC.Stats.Experimental: [major_gcs] :: RTSStats -> Word32
+ GHC.Stats.Experimental: [max_compact_bytes] :: RTSStats -> Word64
+ GHC.Stats.Experimental: [max_large_objects_bytes] :: RTSStats -> Word64
+ GHC.Stats.Experimental: [max_live_bytes] :: RTSStats -> Word64
+ GHC.Stats.Experimental: [max_mem_in_use_bytes] :: RTSStats -> Word64
+ GHC.Stats.Experimental: [max_slop_bytes] :: RTSStats -> Word64
+ GHC.Stats.Experimental: [mutator_cpu_ns] :: RTSStats -> RtsTime
+ GHC.Stats.Experimental: [mutator_elapsed_ns] :: RTSStats -> RtsTime
+ GHC.Stats.Experimental: [nonmoving_gc_cpu_ns] :: RTSStats -> RtsTime
+ GHC.Stats.Experimental: [nonmoving_gc_elapsed_ns] :: RTSStats -> RtsTime
+ GHC.Stats.Experimental: [nonmoving_gc_max_elapsed_ns] :: RTSStats -> RtsTime
+ GHC.Stats.Experimental: [nonmoving_gc_sync_cpu_ns] :: RTSStats -> RtsTime
+ GHC.Stats.Experimental: [nonmoving_gc_sync_elapsed_ns] :: RTSStats -> RtsTime
+ GHC.Stats.Experimental: [nonmoving_gc_sync_max_elapsed_ns] :: RTSStats -> RtsTime
+ GHC.Stats.Experimental: [par_copied_bytes] :: RTSStats -> Word64
+ GHC.Stats.Experimental: data GCDetails
+ GHC.Stats.Experimental: data RTSStats
+ GHC.Stats.Experimental: getRTSStats :: IO RTSStats
+ GHC.Stats.Experimental: getRTSStatsEnabled :: IO Bool
+ GHC.Stats.Experimental: type RtsTime = Int64
+ System.Mem.Experimental: DontKillOnAllocationLimit :: AllocationLimitKillBehaviour
+ System.Mem.Experimental: KillOnAllocationLimit :: AllocationLimitKillBehaviour
+ System.Mem.Experimental: data AllocationLimitKillBehaviour
+ System.Mem.Experimental: disableAllocationLimitFor :: ThreadId -> IO ()
+ System.Mem.Experimental: enableAllocationLimitFor :: ThreadId -> IO ()
+ System.Mem.Experimental: getAllocationCounterFor :: ThreadId -> IO Int64
+ System.Mem.Experimental: setAllocationCounterFor :: Int64 -> ThreadId -> IO ()
+ System.Mem.Experimental: setGlobalAllocationLimitHandler :: AllocationLimitKillBehaviour -> Maybe (ThreadId -> IO ()) -> IO ()
Files
- ghc-experimental.cabal +7/−5
- src/Data/Sum/Experimental.hs +1/−1
- src/Data/Tuple/Experimental.hs +4/−4
- src/GHC/Exception/Backtrace/Experimental.hs +0/−28
- src/GHC/RTS/Flags/Experimental.hs +54/−0
- src/GHC/Stack/Annotation/Experimental.hs +249/−0
- src/GHC/Stats/Experimental.hs +27/−0
- src/Prelude/Experimental.hs +2/−2
- src/System/Mem/Experimental.hs +10/−0
ghc-experimental.cabal view
@@ -6,7 +6,7 @@ name: ghc-experimental -- The project is ghc's version plus ghc-experimental's version suffix. -- For example, for ghc=9.10.1, ghc-experimental's version will be 9.1001.0.-version: 9.1204.0+version: 9.1401.0 synopsis: Experimental features of GHC's standard library description: This package is where experimental GHC standard library interfaces start@@ -35,13 +35,15 @@ GHC.Profiling.Eras GHC.TypeLits.Experimental GHC.TypeNats.Experimental+ GHC.RTS.Flags.Experimental+ GHC.Stack.Annotation.Experimental+ GHC.Stats.Experimental Prelude.Experimental- GHC.Exception.Backtrace.Experimental+ System.Mem.Experimental if arch(wasm32) exposed-modules: GHC.Wasm.Prim other-extensions:- build-depends: base >=4.20 && < 4.22,- ghc-internal == 9.1204.*,- ghc-prim >= 0.11 && < 0.14+ build-depends: base >=4.20 && < 4.23,+ ghc-internal == 9.1401.* hs-source-dirs: src default-language: Haskell2010
src/Data/Sum/Experimental.hs view
@@ -80,6 +80,6 @@ Sum63#, ) where -import GHC.Types+import GHC.Internal.Types default ()
src/Data/Tuple/Experimental.hs view
@@ -16,7 +16,7 @@ https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0475-tuple-syntax.rst -} module Data.Tuple.Experimental (- module GHC.Tuple,+ module GHC.Internal.Tuple, Solo (Solo, MkSolo), -- * Unboxed tuples@@ -158,8 +158,8 @@ CTuple64, ) where -import GHC.Tuple-import GHC.Types-import GHC.Classes+import GHC.Internal.Tuple+import GHC.Internal.Types+import GHC.Internal.Classes default ()
− src/GHC/Exception/Backtrace/Experimental.hs
@@ -1,28 +0,0 @@-{--Module : GHC.Exception.Backtrace.Experimental-Copyright : (c) The GHC Team-License : see libraries/ghc-experimental/LICENSE--Maintainer : ghc-devs@haskell.org-Stability : experimental-Portability : non-portable (GHC extensions)--This module exposes experimental extensions to the Backtrace mechanism of GHC.--}-module GHC.Exception.Backtrace.Experimental- ( -- * Backtrace mechanisms- BacktraceMechanism(..)- , getBacktraceMechanismState- , setBacktraceMechanismState- -- * Collecting backtraces- , Backtraces(..)- , displayBacktraces- , collectBacktraces- -- * Collecting exception annotations on throwing 'Exception's- , CollectExceptionAnnotationMechanism- , getCollectExceptionAnnotationMechanism- , setCollectExceptionAnnotation- , collectExceptionAnnotation- ) where--import GHC.Internal.Exception.Backtrace
+ src/GHC/RTS/Flags/Experimental.hs view
@@ -0,0 +1,54 @@+-- |+-- Module : GHC.RTS.Flags.Experimental+-- Copyright : (c) The University of Glasgow, 1994-2000+-- License : see libraries/ghc-experimental/LICENSE+--+-- Maintainer : ghc-devs@haskell.org+-- Stability : internal+-- Portability : non-portable (GHC extensions)+--+-- /The API of this module is unstable and is coupled to GHC's internals./ As+-- such if you depend on it, you should expect to follow GHC's releases. This+-- API could change without warning.+--+-- Descriptions of flags can be seen in+-- <https://www.haskell.org/ghc/docs/latest/html/users_guide/runtime_control.html GHC User's Guide>,+-- or by running RTS help message using @+RTS --help@.+--+--++module GHC.RTS.Flags.Experimental+ ( RtsTime+ , RTSFlags (..)+ , GiveGCStats (..)+ , GCFlags (..)+ , ConcFlags (..)+ , MiscFlags (..)+ , IoManagerFlag (..)+ , DebugFlags (..)+ , DoCostCentres (..)+ , CCFlags (..)+ , DoHeapProfile (..)+ , ProfFlags (..)+ , DoTrace (..)+ , TraceFlags (..)+ , TickyFlags (..)+ , ParFlags (..)+ , HpcFlags (..)+ , {-# DEPRECATED "import GHC.IO.SubSystem (IoSubSystem (..))" #-}+ IoSubSystem (..)+ , getRTSFlags+ , getGCFlags+ , getConcFlags+ , getMiscFlags+ , getDebugFlags+ , getCCFlags+ , getProfFlags+ , getTraceFlags+ , getTickyFlags+ , getParFlags+ , getHpcFlags+ ) where++import GHC.Internal.RTS.Flags+import GHC.Internal.IO.SubSystem (IoSubSystem(..))
+ src/GHC/Stack/Annotation/Experimental.hs view
@@ -0,0 +1,249 @@+{-# LANGUAGE GADTs #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE MagicHash #-}+{-# LANGUAGE UnboxedTuples #-}+{-# LANGUAGE ImplicitParams #-}+-- |+-- Module : GHC.Stack.Annotation.Experimental+-- Description : Push annotation stack frames onto the Haskell call stack+-- Copyright : (c) The GHC Team+-- License : see libraries/ghc-experimental/LICENSE+-- Maintainer : ghc-devs@haskell.org+-- Stability : experimental+-- Portability : non-portable (GHC Extensions)+--+-- Push user-defined annotation stack frames into the Haskell call stack.+-- Annotation stack frames may be decoded when unwinding the call stack, allowing+-- the user to gain more control over what an IPE stack trace looks like.+--+-- The main advantages of stack frame annotations over other 'Backtraces':+--+-- * Function signatures don't need to be modified to improve stack traces (e.g. via 'HasCallStack').+-- * Annotation are arbitrary user-defined datatypes, not just source locations.+-- * Stack frame annotations are always present and do not require recompilation (e.g. @-prof@ or @-g3@).+module GHC.Stack.Annotation.Experimental (+ -- * The root of Stack Annotation Types+ SomeStackAnnotation(..),+ -- * Displaying Stack Annotations+ StackAnnotation(..),+ -- * Annotation helpers+ ShowAnnotation(..),+ StringAnnotation(..),+ -- * 'CallStack' annotations+ CallStackAnnotation(..),+ -- * Push stack frame annotations in 'IO' code.+ --+ --+ annotateStackIO,+ annotateStackStringIO,+ annotateStackShowIO,+ annotateCallStackIO,+ -- * Push stack frame annotations in non-'IO' code.+ --+ -- | These variants all evaluate the code to be annotated to WHNF.+ -- Otherwise, the stack annotations will not be shown in stack traces,+ -- as the computation is immediately "evaluated" to a thunk, popping the+ -- annotation frames from the stack.+ -- If the pure computation throws an exception later, the annotation frame+ -- will not be present, thus missing in the stack trace.+ --+ -- Note, you will encounter similar issues if the exception is thrown+ -- during evaluation of a nested value, for example @Just (error "Oh, no!")@.+ annotateStack,+ annotateStackString,+ annotateStackShow,+ annotateCallStack,+ ) where++import Data.Typeable+import GHC.Exts+import GHC.IO+import GHC.Internal.Stack+import GHC.Internal.Stack.Annotation++-- Note [User-defined stack annotations for better stack traces]+-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+-- The primop 'annotateStack#' allows users to push arbitrary data onto+-- the Haskell-native call stack.+-- These annotations can later be discovered when unwinding and decoding the stack, for+-- example when an exception is thrown.+-- The annotations can add information to the call stack, such as source locations,+-- without needing 'HasCallStack' constraints in the calling function.+--+-- The feature is implemented via the stack frame 'AnnFrame', which consists of+-- nothing but an info table and a generic payload.+-- The 'AnnFrame' is semantically a no-op, and serves no further purpose than to+-- push user-defined annotations onto the Haskell-native call stack.+--+-- We provide a wrapper API for the primop 'annotateStack#' which allows users to annotate their+-- call stack in programs.+-- There are wrappers using 'IO', as well as wrappers that are pure.+-- Annotation stack frames are most reliable in the 'IO' monad, while+-- the pure variations can behave in ways that are hard to predict.+--+-- See Note [Stack annotations in pure code] for more details.+--+-- At last, stack annotations are tricky to use with 'error'.+-- See Note [Pushing annotation frames on 'error'] for why this is the case.++-- Note [Stack annotations in pure code]+-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+-- In lazy, non-IO code, the execution stack is quite confusing due to laziness+-- and doesn't follow any obvious intuition.+-- To make the pure API slightly more predictable, we evaluate the annotated value to WHNF.+-- This makes sure that stack annotations are present when we would intuitively expect them.+--+-- For example:+--+-- @+-- annotateStackShow (5 @Int) (fib 20 + throw (ErrorCall "Oh no!"))+-- @+--+-- Without forcing the result of @(fib 20 + throw (ErrorCall "Oh no!"))@, the computation+-- will simply return a thunk, and the stack annotation would be popped off the stack.+-- Once the thunk is evaluated, the exception is raised, but no stack annotation will be found!+-- If we force the result of @(fib 20 + throw (ErrorCall "Oh no!"))@, then the stack+-- annotations remain on the stack, and are displayed in the stack trace.+--+-- Naturally, this only holds if no imprecise exceptions are thrown during evaluation of any+-- nested value, for example in 'annotateStackShow 5 (Just $ throw (ErrorCall "Oh no!"))', the+-- stack trace will not include the value @5@.+--+-- See how we preferred @throw (ErrorCall ...)@ over @error@?+-- See Note [Pushing annotation frames on 'error'] for why we do this.++-- Note [Pushing annotation frames on 'error']+-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+-- Examples so far have not been using 'error' at all.+-- The reason is that 'error' is extraordinarily difficult to use correctly with stack annotation frames.+-- See Note [Capturing the backtrace in throw] for a detailed discussion of how 'throw'+-- manages to capture 'Backtraces'.+--+-- Long story short, 'error' does not do the same thing as 'throw' and is subtly different+-- in terms of evaluation, cause it to bypass the stack annotation frames, especially in+-- pure code.+--+-- However, even in 'IO' code, it is difficult to use 'error' and obtain stack annotation frames+-- close to the call site due to the same issue of laziness and backtrace collection.+--+-- This means, right now, if you want to reliably capture stack frame annotations,+-- in both pure and impure code, prefer 'throw' and 'throwIO' variants over 'error'.++-- ----------------------------------------------------------------------------+-- Annotations+-- ----------------------------------------------------------------------------++data StringAnnotation where+ StringAnnotation :: String -> StringAnnotation++instance StackAnnotation StringAnnotation where+ displayStackAnnotation (StringAnnotation str) = str++-- | Use the 'Show' instance of a type to display as the 'StackAnnotation'.+data ShowAnnotation where+ ShowAnnotation :: forall a . Show a => a -> ShowAnnotation++instance StackAnnotation ShowAnnotation where+ displayStackAnnotation (ShowAnnotation showAnno) = show showAnno++-- | A 'CallStack' stack annotation.+newtype CallStackAnnotation = CallStackAnnotation CallStack++instance Show CallStackAnnotation where+ show (CallStackAnnotation cs) = prettyCallStack cs++-- | Displays the first entry of the 'CallStack'+instance StackAnnotation CallStackAnnotation where+ displayStackAnnotation (CallStackAnnotation cs) = case getCallStack cs of+ [] -> "<unknown source location>"+ ((fnName,srcLoc):_) -> fnName ++ ", called at " ++ prettySrcLoc srcLoc++-- ----------------------------------------------------------------------------+-- Annotate the CallStack with custom data+-- ----------------------------------------------------------------------------++-- See Note [User-defined stack annotations for better stack traces]++-- | @'annotateStack' anno b@ annotates the evaluation stack of @b@+-- with the value of @anno@.+--+-- When decoding the call stack, the annotation frames can be used to add more+-- information to stack traces.+--+-- WARNING: forces the evaluation of @b@ to WHNF.+{-# NOINLINE annotateStack #-}+annotateStack :: forall a b. (Typeable a, StackAnnotation a) => a -> b -> b+annotateStack ann b = unsafePerformIO $+ annotateStackIO ann (evaluate b)++-- | @'annotateCallStack' b@ annotates the evaluation stack of @b@+-- with the current 'callstack'.+--+-- When decoding the call stack, the annotation frames can be used to add more+-- information to stack traces.+--+-- WARNING: forces the evaluation of @b@ to WHNF.+{-# NOINLINE annotateCallStack #-}+annotateCallStack :: HasCallStack => b -> b+annotateCallStack b = unsafePerformIO $ withFrozenCallStack $+ annotateCallStackIO (evaluate b)+++-- | @'annotateStackString' msg b@ annotates the evaluation stack of @b@+-- with the value @msg@.+--+-- When decoding the call stack, the annotation frames can be used to add more+-- information to stack traces.+--+-- WARNING: forces the evaluation of @b@ to WHNF.+annotateStackString :: forall b . String -> b -> b+annotateStackString ann =+ annotateStack (StringAnnotation ann)++-- | @'annotateStackShow' showable b@ annotates the evaluation stack of @b@+-- with the value @showable@.+--+-- When decoding the call stack, the annotation frames can be used to add more+-- information to stack traces.+--+-- WARNING: forces the evaluation of @b@ to WHNF.+annotateStackShow :: forall a b . (Typeable a, Show a) => a -> b -> b+annotateStackShow ann =+ annotateStack (ShowAnnotation ann)++-- | @'annotateStackIO' showable b@ annotates the evaluation stack of @b@+-- with the value @showable@.+--+-- When decoding the call stack, the annotation frames can be used to add more+-- information to stack traces.+annotateStackIO :: forall a b . (Typeable a, StackAnnotation a) => a -> IO b -> IO b+annotateStackIO ann (IO act) =+ IO $ \s -> annotateStack# (SomeStackAnnotation ann) act s+{-# NOINLINE annotateStackIO #-}++-- | @'annotateStackStringIO' msg b@ annotates the evaluation stack of @b@+-- with the value @msg@.+--+-- When decoding the call stack, the annotation frames can be used to add more+-- information to stack traces.+annotateStackStringIO :: forall b . String -> IO b -> IO b+annotateStackStringIO ann =+ annotateStackIO (StringAnnotation ann)++-- | @'annotateStackShowIO' msg b@ annotates the evaluation stack of @b@+-- with the value @msg@.+--+-- When decoding the call stack, the annotation frames can be used to add more+-- information to stack traces.+annotateStackShowIO :: forall a b . (Show a) => a -> IO b -> IO b+annotateStackShowIO ann =+ annotateStackIO (ShowAnnotation ann)++-- | @'annotateCallStackIO' b@ annotates the evaluation stack of @b@ with the+-- current 'callstack'.+--+-- When decoding the call stack, the annotation frames can be used to add more+-- information to stack traces.+annotateCallStackIO :: HasCallStack => IO a -> IO a+annotateCallStackIO =+ annotateStackIO (CallStackAnnotation ?callStack)
+ src/GHC/Stats/Experimental.hs view
@@ -0,0 +1,27 @@+{-# LANGUAGE Safe #-}++-- |+-- Module : RTS.Stats.Experimental+-- Copyright : (c) The University of Glasgow, 1994-2000+-- License : see libraries/ghc-experimental/LICENSE+--+-- Maintainer : ghc-devs@haskell.org+-- Stability : internal+-- Portability : non-portable (GHC extensions)+--+-- This module provides access to internal garbage collection and+-- memory usage statistics. These statistics are not available unless+-- a program is run with the @-T@ RTS flag.+--+-- /The API of this module is unstable and is coupled to GHC's internals./ As+-- such if you depend on it, you should expect to follow GHC's releases. This+-- API could change without warning.++module GHC.Stats.Experimental+ ( -- * Runtime statistics+ RTSStats(..), GCDetails(..), RtsTime+ , getRTSStats+ , getRTSStatsEnabled+ ) where++import GHC.Internal.Stats
src/Prelude/Experimental.hs view
@@ -23,8 +23,8 @@ module Data.Sum.Experimental, ) where -import GHC.Types (List)-import GHC.Classes+import GHC.Internal.Types (List)+import GHC.Internal.Classes import Data.Tuple.Experimental import Data.Sum.Experimental
+ src/System/Mem/Experimental.hs view
@@ -0,0 +1,10 @@+module System.Mem.Experimental+ ( setGlobalAllocationLimitHandler+ , AllocationLimitKillBehaviour(..)+ , getAllocationCounterFor+ , setAllocationCounterFor+ , enableAllocationLimitFor+ , disableAllocationLimitFor+ )+ where+import GHC.Internal.AllocationLimitHandler