# Pastebin vNHqRN0S data SBool (b :: Bool) where STrue :: SBool True SFalse :: SBool False class SBoolI where singBoolI :: SBool instance SBoolI b => Read (Two b) where readPrec = case singBoolI @b of SFalse -> do Ident "Zero" <- lexP pure Zero STrue -> do Ident "One" <- lexP pure One