```So, further to this. Our timeslots are not conventional. This is an example of
how they work,

# id times/week minutes/class days-of-week(1-3) start-time end-time
conflicts-with
1 3 50 MWF 800 850 2
2 2 75 WF 835 950 1 3
3 3 50 MWF 900 950 2
4 3 50 MWF 1030 1120
5 3 50 MWF 1130 1220
6 2 75 WF  1250 1405 7
7 2 50 WF  1315 1405 6
8 3 50 MWF 1415 1505 12 13 14
9 3 50 MWF 1515 1605 12 13 14
10 3 50 MWF 1615 1705 11 12 13 14
11 2 75 MW 1615 1730 10 12 13
12 1 180 M 1415 1715 8 9 10 11
13 1 180 W 1415 1715 8 9 10 11
14 1 180 F 1415 1715 8 9 10
15 2 75 TR 800 915
16 2 75 TR 925 1040
17 2 75 TR 1050 1205
18 2 75 TR 1250 1405
19 2 75 TR 1415 1530 21 22
20 2 75 TR 1540 1655 21 22
21 1 180 T 1415 1715 19 20
22 1 180 R 1415 1715 19 20
23 1 180 M 1800 2100
24 1 180 T 1800 2100
25 1 180 W 1800 2100
26 1 180 R 1800 2100

All of these constraints are hard. Over a week the timeslots should be
maximally filled, but in any possible combination. For example; 1, 3, 4, 5, 6, 8,
9, 10, 15, 16, 17, 18, 19, 20, 23, 24, 25, 26 satisfies the constraints. And so
does, 2, 4, 5, 6, 8, 9, 10, 15, 16, 17, 18, 19, 20, 23, 24, 25, 26. I could go
with a set of permutations which define all possible valid weekly timeslot
combinations, or I could define 26 GP functions and let GP handle the
permutations.

My problem is I should be able to read in this file to create the functions. So
far, from what I see in the example files, functions are created in code like
terminals. I haven't seen a means to create them from a param file. Alternately
I could apply the timeslot constraints in the selection process with suitable
terminals to generate the timeslot functions, but do I do this with ADF and
progressively remove these selection constraints?

I'm going on the premise that all hard constraints should be functions since
input constraints determined by a function act the same as output (selection)
constraints.

-- ray
```