úÎ²Ö     None!" ©data IOException' a = IOException { ioExceptionCause :: String , ioExceptionClue :: a } ==> do a <- newName "a" ExceptionDataNames { typeName = mkName  IOException' , causeRecordName = mkName "ioExceptionCause" , clueRecordName = mkName "ioExceptionClue" } Convert string of  PascalCase to  camelCase . If no  PascalCaseG string or multi byte string is given, undefined behavior is happended.pascalToCamelCase "IOException" "ioException" pascalToCamelCase "IOException'""ioException'"$pascalToCamelCase "FOO2BarException""foO2BarException" pascalToCamelCase "I2SException""i2SException"$pascalToCamelCase "Foo2BarException""foo2BarException"-pascalToCamelCase "IndexOutOfBoundsException""indexOutOfBoundsException"-pascalToCamelCase "IllegalArgumentException'""illegalArgumentException'"pascalToCamelCase "Exception1" "exception1"ADeclare simple concrete exception datat type in the compile time. exceptionName must be PascalCase (e.g>  IOException', IndexOutOfBoundsException4. NG> "ioException'", "indexOutOfBoundsException") .And  exceptionName should have the suffix of  Exception. !"# !"#NoneAn other of these exceptionsThis should be named by  PascalCase for show, for example:  MyOperation, Database*The message for the cause of the exception@The clue of the exception. This can be anything of Show instance<A constructor for GeneralException but doesn't take the clue      $       !"3throwable-exceptions-0.1.0.6-9tXrBQKVc55FcCuITdpVNJControl.Exception.Throwable.THControl.Exception.ThrowabledeclareExceptionGeneralException exceptionNameexceptionCause exceptionCluegeneralException$fExceptionGeneralException$fShowGeneralException IOException'iOException'CauseiOException'Clue ioException'$fExceptionIOException'$fShowIOException'IndexOutOfBoundsExceptionindexOutOfBoundsExceptionCauseindexOutOfBoundsExceptionClueindexOutOfBoundsException$$fExceptionIndexOutOfBoundsException$fShowIndexOutOfBoundsExceptionIllegalArgumentExceptionillegalArgumentExceptionCauseillegalArgumentExceptionClueillegalArgumentException#$fExceptionIllegalArgumentException$fShowIllegalArgumentExceptionExceptionDataNamespascalToCamelCasetypeNamecauseRecordNameclueRecordName