packages feed

code-conjure-0.4.4: TODO.md

TODO for Conjure
================

A non-exhaustive list of things TO DO for Conjure.

* consider not breaking in some cases (increased crossproduct of patterns)

* reduce the number of `deconstructions` considered:

	1. place a `traceShowId` in `deconstructions :: [Expr]`
	2. run the GCD example

		[_ `mod` y :: Int,x `mod` _ :: Int,_ `mod` x :: Int,y `mod` _ :: Int,0 `mod` _ :: Int,0 `mod` _ :: Int]

	3. there's no need to go variable by variable.  Just generating expressions
	   with a _single hole_ should be enough.



### for later

* allow specifying properties that need to be true

* allow recursion under any lazy functions (discover them by testing!)

* pretty-print top-level ifs?

* exclude magic numbers?  e.g.: `1+1`?

* allow conjuring from partially defined implementations?

        partial :: ((Int -> Int) -> Int -> Int) -> (Int -> Int)
        partial impl  =  f
          where
          f n  =  if n == 0
                  then 1
                  else impl f n

* consider discover orderings on arguments?

* consider leveraging lazyness somehow?
  (related to allowing recursion under any lazy functions)

* consider leveraging polymorphism somehow?

* consider allowing lambdas that introduce free variables?


This file is part of Conjure,
(C) 2021 Rudy Matela,
Distribued under the 3-Clause BSD license.