{"action":"created","issue":{"url":"https://api.github.com/repos/ucsd-progsys/liquidhaskell/issues/734","repository_url":"https://api.github.com/repos/ucsd-progsys/liquidhaskell","labels_url":"https://api.github.com/repos/ucsd-progsys/liquidhaskell/issues/734/labels{/name}","comments_url":"https://api.github.com/repos/ucsd-progsys/liquidhaskell/issues/734/comments","events_url":"https://api.github.com/repos/ucsd-progsys/liquidhaskell/issues/734/events","html_url":"https://github.com/ucsd-progsys/liquidhaskell/issues/734","id":160285664,"number":734,"title":"Random constraint generation error","user":{"login":"themattchan","id":586708,"avatar_url":"https://avatars.githubusercontent.com/u/586708?v=3","gravatar_id":"","url":"https://api.github.com/users/themattchan","html_url":"https://github.com/themattchan","followers_url":"https://api.github.com/users/themattchan/followers","following_url":"https://api.github.com/users/themattchan/following{/other_user}","gists_url":"https://api.github.com/users/themattchan/gists{/gist_id}","starred_url":"https://api.github.com/users/themattchan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/themattchan/subscriptions","organizations_url":"https://api.github.com/users/themattchan/orgs","repos_url":"https://api.github.com/users/themattchan/repos","events_url":"https://api.github.com/users/themattchan/events{/privacy}","received_events_url":"https://api.github.com/users/themattchan/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-06-14T21:15:08Z","updated_at":"2016-06-14T21:23:18Z","closed_at":null,"body":"I get a failure with the following `Category` instance, when we hit the `id` component (with type `Accum a a`).\r\n\r\n```haskell\r\n{-# LANGUAGE GADTs #-}\r\nimport Control.Category\r\nimport Prelude hiding ((.), id)\r\n\r\ndata Accum a b where\r\n  Accum :: (s -> a -> (s, b)) -> s -> Accum a b\r\n\r\n-- | We can pass the outputs of one 'Accum' as the inputs of the next.\r\ninstance Category Accum where\r\n  id = Accum (,) ()\r\n  Accum step2 initialState2 . Accum step1 initialState1 = Accum step (initialState1, initialState2)\r\n    where\r\n      step (s1, s2) a = let (s1', b) = step1 s1 a\r\n                            (s2', c) = step2 s2 b\r\n                        in ((s1', s2'), c)\r\n\r\n```\r\n\r\n```\r\n$ liquid AccumError.hs\r\nLiquidHaskell Copyright 2009-15 Regents of the University of California. All Rights Reserved.\r\n\r\n\r\n**** DONE:  Parsed All Specifications ******************************************\r\n\r\n\r\n**** DONE:  Loaded Targets *****************************************************\r\n\r\n\r\n**** DONE:  Extracted Core using GHC *******************************************\r\n\r\n\r\n**** DONE:  annotate ***********************************************************\r\n\r\n\r\n**** RESULT: ERROR *************************************************************\r\n\r\n\r\n <no location info>: Error: Uh oh.\r\n     addC: malformed constraint:\r\n{lq_tmp$x##580 : (Accum {VV##502 : a^\"lq_tmp$x##504\" | $k_##503[VV##508:=lq_tmp$x##580]} {VV##505 : a^\"lq_tmp$x##507\" | $k_##506[VV##508:=lq_tmp$x##580]})^\"lq_tmp$x##510\" | $k_##509[VV##508:=lq_tmp$x##580]}\r\n <:\r\n(Accum a a)\r\n```\r\n\r\nHowever this should be fine because the definition of  `Category` is\r\n\r\n```haskell\r\nclass Category cat where\r\nid :: cat a a \r\n(.) :: cat b c -> cat a b -> cat a c\r\n```\r\n\r\nThoughts?\r\n\r\n[AccumError.txt](https://github.com/ucsd-progsys/liquidhaskell/files/314924/AccumError.txt)"},"comment":{"url":"https://api.github.com/repos/ucsd-progsys/liquidhaskell/issues/comments/226020554","html_url":"https://github.com/ucsd-progsys/liquidhaskell/issues/734#issuecomment-226020554","issue_url":"https://api.github.com/repos/ucsd-progsys/liquidhaskell/issues/734","id":226020554,"user":{"login":"ranjitjhala","id":1650232,"avatar_url":"https://avatars.githubusercontent.com/u/1650232?v=3","gravatar_id":"","url":"https://api.github.com/users/ranjitjhala","html_url":"https://github.com/ranjitjhala","followers_url":"https://api.github.com/users/ranjitjhala/followers","following_url":"https://api.github.com/users/ranjitjhala/following{/other_user}","gists_url":"https://api.github.com/users/ranjitjhala/gists{/gist_id}","starred_url":"https://api.github.com/users/ranjitjhala/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ranjitjhala/subscriptions","organizations_url":"https://api.github.com/users/ranjitjhala/orgs","repos_url":"https://api.github.com/users/ranjitjhala/repos","events_url":"https://api.github.com/users/ranjitjhala/events{/privacy}","received_events_url":"https://api.github.com/users/ranjitjhala/received_events","type":"User","site_admin":false},"created_at":"2016-06-14T21:23:18Z","updated_at":"2016-06-14T21:23:18Z","body":"@nikivazou is this some weird \"strata\" related thing? The types seem the same if you set aside the strata...\r\n"}}
{"actor":{"display_login":"ranjitjhala"}}