Wie in der Antwort auf this question angegeben, die %hide
directive ermöglicht einen unzugänglichen einen vorhandenen Namen zu machen:Wie kann ich einen Namen in der REPL verbergen?
import Data.String
%hide fib
%default total
fib : Nat -> Nat
fib n = loop n 0 1
where
loop : Nat -> Nat -> Nat -> Nat
loop Z a _ = a
loop (S k) a b = loop k b (a + b)
parseNat : String -> Maybe Nat
parseNat = map cast . parsePositive
response : String -> String
response s = case parseNat s of
Just n => "fib n = " ++ show (fib n)
Nothing => "n ∉ ℕ"
partial main : IO()
main = repl "n = " ((++ "\n") . response)
Dies funktioniert gut im Code oben:
*Main> :exec
n = 10
fib n = 55
aber es scheint nicht zu über~~POS=TRUNC auf die REPL:
*Main> fib 10
Can't disambiguate name: Main.fib, Prelude.Nat.fib
Wie kann ich dieverursachenDirektiven aus meinem Code in die REPL zu übertragen?