# Pastebin 5laasaTP λ> data ARecord = ARecord { anInt :: Int, aBool :: Bool, bBool :: Bool } deriving (Show, Generic) λ> let aVal = ARecord 13 True False λ> aVal ^? typed @Int Just 13 λ> aVal ^? typed @Bool :10:9: error: • The type ARecord contains multiple values of type Bool. The choice of value is thus ambiguous. The offending constructors are: • ARecord • In the second argument of ‘(^?)’, namely ‘typed @Bool’ In the expression: aVal ^? typed @Bool In an equation for ‘it’: it = aVal ^? typed @Bool