record-gl-0.1.0.0: Utilities for working with OpenGL's GLSL shading language and Nikita Volkov's "Record"s.

Safe HaskellNone
LanguageHaskell2010

Record.Introspection

Description

Introspect field names and other attributes of a Record.

Synopsis

Documentation

class HasFieldNames a where Source

List all field names in a record.

Methods

fieldNames :: a -> [String] Source

Instances

KnownSymbol n1 => HasFieldNames (Record1 n1 v1) 
(KnownSymbol n1, KnownSymbol n2) => HasFieldNames (Record2 n1 v1 n2 v2) 
(KnownSymbol n1, KnownSymbol n2, KnownSymbol n3) => HasFieldNames (Record3 n1 v1 n2 v2 n3 v3) 
(KnownSymbol n1, KnownSymbol n2, KnownSymbol n3, KnownSymbol n4) => HasFieldNames (Record4 n1 v1 n2 v2 n3 v3 n4 v4) 
(KnownSymbol n1, KnownSymbol n2, KnownSymbol n3, KnownSymbol n4, KnownSymbol n5) => HasFieldNames (Record5 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5) 
(KnownSymbol n1, KnownSymbol n2, KnownSymbol n3, KnownSymbol n4, KnownSymbol n5, KnownSymbol n6) => HasFieldNames (Record6 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6) 
(KnownSymbol n1, KnownSymbol n2, KnownSymbol n3, KnownSymbol n4, KnownSymbol n5, KnownSymbol n6, KnownSymbol n7) => HasFieldNames (Record7 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7) 
(KnownSymbol n1, KnownSymbol n2, KnownSymbol n3, KnownSymbol n4, KnownSymbol n5, KnownSymbol n6, KnownSymbol n7, KnownSymbol n8) => HasFieldNames (Record8 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8) 
(KnownSymbol n1, KnownSymbol n2, KnownSymbol n3, KnownSymbol n4, KnownSymbol n5, KnownSymbol n6, KnownSymbol n7, KnownSymbol n8, KnownSymbol n9) => HasFieldNames (Record9 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9) 
(KnownSymbol n1, KnownSymbol n2, KnownSymbol n3, KnownSymbol n4, KnownSymbol n5, KnownSymbol n6, KnownSymbol n7, KnownSymbol n8, KnownSymbol n9, KnownSymbol n10) => HasFieldNames (Record10 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10) 
(KnownSymbol n1, KnownSymbol n2, KnownSymbol n3, KnownSymbol n4, KnownSymbol n5, KnownSymbol n6, KnownSymbol n7, KnownSymbol n8, KnownSymbol n9, KnownSymbol n10, KnownSymbol n11) => HasFieldNames (Record11 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10 n11 v11) 
(KnownSymbol n1, KnownSymbol n2, KnownSymbol n3, KnownSymbol n4, KnownSymbol n5, KnownSymbol n6, KnownSymbol n7, KnownSymbol n8, KnownSymbol n9, KnownSymbol n10, KnownSymbol n11, KnownSymbol n12) => HasFieldNames (Record12 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10 n11 v11 n12 v12) 
(KnownSymbol n1, KnownSymbol n2, KnownSymbol n3, KnownSymbol n4, KnownSymbol n5, KnownSymbol n6, KnownSymbol n7, KnownSymbol n8, KnownSymbol n9, KnownSymbol n10, KnownSymbol n11, KnownSymbol n12, KnownSymbol n13) => HasFieldNames (Record13 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10 n11 v11 n12 v12 n13 v13) 
(KnownSymbol n1, KnownSymbol n2, KnownSymbol n3, KnownSymbol n4, KnownSymbol n5, KnownSymbol n6, KnownSymbol n7, KnownSymbol n8, KnownSymbol n9, KnownSymbol n10, KnownSymbol n11, KnownSymbol n12, KnownSymbol n13, KnownSymbol n14) => HasFieldNames (Record14 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10 n11 v11 n12 v12 n13 v13 n14 v14) 
(KnownSymbol n1, KnownSymbol n2, KnownSymbol n3, KnownSymbol n4, KnownSymbol n5, KnownSymbol n6, KnownSymbol n7, KnownSymbol n8, KnownSymbol n9, KnownSymbol n10, KnownSymbol n11, KnownSymbol n12, KnownSymbol n13, KnownSymbol n14, KnownSymbol n15) => HasFieldNames (Record15 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10 n11 v11 n12 v12 n13 v13 n14 v14 n15 v15) 
(KnownSymbol n1, KnownSymbol n2, KnownSymbol n3, KnownSymbol n4, KnownSymbol n5, KnownSymbol n6, KnownSymbol n7, KnownSymbol n8, KnownSymbol n9, KnownSymbol n10, KnownSymbol n11, KnownSymbol n12, KnownSymbol n13, KnownSymbol n14, KnownSymbol n15, KnownSymbol n16) => HasFieldNames (Record16 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10 n11 v11 n12 v12 n13 v13 n14 v14 n15 v15 n16 v16) 
(KnownSymbol n1, KnownSymbol n2, KnownSymbol n3, KnownSymbol n4, KnownSymbol n5, KnownSymbol n6, KnownSymbol n7, KnownSymbol n8, KnownSymbol n9, KnownSymbol n10, KnownSymbol n11, KnownSymbol n12, KnownSymbol n13, KnownSymbol n14, KnownSymbol n15, KnownSymbol n16, KnownSymbol n17) => HasFieldNames (Record17 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10 n11 v11 n12 v12 n13 v13 n14 v14 n15 v15 n16 v16 n17 v17) 
(KnownSymbol n1, KnownSymbol n2, KnownSymbol n3, KnownSymbol n4, KnownSymbol n5, KnownSymbol n6, KnownSymbol n7, KnownSymbol n8, KnownSymbol n9, KnownSymbol n10, KnownSymbol n11, KnownSymbol n12, KnownSymbol n13, KnownSymbol n14, KnownSymbol n15, KnownSymbol n16, KnownSymbol n17, KnownSymbol n18) => HasFieldNames (Record18 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10 n11 v11 n12 v12 n13 v13 n14 v14 n15 v15 n16 v16 n17 v17 n18 v18) 
(KnownSymbol n1, KnownSymbol n2, KnownSymbol n3, KnownSymbol n4, KnownSymbol n5, KnownSymbol n6, KnownSymbol n7, KnownSymbol n8, KnownSymbol n9, KnownSymbol n10, KnownSymbol n11, KnownSymbol n12, KnownSymbol n13, KnownSymbol n14, KnownSymbol n15, KnownSymbol n16, KnownSymbol n17, KnownSymbol n18, KnownSymbol n19) => HasFieldNames (Record19 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10 n11 v11 n12 v12 n13 v13 n14 v14 n15 v15 n16 v16 n17 v17 n18 v18 n19 v19) 
(KnownSymbol n1, KnownSymbol n2, KnownSymbol n3, KnownSymbol n4, KnownSymbol n5, KnownSymbol n6, KnownSymbol n7, KnownSymbol n8, KnownSymbol n9, KnownSymbol n10, KnownSymbol n11, KnownSymbol n12, KnownSymbol n13, KnownSymbol n14, KnownSymbol n15, KnownSymbol n16, KnownSymbol n17, KnownSymbol n18, KnownSymbol n19, KnownSymbol n20) => HasFieldNames (Record20 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10 n11 v11 n12 v12 n13 v13 n14 v14 n15 v15 n16 v16 n17 v17 n18 v18 n19 v19 n20 v20) 
(KnownSymbol n1, KnownSymbol n2, KnownSymbol n3, KnownSymbol n4, KnownSymbol n5, KnownSymbol n6, KnownSymbol n7, KnownSymbol n8, KnownSymbol n9, KnownSymbol n10, KnownSymbol n11, KnownSymbol n12, KnownSymbol n13, KnownSymbol n14, KnownSymbol n15, KnownSymbol n16, KnownSymbol n17, KnownSymbol n18, KnownSymbol n19, KnownSymbol n20, KnownSymbol n21) => HasFieldNames (Record21 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10 n11 v11 n12 v12 n13 v13 n14 v14 n15 v15 n16 v16 n17 v17 n18 v18 n19 v19 n20 v20 n21 v21) 
(KnownSymbol n1, KnownSymbol n2, KnownSymbol n3, KnownSymbol n4, KnownSymbol n5, KnownSymbol n6, KnownSymbol n7, KnownSymbol n8, KnownSymbol n9, KnownSymbol n10, KnownSymbol n11, KnownSymbol n12, KnownSymbol n13, KnownSymbol n14, KnownSymbol n15, KnownSymbol n16, KnownSymbol n17, KnownSymbol n18, KnownSymbol n19, KnownSymbol n20, KnownSymbol n21, KnownSymbol n22) => HasFieldNames (Record22 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10 n11 v11 n12 v12 n13 v13 n14 v14 n15 v15 n16 v16 n17 v17 n18 v18 n19 v19 n20 v20 n21 v21 n22 v22) 
(KnownSymbol n1, KnownSymbol n2, KnownSymbol n3, KnownSymbol n4, KnownSymbol n5, KnownSymbol n6, KnownSymbol n7, KnownSymbol n8, KnownSymbol n9, KnownSymbol n10, KnownSymbol n11, KnownSymbol n12, KnownSymbol n13, KnownSymbol n14, KnownSymbol n15, KnownSymbol n16, KnownSymbol n17, KnownSymbol n18, KnownSymbol n19, KnownSymbol n20, KnownSymbol n21, KnownSymbol n22, KnownSymbol n23) => HasFieldNames (Record23 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10 n11 v11 n12 v12 n13 v13 n14 v14 n15 v15 n16 v16 n17 v17 n18 v18 n19 v19 n20 v20 n21 v21 n22 v22 n23 v23) 
(KnownSymbol n1, KnownSymbol n2, KnownSymbol n3, KnownSymbol n4, KnownSymbol n5, KnownSymbol n6, KnownSymbol n7, KnownSymbol n8, KnownSymbol n9, KnownSymbol n10, KnownSymbol n11, KnownSymbol n12, KnownSymbol n13, KnownSymbol n14, KnownSymbol n15, KnownSymbol n16, KnownSymbol n17, KnownSymbol n18, KnownSymbol n19, KnownSymbol n20, KnownSymbol n21, KnownSymbol n22, KnownSymbol n23, KnownSymbol n24) => HasFieldNames (Record24 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10 n11 v11 n12 v12 n13 v13 n14 v14 n15 v15 n16 v16 n17 v17 n18 v18 n19 v19 n20 v20 n21 v21 n22 v22 n23 v23 n24 v24) 

class HasFieldDims a where Source

Compute the dimensionality of each field in a record. This is primarily useful for things like the small finite vector types provided by Linear.

Methods

fieldDims :: a -> [Int] Source

Instances

(Foldable l1, Num (l1 v1)) => HasFieldDims (Record1 n1 (l1 v1)) 
(Foldable l1, Foldable l2, Num (l1 v1), Num (l2 v2)) => HasFieldDims (Record2 n1 (l1 v1) n2 (l2 v2)) 
(Foldable l1, Foldable l2, Foldable l3, Num (l1 v1), Num (l2 v2), Num (l3 v3)) => HasFieldDims (Record3 n1 (l1 v1) n2 (l2 v2) n3 (l3 v3)) 
(Foldable l1, Foldable l2, Foldable l3, Foldable l4, Num (l1 v1), Num (l2 v2), Num (l3 v3), Num (l4 v4)) => HasFieldDims (Record4 n1 (l1 v1) n2 (l2 v2) n3 (l3 v3) n4 (l4 v4)) 
(Foldable l1, Foldable l2, Foldable l3, Foldable l4, Foldable l5, Num (l1 v1), Num (l2 v2), Num (l3 v3), Num (l4 v4), Num (l5 v5)) => HasFieldDims (Record5 n1 (l1 v1) n2 (l2 v2) n3 (l3 v3) n4 (l4 v4) n5 (l5 v5)) 
(Foldable l1, Foldable l2, Foldable l3, Foldable l4, Foldable l5, Foldable l6, Num (l1 v1), Num (l2 v2), Num (l3 v3), Num (l4 v4), Num (l5 v5), Num (l6 v6)) => HasFieldDims (Record6 n1 (l1 v1) n2 (l2 v2) n3 (l3 v3) n4 (l4 v4) n5 (l5 v5) n6 (l6 v6)) 
(Foldable l1, Foldable l2, Foldable l3, Foldable l4, Foldable l5, Foldable l6, Foldable l7, Num (l1 v1), Num (l2 v2), Num (l3 v3), Num (l4 v4), Num (l5 v5), Num (l6 v6), Num (l7 v7)) => HasFieldDims (Record7 n1 (l1 v1) n2 (l2 v2) n3 (l3 v3) n4 (l4 v4) n5 (l5 v5) n6 (l6 v6) n7 (l7 v7)) 
(Foldable l1, Foldable l2, Foldable l3, Foldable l4, Foldable l5, Foldable l6, Foldable l7, Foldable l8, Num (l1 v1), Num (l2 v2), Num (l3 v3), Num (l4 v4), Num (l5 v5), Num (l6 v6), Num (l7 v7), Num (l8 v8)) => HasFieldDims (Record8 n1 (l1 v1) n2 (l2 v2) n3 (l3 v3) n4 (l4 v4) n5 (l5 v5) n6 (l6 v6) n7 (l7 v7) n8 (l8 v8)) 
(Foldable l1, Foldable l2, Foldable l3, Foldable l4, Foldable l5, Foldable l6, Foldable l7, Foldable l8, Foldable l9, Num (l1 v1), Num (l2 v2), Num (l3 v3), Num (l4 v4), Num (l5 v5), Num (l6 v6), Num (l7 v7), Num (l8 v8), Num (l9 v9)) => HasFieldDims (Record9 n1 (l1 v1) n2 (l2 v2) n3 (l3 v3) n4 (l4 v4) n5 (l5 v5) n6 (l6 v6) n7 (l7 v7) n8 (l8 v8) n9 (l9 v9)) 
(Foldable l1, Foldable l2, Foldable l3, Foldable l4, Foldable l5, Foldable l6, Foldable l7, Foldable l8, Foldable l9, Foldable l10, Num (l1 v1), Num (l2 v2), Num (l3 v3), Num (l4 v4), Num (l5 v5), Num (l6 v6), Num (l7 v7), Num (l8 v8), Num (l9 v9), Num (l10 v10)) => HasFieldDims (Record10 n1 (l1 v1) n2 (l2 v2) n3 (l3 v3) n4 (l4 v4) n5 (l5 v5) n6 (l6 v6) n7 (l7 v7) n8 (l8 v8) n9 (l9 v9) n10 (l10 v10)) 
(Foldable l1, Foldable l2, Foldable l3, Foldable l4, Foldable l5, Foldable l6, Foldable l7, Foldable l8, Foldable l9, Foldable l10, Foldable l11, Num (l1 v1), Num (l2 v2), Num (l3 v3), Num (l4 v4), Num (l5 v5), Num (l6 v6), Num (l7 v7), Num (l8 v8), Num (l9 v9), Num (l10 v10), Num (l11 v11)) => HasFieldDims (Record11 n1 (l1 v1) n2 (l2 v2) n3 (l3 v3) n4 (l4 v4) n5 (l5 v5) n6 (l6 v6) n7 (l7 v7) n8 (l8 v8) n9 (l9 v9) n10 (l10 v10) n11 (l11 v11)) 
(Foldable l1, Foldable l2, Foldable l3, Foldable l4, Foldable l5, Foldable l6, Foldable l7, Foldable l8, Foldable l9, Foldable l10, Foldable l11, Foldable l12, Num (l1 v1), Num (l2 v2), Num (l3 v3), Num (l4 v4), Num (l5 v5), Num (l6 v6), Num (l7 v7), Num (l8 v8), Num (l9 v9), Num (l10 v10), Num (l11 v11), Num (l12 v12)) => HasFieldDims (Record12 n1 (l1 v1) n2 (l2 v2) n3 (l3 v3) n4 (l4 v4) n5 (l5 v5) n6 (l6 v6) n7 (l7 v7) n8 (l8 v8) n9 (l9 v9) n10 (l10 v10) n11 (l11 v11) n12 (l12 v12)) 
(Foldable l1, Foldable l2, Foldable l3, Foldable l4, Foldable l5, Foldable l6, Foldable l7, Foldable l8, Foldable l9, Foldable l10, Foldable l11, Foldable l12, Foldable l13, Num (l1 v1), Num (l2 v2), Num (l3 v3), Num (l4 v4), Num (l5 v5), Num (l6 v6), Num (l7 v7), Num (l8 v8), Num (l9 v9), Num (l10 v10), Num (l11 v11), Num (l12 v12), Num (l13 v13)) => HasFieldDims (Record13 n1 (l1 v1) n2 (l2 v2) n3 (l3 v3) n4 (l4 v4) n5 (l5 v5) n6 (l6 v6) n7 (l7 v7) n8 (l8 v8) n9 (l9 v9) n10 (l10 v10) n11 (l11 v11) n12 (l12 v12) n13 (l13 v13)) 
(Foldable l1, Foldable l2, Foldable l3, Foldable l4, Foldable l5, Foldable l6, Foldable l7, Foldable l8, Foldable l9, Foldable l10, Foldable l11, Foldable l12, Foldable l13, Foldable l14, Num (l1 v1), Num (l2 v2), Num (l3 v3), Num (l4 v4), Num (l5 v5), Num (l6 v6), Num (l7 v7), Num (l8 v8), Num (l9 v9), Num (l10 v10), Num (l11 v11), Num (l12 v12), Num (l13 v13), Num (l14 v14)) => HasFieldDims (Record14 n1 (l1 v1) n2 (l2 v2) n3 (l3 v3) n4 (l4 v4) n5 (l5 v5) n6 (l6 v6) n7 (l7 v7) n8 (l8 v8) n9 (l9 v9) n10 (l10 v10) n11 (l11 v11) n12 (l12 v12) n13 (l13 v13) n14 (l14 v14)) 
(Foldable l1, Foldable l2, Foldable l3, Foldable l4, Foldable l5, Foldable l6, Foldable l7, Foldable l8, Foldable l9, Foldable l10, Foldable l11, Foldable l12, Foldable l13, Foldable l14, Foldable l15, Num (l1 v1), Num (l2 v2), Num (l3 v3), Num (l4 v4), Num (l5 v5), Num (l6 v6), Num (l7 v7), Num (l8 v8), Num (l9 v9), Num (l10 v10), Num (l11 v11), Num (l12 v12), Num (l13 v13), Num (l14 v14), Num (l15 v15)) => HasFieldDims (Record15 n1 (l1 v1) n2 (l2 v2) n3 (l3 v3) n4 (l4 v4) n5 (l5 v5) n6 (l6 v6) n7 (l7 v7) n8 (l8 v8) n9 (l9 v9) n10 (l10 v10) n11 (l11 v11) n12 (l12 v12) n13 (l13 v13) n14 (l14 v14) n15 (l15 v15)) 
(Foldable l1, Foldable l2, Foldable l3, Foldable l4, Foldable l5, Foldable l6, Foldable l7, Foldable l8, Foldable l9, Foldable l10, Foldable l11, Foldable l12, Foldable l13, Foldable l14, Foldable l15, Foldable l16, Num (l1 v1), Num (l2 v2), Num (l3 v3), Num (l4 v4), Num (l5 v5), Num (l6 v6), Num (l7 v7), Num (l8 v8), Num (l9 v9), Num (l10 v10), Num (l11 v11), Num (l12 v12), Num (l13 v13), Num (l14 v14), Num (l15 v15), Num (l16 v16)) => HasFieldDims (Record16 n1 (l1 v1) n2 (l2 v2) n3 (l3 v3) n4 (l4 v4) n5 (l5 v5) n6 (l6 v6) n7 (l7 v7) n8 (l8 v8) n9 (l9 v9) n10 (l10 v10) n11 (l11 v11) n12 (l12 v12) n13 (l13 v13) n14 (l14 v14) n15 (l15 v15) n16 (l16 v16)) 
(Foldable l1, Foldable l2, Foldable l3, Foldable l4, Foldable l5, Foldable l6, Foldable l7, Foldable l8, Foldable l9, Foldable l10, Foldable l11, Foldable l12, Foldable l13, Foldable l14, Foldable l15, Foldable l16, Foldable l17, Num (l1 v1), Num (l2 v2), Num (l3 v3), Num (l4 v4), Num (l5 v5), Num (l6 v6), Num (l7 v7), Num (l8 v8), Num (l9 v9), Num (l10 v10), Num (l11 v11), Num (l12 v12), Num (l13 v13), Num (l14 v14), Num (l15 v15), Num (l16 v16), Num (l17 v17)) => HasFieldDims (Record17 n1 (l1 v1) n2 (l2 v2) n3 (l3 v3) n4 (l4 v4) n5 (l5 v5) n6 (l6 v6) n7 (l7 v7) n8 (l8 v8) n9 (l9 v9) n10 (l10 v10) n11 (l11 v11) n12 (l12 v12) n13 (l13 v13) n14 (l14 v14) n15 (l15 v15) n16 (l16 v16) n17 (l17 v17)) 
(Foldable l1, Foldable l2, Foldable l3, Foldable l4, Foldable l5, Foldable l6, Foldable l7, Foldable l8, Foldable l9, Foldable l10, Foldable l11, Foldable l12, Foldable l13, Foldable l14, Foldable l15, Foldable l16, Foldable l17, Foldable l18, Num (l1 v1), Num (l2 v2), Num (l3 v3), Num (l4 v4), Num (l5 v5), Num (l6 v6), Num (l7 v7), Num (l8 v8), Num (l9 v9), Num (l10 v10), Num (l11 v11), Num (l12 v12), Num (l13 v13), Num (l14 v14), Num (l15 v15), Num (l16 v16), Num (l17 v17), Num (l18 v18)) => HasFieldDims (Record18 n1 (l1 v1) n2 (l2 v2) n3 (l3 v3) n4 (l4 v4) n5 (l5 v5) n6 (l6 v6) n7 (l7 v7) n8 (l8 v8) n9 (l9 v9) n10 (l10 v10) n11 (l11 v11) n12 (l12 v12) n13 (l13 v13) n14 (l14 v14) n15 (l15 v15) n16 (l16 v16) n17 (l17 v17) n18 (l18 v18)) 
(Foldable l1, Foldable l2, Foldable l3, Foldable l4, Foldable l5, Foldable l6, Foldable l7, Foldable l8, Foldable l9, Foldable l10, Foldable l11, Foldable l12, Foldable l13, Foldable l14, Foldable l15, Foldable l16, Foldable l17, Foldable l18, Foldable l19, Num (l1 v1), Num (l2 v2), Num (l3 v3), Num (l4 v4), Num (l5 v5), Num (l6 v6), Num (l7 v7), Num (l8 v8), Num (l9 v9), Num (l10 v10), Num (l11 v11), Num (l12 v12), Num (l13 v13), Num (l14 v14), Num (l15 v15), Num (l16 v16), Num (l17 v17), Num (l18 v18), Num (l19 v19)) => HasFieldDims (Record19 n1 (l1 v1) n2 (l2 v2) n3 (l3 v3) n4 (l4 v4) n5 (l5 v5) n6 (l6 v6) n7 (l7 v7) n8 (l8 v8) n9 (l9 v9) n10 (l10 v10) n11 (l11 v11) n12 (l12 v12) n13 (l13 v13) n14 (l14 v14) n15 (l15 v15) n16 (l16 v16) n17 (l17 v17) n18 (l18 v18) n19 (l19 v19)) 
(Foldable l1, Foldable l2, Foldable l3, Foldable l4, Foldable l5, Foldable l6, Foldable l7, Foldable l8, Foldable l9, Foldable l10, Foldable l11, Foldable l12, Foldable l13, Foldable l14, Foldable l15, Foldable l16, Foldable l17, Foldable l18, Foldable l19, Foldable l20, Num (l1 v1), Num (l2 v2), Num (l3 v3), Num (l4 v4), Num (l5 v5), Num (l6 v6), Num (l7 v7), Num (l8 v8), Num (l9 v9), Num (l10 v10), Num (l11 v11), Num (l12 v12), Num (l13 v13), Num (l14 v14), Num (l15 v15), Num (l16 v16), Num (l17 v17), Num (l18 v18), Num (l19 v19), Num (l20 v20)) => HasFieldDims (Record20 n1 (l1 v1) n2 (l2 v2) n3 (l3 v3) n4 (l4 v4) n5 (l5 v5) n6 (l6 v6) n7 (l7 v7) n8 (l8 v8) n9 (l9 v9) n10 (l10 v10) n11 (l11 v11) n12 (l12 v12) n13 (l13 v13) n14 (l14 v14) n15 (l15 v15) n16 (l16 v16) n17 (l17 v17) n18 (l18 v18) n19 (l19 v19) n20 (l20 v20)) 
(Foldable l1, Foldable l2, Foldable l3, Foldable l4, Foldable l5, Foldable l6, Foldable l7, Foldable l8, Foldable l9, Foldable l10, Foldable l11, Foldable l12, Foldable l13, Foldable l14, Foldable l15, Foldable l16, Foldable l17, Foldable l18, Foldable l19, Foldable l20, Foldable l21, Num (l1 v1), Num (l2 v2), Num (l3 v3), Num (l4 v4), Num (l5 v5), Num (l6 v6), Num (l7 v7), Num (l8 v8), Num (l9 v9), Num (l10 v10), Num (l11 v11), Num (l12 v12), Num (l13 v13), Num (l14 v14), Num (l15 v15), Num (l16 v16), Num (l17 v17), Num (l18 v18), Num (l19 v19), Num (l20 v20), Num (l21 v21)) => HasFieldDims (Record21 n1 (l1 v1) n2 (l2 v2) n3 (l3 v3) n4 (l4 v4) n5 (l5 v5) n6 (l6 v6) n7 (l7 v7) n8 (l8 v8) n9 (l9 v9) n10 (l10 v10) n11 (l11 v11) n12 (l12 v12) n13 (l13 v13) n14 (l14 v14) n15 (l15 v15) n16 (l16 v16) n17 (l17 v17) n18 (l18 v18) n19 (l19 v19) n20 (l20 v20) n21 (l21 v21)) 
(Foldable l1, Foldable l2, Foldable l3, Foldable l4, Foldable l5, Foldable l6, Foldable l7, Foldable l8, Foldable l9, Foldable l10, Foldable l11, Foldable l12, Foldable l13, Foldable l14, Foldable l15, Foldable l16, Foldable l17, Foldable l18, Foldable l19, Foldable l20, Foldable l21, Foldable l22, Num (l1 v1), Num (l2 v2), Num (l3 v3), Num (l4 v4), Num (l5 v5), Num (l6 v6), Num (l7 v7), Num (l8 v8), Num (l9 v9), Num (l10 v10), Num (l11 v11), Num (l12 v12), Num (l13 v13), Num (l14 v14), Num (l15 v15), Num (l16 v16), Num (l17 v17), Num (l18 v18), Num (l19 v19), Num (l20 v20), Num (l21 v21), Num (l22 v22)) => HasFieldDims (Record22 n1 (l1 v1) n2 (l2 v2) n3 (l3 v3) n4 (l4 v4) n5 (l5 v5) n6 (l6 v6) n7 (l7 v7) n8 (l8 v8) n9 (l9 v9) n10 (l10 v10) n11 (l11 v11) n12 (l12 v12) n13 (l13 v13) n14 (l14 v14) n15 (l15 v15) n16 (l16 v16) n17 (l17 v17) n18 (l18 v18) n19 (l19 v19) n20 (l20 v20) n21 (l21 v21) n22 (l22 v22)) 
(Foldable l1, Foldable l2, Foldable l3, Foldable l4, Foldable l5, Foldable l6, Foldable l7, Foldable l8, Foldable l9, Foldable l10, Foldable l11, Foldable l12, Foldable l13, Foldable l14, Foldable l15, Foldable l16, Foldable l17, Foldable l18, Foldable l19, Foldable l20, Foldable l21, Foldable l22, Foldable l23, Num (l1 v1), Num (l2 v2), Num (l3 v3), Num (l4 v4), Num (l5 v5), Num (l6 v6), Num (l7 v7), Num (l8 v8), Num (l9 v9), Num (l10 v10), Num (l11 v11), Num (l12 v12), Num (l13 v13), Num (l14 v14), Num (l15 v15), Num (l16 v16), Num (l17 v17), Num (l18 v18), Num (l19 v19), Num (l20 v20), Num (l21 v21), Num (l22 v22), Num (l23 v23)) => HasFieldDims (Record23 n1 (l1 v1) n2 (l2 v2) n3 (l3 v3) n4 (l4 v4) n5 (l5 v5) n6 (l6 v6) n7 (l7 v7) n8 (l8 v8) n9 (l9 v9) n10 (l10 v10) n11 (l11 v11) n12 (l12 v12) n13 (l13 v13) n14 (l14 v14) n15 (l15 v15) n16 (l16 v16) n17 (l17 v17) n18 (l18 v18) n19 (l19 v19) n20 (l20 v20) n21 (l21 v21) n22 (l22 v22) n23 (l23 v23)) 
(Foldable l1, Foldable l2, Foldable l3, Foldable l4, Foldable l5, Foldable l6, Foldable l7, Foldable l8, Foldable l9, Foldable l10, Foldable l11, Foldable l12, Foldable l13, Foldable l14, Foldable l15, Foldable l16, Foldable l17, Foldable l18, Foldable l19, Foldable l20, Foldable l21, Foldable l22, Foldable l23, Foldable l24, Num (l1 v1), Num (l2 v2), Num (l3 v3), Num (l4 v4), Num (l5 v5), Num (l6 v6), Num (l7 v7), Num (l8 v8), Num (l9 v9), Num (l10 v10), Num (l11 v11), Num (l12 v12), Num (l13 v13), Num (l14 v14), Num (l15 v15), Num (l16 v16), Num (l17 v17), Num (l18 v18), Num (l19 v19), Num (l20 v20), Num (l21 v21), Num (l22 v22), Num (l23 v23), Num (l24 v24)) => HasFieldDims (Record24 n1 (l1 v1) n2 (l2 v2) n3 (l3 v3) n4 (l4 v4) n5 (l5 v5) n6 (l6 v6) n7 (l7 v7) n8 (l8 v8) n9 (l9 v9) n10 (l10 v10) n11 (l11 v11) n12 (l12 v12) n13 (l13 v13) n14 (l14 v14) n15 (l15 v15) n16 (l16 v16) n17 (l17 v17) n18 (l18 v18) n19 (l19 v19) n20 (l20 v20) n21 (l21 v21) n22 (l22 v22) n23 (l23 v23) n24 (l24 v24)) 

class HasFieldSizes a where Source

Compute the size in bytes of of each field in a record.

Methods

fieldSizes :: a -> [Int] Source

Instances

Storable v1 => HasFieldSizes (Record1 n1 v1) 
(Storable v1, Storable v2) => HasFieldSizes (Record2 n1 v1 n2 v2) 
(Storable v1, Storable v2, Storable v3) => HasFieldSizes (Record3 n1 v1 n2 v2 n3 v3) 
(Storable v1, Storable v2, Storable v3, Storable v4) => HasFieldSizes (Record4 n1 v1 n2 v2 n3 v3 n4 v4) 
(Storable v1, Storable v2, Storable v3, Storable v4, Storable v5) => HasFieldSizes (Record5 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5) 
(Storable v1, Storable v2, Storable v3, Storable v4, Storable v5, Storable v6) => HasFieldSizes (Record6 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6) 
(Storable v1, Storable v2, Storable v3, Storable v4, Storable v5, Storable v6, Storable v7) => HasFieldSizes (Record7 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7) 
(Storable v1, Storable v2, Storable v3, Storable v4, Storable v5, Storable v6, Storable v7, Storable v8) => HasFieldSizes (Record8 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8) 
(Storable v1, Storable v2, Storable v3, Storable v4, Storable v5, Storable v6, Storable v7, Storable v8, Storable v9) => HasFieldSizes (Record9 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9) 
(Storable v1, Storable v2, Storable v3, Storable v4, Storable v5, Storable v6, Storable v7, Storable v8, Storable v9, Storable v10) => HasFieldSizes (Record10 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10) 
(Storable v1, Storable v2, Storable v3, Storable v4, Storable v5, Storable v6, Storable v7, Storable v8, Storable v9, Storable v10, Storable v11) => HasFieldSizes (Record11 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10 n11 v11) 
(Storable v1, Storable v2, Storable v3, Storable v4, Storable v5, Storable v6, Storable v7, Storable v8, Storable v9, Storable v10, Storable v11, Storable v12) => HasFieldSizes (Record12 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10 n11 v11 n12 v12) 
(Storable v1, Storable v2, Storable v3, Storable v4, Storable v5, Storable v6, Storable v7, Storable v8, Storable v9, Storable v10, Storable v11, Storable v12, Storable v13) => HasFieldSizes (Record13 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10 n11 v11 n12 v12 n13 v13) 
(Storable v1, Storable v2, Storable v3, Storable v4, Storable v5, Storable v6, Storable v7, Storable v8, Storable v9, Storable v10, Storable v11, Storable v12, Storable v13, Storable v14) => HasFieldSizes (Record14 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10 n11 v11 n12 v12 n13 v13 n14 v14) 
(Storable v1, Storable v2, Storable v3, Storable v4, Storable v5, Storable v6, Storable v7, Storable v8, Storable v9, Storable v10, Storable v11, Storable v12, Storable v13, Storable v14, Storable v15) => HasFieldSizes (Record15 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10 n11 v11 n12 v12 n13 v13 n14 v14 n15 v15) 
(Storable v1, Storable v2, Storable v3, Storable v4, Storable v5, Storable v6, Storable v7, Storable v8, Storable v9, Storable v10, Storable v11, Storable v12, Storable v13, Storable v14, Storable v15, Storable v16) => HasFieldSizes (Record16 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10 n11 v11 n12 v12 n13 v13 n14 v14 n15 v15 n16 v16) 
(Storable v1, Storable v2, Storable v3, Storable v4, Storable v5, Storable v6, Storable v7, Storable v8, Storable v9, Storable v10, Storable v11, Storable v12, Storable v13, Storable v14, Storable v15, Storable v16, Storable v17) => HasFieldSizes (Record17 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10 n11 v11 n12 v12 n13 v13 n14 v14 n15 v15 n16 v16 n17 v17) 
(Storable v1, Storable v2, Storable v3, Storable v4, Storable v5, Storable v6, Storable v7, Storable v8, Storable v9, Storable v10, Storable v11, Storable v12, Storable v13, Storable v14, Storable v15, Storable v16, Storable v17, Storable v18) => HasFieldSizes (Record18 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10 n11 v11 n12 v12 n13 v13 n14 v14 n15 v15 n16 v16 n17 v17 n18 v18) 
(Storable v1, Storable v2, Storable v3, Storable v4, Storable v5, Storable v6, Storable v7, Storable v8, Storable v9, Storable v10, Storable v11, Storable v12, Storable v13, Storable v14, Storable v15, Storable v16, Storable v17, Storable v18, Storable v19) => HasFieldSizes (Record19 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10 n11 v11 n12 v12 n13 v13 n14 v14 n15 v15 n16 v16 n17 v17 n18 v18 n19 v19) 
(Storable v1, Storable v2, Storable v3, Storable v4, Storable v5, Storable v6, Storable v7, Storable v8, Storable v9, Storable v10, Storable v11, Storable v12, Storable v13, Storable v14, Storable v15, Storable v16, Storable v17, Storable v18, Storable v19, Storable v20) => HasFieldSizes (Record20 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10 n11 v11 n12 v12 n13 v13 n14 v14 n15 v15 n16 v16 n17 v17 n18 v18 n19 v19 n20 v20) 
(Storable v1, Storable v2, Storable v3, Storable v4, Storable v5, Storable v6, Storable v7, Storable v8, Storable v9, Storable v10, Storable v11, Storable v12, Storable v13, Storable v14, Storable v15, Storable v16, Storable v17, Storable v18, Storable v19, Storable v20, Storable v21) => HasFieldSizes (Record21 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10 n11 v11 n12 v12 n13 v13 n14 v14 n15 v15 n16 v16 n17 v17 n18 v18 n19 v19 n20 v20 n21 v21) 
(Storable v1, Storable v2, Storable v3, Storable v4, Storable v5, Storable v6, Storable v7, Storable v8, Storable v9, Storable v10, Storable v11, Storable v12, Storable v13, Storable v14, Storable v15, Storable v16, Storable v17, Storable v18, Storable v19, Storable v20, Storable v21, Storable v22) => HasFieldSizes (Record22 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10 n11 v11 n12 v12 n13 v13 n14 v14 n15 v15 n16 v16 n17 v17 n18 v18 n19 v19 n20 v20 n21 v21 n22 v22) 
(Storable v1, Storable v2, Storable v3, Storable v4, Storable v5, Storable v6, Storable v7, Storable v8, Storable v9, Storable v10, Storable v11, Storable v12, Storable v13, Storable v14, Storable v15, Storable v16, Storable v17, Storable v18, Storable v19, Storable v20, Storable v21, Storable v22, Storable v23) => HasFieldSizes (Record23 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10 n11 v11 n12 v12 n13 v13 n14 v14 n15 v15 n16 v16 n17 v17 n18 v18 n19 v19 n20 v20 n21 v21 n22 v22 n23 v23) 
(Storable v1, Storable v2, Storable v3, Storable v4, Storable v5, Storable v6, Storable v7, Storable v8, Storable v9, Storable v10, Storable v11, Storable v12, Storable v13, Storable v14, Storable v15, Storable v16, Storable v17, Storable v18, Storable v19, Storable v20, Storable v21, Storable v22, Storable v23, Storable v24) => HasFieldSizes (Record24 n1 v1 n2 v2 n3 v3 n4 v4 n5 v5 n6 v6 n7 v7 n8 v8 n9 v9 n10 v10 n11 v11 n12 v12 n13 v13 n14 v14 n15 v15 n16 v16 n17 v17 n18 v18 n19 v19 n20 v20 n21 v21 n22 v22 n23 v23 n24 v24)