Admin message

Due to a large amount of spam we do not allow new users to create repositories, they are "external" users. If you are a new user and want to create a repository, for example for forking GHC, open a new issue on ghc/ghc using the "get-verified" issue template

Top-level bindings in ghci
ghci now supports most of the declarations. However, it doesn't support the most basic and common type of declaraion — pattern and function bindings! E.g. ``` Prelude> a = 1 <interactive>:2:3: parse error on input `=' ``` I realise that, if implemented, they would have somewhat different semantics than in Haskell modules — e.g. with respect to recursion. But even if they behaved in the same way as top-level monadic let-bindings, they would still be very useful for two reasons: 1. If you're doing quick experiments in ghci, "let a=1" is more than twice as long as "a=1", and that makes a difference. 1. Novices are often confused when they are told that they have to use one syntax for definitions in modules and another in ghci. <details><summary>Trac metadata</summary> | Trac field | Value | | ---------------------- | -------------- | | Version | 7.6.1 | | Type | FeatureRequest | | TypeOfFailure | OtherFailure | | Priority | normal | | Resolution | Unresolved | | Component | GHCi | | Test case | | | Differential revisions | | | BlockedBy | | | Related | | | Blocking | | | CC | | | Operating system | | | Architecture | | </details> <!-- {"blocked_by":[],"summary":"Top-level bindings in ghci","status":"New","operating_system":"","component":"GHCi","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"7.6.1","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"FeatureRequest","description":"ghci now supports most of the declarations. However, it doesn't support the most basic and common type of declaraion — pattern and function bindings!\r\n\r\nE.g.\r\n\r\n{{{\r\nPrelude> a = 1\r\n\r\n<interactive>:2:3: parse error on input `='\r\n}}}\r\n\r\nI realise that, if implemented, they would have somewhat different semantics than in Haskell modules — e.g. with respect to recursion.\r\n\r\nBut even if they behaved in the same way as top-level monadic let-bindings, they would still be very useful for two reasons:\r\n\r\n1. If you're doing quick experiments in ghci, \"let a=1\" is more than twice as long as \"a=1\", and that makes a difference.\r\n\r\n2. Novices are often confused when they are told that they have to use one syntax for definitions in modules and another in ghci.\r\n","type_of_failure":"OtherFailure","blocking":[]} -->
issue