[Agda] Exports example? Making ADT constructors private?
Brian McKenna
brian at brianmckenna.org
Sun Oct 6 16:21:12 CEST 2013
Hi Evan,
Awesome to see you on the Agda list. I hope it'll influence Elm.
The way I know how to do this is like so:
module Movement where
private
data Direction' : Set0 where
Up : Direction'
Down : Direction'
open Direction' public hiding (Down)
Direction : Set0
Direction = Direction'
You can probably see what's happening with the private block and the
open import. The interesting thing is that (as far as I can tell) the
open import doesn't re-export the Direction' type, therefore we have
to do that ourselves.
Does that make sense?
Thanks,
Brian McKenna
On 5 October 2013 20:30, Evan Czaplicki <evancz at gmail.com> wrote:
> How would I make the Up constructor private in the following module? (Just
> Up, but not Down)
>
> module Movement where
>
> data Direction where
> Up : Direction
> Down : Direction
>
> I know there is a "private" annotation, but I'm not sure where to put it for
> ADTs. Also, is "private" the primary way to mark what gets exported and what
> does not? (i.e. is the Haskell way of doing things totally done away with?)
>
> Thank you!
> Evan
>
> _______________________________________________
> Agda mailing list
> Agda at lists.chalmers.se
> https://lists.chalmers.se/mailman/listinfo/agda
>
More information about the Agda
mailing list