[Agda] Using functions before its declaration
Guillaume Brunerie
guillaume.brunerie at gmail.com
Fri Apr 19 08:03:07 CEST 2013
Hello Amila, for mutual inductive definitions, you should first write
the typing annotations, and then the definitions.
The following should work:
data Format : Set
⟦_⟧ : Format → Set
data Format where
Bad : Format
End : Format
Base : U → Format
Plus : Format → Format → Format
Skip : Format → Format → Format
Read : (f : Format) → (⟦ f ⟧ → Format) → Format
⟦ Bad ⟧ = Empty
⟦ End ⟧ = Unit
⟦ Base u ⟧ = el u
⟦ Plus f1 f2 ⟧ = Either ⟦ f1 ⟧ ⟦ f2 ⟧
⟦ Skip _ f ⟧ = ⟦ f ⟧
⟦ Read f1 f2 ⟧ = Sigma ⟦ f1 ⟧ (λ x → ⟦ f2 x ⟧)
(and Dmytro is right that something was wrong in your indentation)
Cheers,
Guillaume
2013/4/19 Dmytro Starosud <d.starosud at gmail.com>:
> Hello Amila,
>
> Maybe the problem is caused by indentation?
> Please note definition and declaration must be at the same level.
>
> Cheers,
> Dmytro
>
>
> 2013/4/19 Amila Jayasekara <thejaka.amila at gmail.com>
>>
>> Hi All,
>>
>> I am new to Agda. I am running through code samples in "Power of Pi" [2]
>> paper.
>>
>> While trying to type check following piece of code I get error in [1].
>>
>> data Format : Set where
>> Bad : Format
>> End : Format
>> Base : U → Format
>> Plus : Format → Format → Format
>> Skip : Format → Format → Format
>> Read : (f : Format) → (⟦ f ⟧ → Format) → Format
>>
>> ⟦_⟧ : Format → Set
>> ⟦ Bad ⟧ = Empty
>> ⟦ End ⟧ = Unit
>> ⟦ Base u ⟧ = el u
>> ⟦ Plus f1 f2 ⟧ = Either ⟦ f1 ⟧ ⟦ f2 ⟧
>> ⟦ Skip _ f ⟧ = ⟦ f ⟧
>> ⟦ Read f1 f2 ⟧ = Sigma ⟦ f1 ⟧ (λ x → ⟦ f2 x ⟧)
>>
>> The error message is quite straight forward and says that "⟦_⟧" is not
>> defined for Format's read operation. Does this mean that I cannot use and
>> function before it is declared in the source file ?
>>
>> Feedback appreciated.
>>
>> Thanks
>> Thejaka Amila
>>
>> [1]
>> Not in scope:
>> ⟦
>> at /Users/thejaka/agda/ddl.agda:84,28-29
>> when scope checking ⟦
>>
>> [2] http://dl.acm.org/citation.cfm?doid=1411203.1411213
>>
>> _______________________________________________
>> Agda mailing list
>> Agda at lists.chalmers.se
>> https://lists.chalmers.se/mailman/listinfo/agda
>>
>
>
> _______________________________________________
> Agda mailing list
> Agda at lists.chalmers.se
> https://lists.chalmers.se/mailman/listinfo/agda
>
More information about the Agda
mailing list